Est-il possible de provisionner manuellement un contrôleur LXC existant dans juju (1.24)?
J'ai essayé de suivre (Ubuntu-trusty):
Le déploiement de charme MysqL commence, prend un long moment, puis "installation du crochet" échoue.
Effectuer la mise à disposition manuelle à l'aide d'une machine KVM fonctionne (même si je dois quand même effectuer l'étape 4, sinon l'état de l'agent restera en attente).
Je fais une installation en cluster de MySQL et je veux utiliser LXC (au lieu de KVM) sur plusieurs machines physiques, LXC étant relativement léger.
Merci pour toutes les astuces.
J'ai imaginé moi-même une solution:
Après avoir démarré un environnement local juju frais, ajoutez une machine à l'environnement:
juju add-machine
Cela doit créer la machine-1. Une fois que la machine-1 est prête (vérifiez par le biais de juju status
), un modèle de juju aurait été créé avec le même nom que juju-trusty-lxc-template.
Vous pouvez maintenant créer des clones de ce modèle pour créer autant de conteneurs lxc que vous voulez et les ajouter manuellement à l'environnement juju (ceci peut également être créé sur une machine distante) via ssh.
Sudo lxc-clone juju-trusty-lxc-template -n lxc-001
Sudo lxc-clone juju-trusty-lxc-template -n lxc-002
Démarrer les conteneurs
Sudo lxc-start -d -n lxc-001
Sudo lxc-start -d -n lxc-002
puis ajoutez les conteneurs à juju à travers ssh
juju add-machine ssh:lxc-001 #this shall create machine-2
juju add-machine ssh:lxc-002 #this shall create machine-3
Une fois que juju a fini d'installer les agents sur la machine, vous devez supprimer la référence à localhost: 170702 dans fichier agent.conf à l'intérieur des conteneurs et redémarrer jujud à l'intérieur des contenants. Vous pouvez le faire rapidement à travers:
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'
Vérifiez par le biais de juju status
si les agents sont dans l'état démarré et que vous avez terminé, prêt à déployer un service sur ces ordinateurs.
J'espère que cela t'aides.
Remarque: Dans la configuration par défaut de juju, les conteneurs lxc obtiendront l'adresse DHCP du pont créé à partir de juju. Ces adresses ne sont pas accessibles sur le réseau local. Vous voudrez peut-être créer un pont personnalisé et laisser juju l'utiliser (changez network-bridge: your-lan-br0
dans ~/.juju/environnements.yaml avant de démarrer le processus). Cela est également nécessaire si vous ajoutez un conteneur à partir d'une autre machine physique. Vous voudrez peut-être aussi configurer des adresses statiques pour lxc-containers (dnsmasq).