As per 'homectl --help': --prompt-new-user: Query user interactively for user to create
which will wait on stdin to get the credentials for the new user, but at this point there is no way for the user to enter such input and the container will not start. One could alternatively remove the unit file from the 'systemd-firstboot(1)' step, but this incantation has valid use-cases like recognizing a existing homes on firstboot. Signed-off-by: Maximiliano Sandoval <[email protected]> --- src/PVE/LXC/Setup/Fedora.pm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/PVE/LXC/Setup/Fedora.pm b/src/PVE/LXC/Setup/Fedora.pm index cf383e3..891884b 100644 --- a/src/PVE/LXC/Setup/Fedora.pm +++ b/src/PVE/LXC/Setup/Fedora.pm @@ -43,6 +43,30 @@ sub setup_init { 'systemd-networkd.service' => 1, }); } + + if ($version >= 42) { + $self->skip_homectl_firstboot_prompt(); + } +} + +sub skip_homectl_firstboot_prompt { + my ($self) = @_; + + # Replaces 'homectl firstboot --prompt-new-user' with 'homectl firstboot'. + # When the --prompt-new-user flag is enabled the process will wait for user + # input resulting in the setup process not ever finishing. + my $unit_path = '/usr/lib/systemd/system/systemd-homed-firstboot.service'; + if ($self->ct_file_exists($unit_path)) { + my $unit = <<__EOD__; +# Generated by Proxmox VE +[Service] +ExecStart= +ExecStart=homectl firstboot +__EOD__ + + $self->ct_make_path("$unit_path.d"); + $self->ct_file_set_contents("$unit_path.d/50-skip-prompt.conf", $unit); + } } sub setup_network { -- 2.47.3 _______________________________________________ pve-devel mailing list [email protected] https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
