Eu mesmo descobri uma solução:
Após inicializar um ambiente local fresco, adicione uma máquina ao ambiente:
juju add-machine
Isso deve criar a máquina 1.
Depois que a máquina-1 estiver pronta (verifique através de juju status
), um modelo de juju teria sido criado com o nome similar a juju-trusty-lxc-template .
Agora você pode criar clones deste template para criar quantos containers lxc quiser, e adicioná-los ao ambiente juju manualmente (isso também pode ser criado em uma máquina remota) através de ssh.
sudo lxc-clone juju-trusty-lxc-template -n lxc-001
sudo lxc-clone juju-trusty-lxc-template -n lxc-002
Iniciar os contêineres
sudo lxc-start -d -n lxc-001
sudo lxc-start -d -n lxc-002
e depois adicione os containers ao juju através do ssh
juju add-machine ssh:lxc-001 #this shall create machine-2
juju add-machine ssh:lxc-002 #this shall create machine-3
Depois que o juju terminar de instalar os agentes na máquina, você terá que remover a referência ao localhost: 170702 no arquivo agent.conf dentro dos contêineres e reiniciar o jujud dentro dos continers. Você pode fazer isso rapidamente:
juju run --machine 2 'sudo sed -i "s/\- localhost:17070//" /var/lib/juju/agents/machine-*/agent.conf && sudo pkill jujud -hup'
juju run --machine 3 'sudo sed -i "s/\- localhost:17070//" /var/lib/juju/agents/machine-*/agent.conf && sudo pkill jujud -hup'
Verifique em juju status
se os agentes estão no estado iniciado e pronto, pronto para implantar um serviço nessas máquinas.
Espero que isso ajude.
Nota: Na configuração padrão do juju, os contêineres lxc terão o endereço DHCP da bridge criada a partir do juju. Esses endereços não são acessíveis na LAN. Você pode querer criar uma ponte customizada e deixar que juju use isso (altere network-bridge: your-lan-br0
em ~ / .juju / environments.yaml antes do bootstrapping). Isso também é necessário se você adicionar um contêiner de outra máquina física. Você também pode querer configurar endereços estáticos para contêineres lxc (dnsmasq).