Je souhaite déployer un ou plusieurs charms avec juju sur des environnements MAAS (sans OpenStack). L’environnement du contrôleur MAAS est Ubuntu 12.10 avec 2 cartes réseau. L'un des NIC est connecté à un serveur DHCP externe et l'autre est maintenu par le MAAS-dhcp et est connecté à un commutateur avec 2 serveurs clients (Ubuntu 12.04 LTS). Les paramètres sont les suivants
$ Sudo vim/etc/network/interfaces
auto em1
iface em1 inet statique
adresse [out-ip]
netmask [out-netmask]
passerelle [passerelle]
dNS-serveurs de noms [out-dns]
auto em2
iface em2 inet statique
adresse [ip interne]
réseau [réseau interne]
masque de réseau [masque de réseau interne]
broadcast [adresse de diffusion interne]
$ Sudo vim /etc/sysctl.conf
retirer le commentaire net.ipv4.ip_forward = 1
$ Sudo vim /etc/rc.local
/ sbin/iptables -P FORWARD ACCEPT
/ sbin/iptables -t nat -A-POSTROUTING -o eth0 -j MASQUERADE
$ Sudo iptables -P FORWARD ACCEPT
$ Sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
$ Sudo /etc/init.d/networking restart
$ Sudo dpkg-reconfigure maas-region-controller
[ip interne]
$ Sudo dpkg-reconfigure maas-cluster-controller
http: // [ip interne]: 80/MAAS
$ Sudo vim/etc/maas/ephmeralss
set ARCHES = "AMD64"
$ Sudo crée un utilisateur
$ Sudo maas-impoart-pxe-files
ouvrir l'interface utilisateur Web (http: // [ip interne]/MAAS) et appuyer sur le bouton de réglage et configurer les contrôleurs de cluster
$ Sudo vim/var/share/preseeds/preseed-master…
ordinateur ouvert pour permettre aux clients de passer à l'état Prêt (NE PAS APPUYER SUR LE BOUTON 'START NODE')
vérifie si tous les nœuds sont dans l'état READY
Les clients MAAS sont tous prêts
réglage de juju environnements.yaml
juju bootstrap (vérifie si l'un des nœuds -> est alloué à * )
ouvrez le serveur alloué au démarrage PXE et configurez Ubuntu
après l'installation
statut de juju
machines:
0:
agent-state: running
dns-name: node-4487fc70b037
instance-id: /MAAS/api/1.0/nodes/node-xxx
instance-state: unknown
service{}
Lorsque j'essaie de déployer un charme (par exemple, mysql), l'autre client est démarré et installé Ubuntu. Cependant, après l'installation, le charme n'a toujours pas été déployé. et j'essaye:
statut de juju
machines:
0:
agent-state: running
dns-name: node-4487fc70b037
instance-id: /MAAS/api/1.0/nodes/node-64248652-6a9b-11e2-9347-842b2b6a17a3/
instance-state: unknown
1:
agent-state: not-started
dns-name: node-0025b31884f5
instance-id: /MAAS/api/1.0/nodes/node-011c5b14-6a9d-11e2-9c04-842b2b6a17a3/
instance-state: unknown
services:
mysql:
charm: cs:precise/mysql-15
relations: {}
units:
mysql/0:
agent-state: pending
machine: 1
public-address: null
J'ai aussi vérifié /var/log/juju/machine-agent.log de la machine 1 (la machine non démarrée) et cela montre que
2013-01-30 01:19:58,444: twisted@ERROR: Unhandled error in Deferred:
2013-01-30 01:19:58,454: twisted@ERROR: Unhandled Error
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1181, in unwindGenerator
return _inlineCallbacks(None, gen, Deferred())
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1039, in _inlineCallbacks
result = g.send(result)
File "/usr/lib/python2.7/dist-packages/juju/agents/base.py", line 238, in startService
yield self.connect()
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1181, in unwindGenerator
return _inlineCallbacks(None, gen, Deferred())
--- <exception caught here> ---
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1039, in _inlineCallbacks
result = g.send(result)
File "/usr/lib/python2.7/dist-packages/juju/agents/base.py", line 208, in connect
self.config["zookeeper_servers"])
File "/usr/lib/python2.7/dist-packages/txzookeeper/retry.py", line 302, in connect
return self.client.connect(*args, **kw)
File "/usr/lib/python2.7/dist-packages/txzookeeper/client.py", line 468, in connect
self._servers, callback, self._session_timeout)
zookeeper.ZooKeeperException: Could not internally obtain zookeeper handle
J'attends un jour et ça continue en attente. La machine 1 reste également sur non démarrée. J'ai également vérifié auprès de deux clients ssh qu'ils allaient bien. Cependant, je ne peux pas utiliser juju ssh 1 pour me connecter au client. Je ne sais vraiment pas quoi faire. Aidez-moi, s'il vous plaît.
la machine 1 ne peut pas se connecter au processus ZK sur la machine 0. Cela peut être dû à de nombreuses raisons. Problèmes DNS, problèmes de pare-feu, etc.
Je voudrais SSH dans la machine 1 et essayez de vous connecter manuellement au Zookeeper fonctionnant sur la machine 0 (avec telnet) pour voir si vous pouvez déterminer le problème exact.
Je pense que cela peut avoir à faire avec mDNS. Je rencontre aussi le même problème.
Avec mDNS activé par défaut, je ne peux pas résoudre le nom d’hôte machine-0/zk! Mon DNS fonctionne cependant bien, en utilisant Dig.
Ce n’est que lorsqu’il passe par la couche mdns qu’il provoque des dépassements de délai/des blocages. Cela semble fonctionner si vous n'utilisez pas de nom de domaine complet, si vous utilisez un nom de domaine complet, même un conn, pour une raison quelconque, il cherche d'abord avahi? Besoin de creuser plus profondément.
Edit: J'ai trouvé le problème est que avahi a la priorité sur le domaine .local, même ses sous-domaines. Je cherche un moyen de faire d'Avahi une liste noire d'un domaine. Nous devrons peut-être proposer un correctif pour une option de domaine de liste noire.
Essayez de changer /etc/nsswitch.conf pour ne pas utiliser mDNS avec NOTFOUND = return, c’est-à-dire, configurez les hôtes: ligne: hôtes: fichiers dns mdns4
Ou bien éditez le pré-libellé générique de MaaS et supprimez avahi-daemon de la liste d'installation automatique.
Après avoir ajouté manuellement le nom d'hôte (/etc/hosts
) dans chacune des machines, juju a correctement déployé le service sur la machine 1.