Configuração do sistema usando systemd-nspawn

Configuração do sistema usando systemd-nspawn

Posso usar o systemd-nspawn para configurar uma instalação "chroot" (nesse caso, debian usando debootstrap) antes de inicializá-lo? Ou seja, instalação e configuração autônomas.

Preciso definir o mapa de teclado, nome do host, talvez fuso horário e localidade. E eu gostaria de usar ferramentas do systemd como hostnamectl, localectl, timedatectl,...

É possível e como fazer isso ou devo usar arquivos de configuração? Eles são reconhecidos pelo systemd? Por exemplo, se eu definir um nome de host em /etc/hostname, ele será reconhecido corretamente? Também posso definir o mapa de teclado assim?

Responder1

É possível

sim.

Eu executei o Debian no nspawn. Funcionaótimocom instalações mínimas.

No outro extremo, se você fizer isso com uma instalação em desktop, deverá encontrar um ou dois pequenos problemas para solucionar.

devo usar arquivos de configuração? Eles são reconhecidos pelo systemd? Por exemplo, se eu definir um nome de host em /etc/hostname, ele será reconhecido corretamente?

/etc/hostname definitivamente funciona, é suportado pelo systemd, é exatamente o que hostnamectlseria editado. Em geral, é difícil ver com o que você está preocupado aqui. O padrão do Debian Jessie é o systemd, então qualquer documentação escrita para o Debian Jessie sobre como configurar as coisas - por exemplo, no apêndice debootstrap do guia de instalação - deve funcionar para o systemd. (Embora esse apêndice seja mais um esboço e não mostre como você o faria funcionar sem supervisão).


Pelo que você disse, você também pode estar interessado em systemd-firstboot. Não tentei usá-lo e entendo que ele é limitado em alguns aspectos, mas pode ser informativo.

De qualquer forma, acho que você precisaria usar o systemd-nspawn --boot, tendo adicionado um arquivo de serviço semelhante ao usado pelo systemd-firstboot. Se você não inicializar o sistema, por exemplo, hostnamectlnão funcionará... Depois que seu script terminar de uma forma ou de outra, ele também precisará desligar o sistema.

Um problema notável é que se você tiver algum serviço de rede instalado (incluindo avahi, cups, ...), você provavelmente desejará executar o nspawn --net-vethou equivalente, para evitar conflitos com os serviços de rede do host. Para obter acesso à rede neste momento (por exemplo, para instalar mais pacotes), configure um cliente DHCP na interface host0.

informação relacionada