• Running containers with systemd-nspawn works, but machinectl fails

    From Yassine Chaouche@21:1/5 to All on Tue Feb 11 16:30:02 2025
    Dear list,

    In the past,
    if I wanted to clone a baremetal server to another server,
    I just copied its root directory (/) and chrooted to it.
    Then, I could run services via old sysv init scripts.
    (/etc/init.d/service start/stop/status)

    It is no longer the case now with debian 12,
    (surely even before debian 12)
    and I've been advised to look into machineclt and systemd-nspawn.

    I have absolutely no experience in running containers,
    systemd or otherwise,
    and I'm not sure how this all works with nspawn,
    but I created a symlink to the location of the cloned server inside of /var/lib/machines/
    (as /var/lib/machines/clone-messagerie)
    so that machinectl can find it,
    then started the machine with

    $ machinectl start clone-messagerie


    then tried to login to the cloned host via


    $ machinectl login clone-messagerie


    I got different results depending on the tries,
    not sure what action did I do that changed the results.
    So, the first time I had this error:


    # machinectl login clone-messagerie
    Failed to get login PTY: Connection timed out
    #


    After a restart of the machine (machinectl stop/start)
    I get this:


    # machinectl login clone-messagerie
    Failed to get login PTY: There is no system bus in container clone-messagerie.
    #


    machinectl status shows that systemd is running inside of payload,
    not as pid 1 though,
    and shows systemd-nspawn in the supervisor section.


    # machinectl status clone-messagerie
    clone-messagerie(823952398253425ab703ecef4bdd936e)
    Since: Tue 2025-02-11 13:55:25 CET; 1min 39s ago
    Leader: 171516 (systemd)
    Service: systemd-nspawn; class container
    Root: /mnt/anciennevar/clone-messagerie
    Iface: ve-clone-me-Nbp
    OS: Debian GNU/Linux 8 (jessie)
    UID Shift: 38928384
    Unit: systemd-nspawn@clone-messagerie.service
    ├─payload
    │ ├─171516 /lib/systemd/systemd
    │ ├─171582 /lib/systemd/systemd-journald
    │ ├─171825 /usr/bin/freshclam -d --foreground=true
    │ ├─171826 /usr/sbin/atd -f
    │ ├─171829 /usr/sbin/cron -f
    │ ├─171892 /usr/sbin/irqbalance --pid=/var/run/irqbalance.pid
    │ ├─171896 /usr/sbin/opendkim -x /etc/opendkim.conf -u postfix -P /var/run/opendkim/opendkim.pid
    │ ├─171907 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 112:119
    │ ├─172096 /usr/sbin/apache2 -k start
    │ ├─172136 /usr/sbin/apache2 -k start
    │ ├─172139 /usr/sbin/apache2 -k start
    │ ├─172141 /usr/sbin/apache2 -k start
    │ ├─172142 /usr/sbin/apache2 -k start
    │ ├─172143 /usr/sbin/apache2 -k start
    │ ├─172318 /usr/bin/python /usr/bin/fail2ban-server -b -s /var/run/fail2ban/fail2ban.sock -p /var/run/fail2ban/fail2ban.pid
    │ ├─172714 /usr/sbin/rsyslogd -n
    │ ├─172716 /usr/sbin/acpid
    │ └─172721 /usr/sbin/sshd -D
    └─supervisor
    └─171514 systemd-nspawn --quiet --keep-unit --boot --link-journal=try-guest --network-veth -U --settings=override --machine=clone-messagerie

    Feb 11 13:56:41 messagerie-recup systemd-nspawn[171514]: [ OK ] Started LSB: starts FusionInventory Agent.
    Feb 11 13:56:41 messagerie-recup systemd-nspawn[171514]: [ OK ] Started LSB: Apache2 web server.
    Feb 11 13:56:41 messagerie-recup systemd-nspawn[171514]: [ OK ] Started LSB: Starts and daemonize Glances server.
    Feb 11 13:56:41 messagerie-recup systemd-nspawn[171514]: [ OK ] Started LSB: disk temperature monitoring daemon.
    Feb 11 13:56:41 messagerie-recup systemd-nspawn[171514]: [ OK ] Started LSB: Start NTP daemon.
    Feb 11 13:56:41 messagerie-recup systemd-nspawn[171514]: [ OK ] Started LSB: Starts amavisd-new mailfilter.
    Feb 11 13:56:41 messagerie-recup systemd-nspawn[171514]: [ OK ] Started LSB: Start/stop fail2ban.
    Feb 11 13:56:41 messagerie-recup systemd-nspawn[171514]: [ OK ] Started Permit User Sessions.
    Feb 11 13:56:41 messagerie-recup systemd-nspawn[171514]: [ OK ] Started Initialize hardware monitoring sensors.
    Feb 11 13:56:41 messagerie-recup systemd-nspawn[171514]: [ OK ] Started System Logging Service.
    #


    The funny thing is that systemd-nspawn -bM clone-messagerie works just fine.


    # systemd-nspawn -bM clone-messagerie
    Spawning container clone-messagerie on /mnt/anciennevar/clone-messagerie.
    Press ^] three times within 1s to kill container.
    systemd 215 running in system mode. (+PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR)
    Detected virtualization 'systemd-nspawn'.
    Detected architecture 'x86-64'.

    Welcome to Debian GNU/Linux 8 (jessie)!

    Set hostname to <messagerie-prep>.
    Failed to install release agent, ignoring: No such file or directory

    ...


    [ OK ] Stopped OpenBSD Secure Shell server.
    Starting OpenBSD Secure Shell server...
    [ OK ] Started OpenBSD Secure Shell server.
    Stopping OpenBSD Secure Shell server...
    [ OK ] Stopped OpenBSD Secure Shell server.
    Starting OpenBSD Secure Shell server...
    [FAILED] Failed to start OpenBSD Secure Shell server.
    See 'systemctl status ssh.service' for details.

    Debian GNU/Linux 8 messagerie-prep console

    messagerie-prep login: root
    Password:
    Last login: Sun Feb 9 17:04:50 CET 2025 on pts/0
    Linux messagerie-prep 5.10.0-27-amd64 #1 SMP Debian 5.10.205-2 (2023-12-31) x86_64

    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    ^ ^
    ^ ceci est la machine messagerie-prep ^
    ^ ^
    ^ ^
    ^ C'est une machine virtuelle qui se trouve ^
    ^ sur vSphere 1 (10.10.10.41) ^
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    root@messagerie-prep[10.10.10.20][CHROOT] ~ #





    So I really don't understand why machinectl fails where systemd-nspawn works.
    I thought they were two different tools with the same purpose,
    but apparently I am missing something?

    Best,



    --
    yassine -- sysadm
    http://about.me/ychaouche
    Looking for side gigs.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)