MAJU環境にOpenjugeを使用せずに、jujuで1つ以上のチャームをデプロイしたいと思います。 MAASコントローラーの環境は、2つのNICを備えたUbuntu 12.10です。 NICの1つは外部DHCPに接続され、もう1つはMAAS-dhcpによって保持され、2つのクライアントサーバー(Ubuntu 12.04 LTS)を備えたスイッチに接続されます。設定は次のとおりです。
$ Sudo vim/etc/network/interfaces
自動em1
iface em1 inet static
アドレス[out-ip]
ネットマスク[out-netmask]
ゲートウェイ[ゲートウェイ外]
dns-nameservers [out-dns]
自動em2
iface em2 inet static
アドレス[内部IP]
ネットワーク[内部ネットワーク]
ネットマスク[内部ネットマスク]
ブロードキャスト[内部ブロードキャストアドレス]
$ Sudo vim /etc/sysctl.conf
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]
$ sudo dpkg-reconfigure maas-cluster-controller
http:// [内部IP]:80/MAAS
$ Sudo vim/etc/maas/ephmeralss
aRCHES = "AMD64"を設定します
$ Sudo maas createsuperuser
$須藤maas-impoart-pxe-files
web UI(http:// [inner ip]/MAAS)を開き、設定ボタンを押してクラスターコントローラーを設定します
$ Sudo vim/var/share/preseeds/preseed-master…
コンピューターを開いて、クライアントを準備完了状態に設定します(「ノードの開始」ボタンを押さないでください)
ノードがすべて準備完了状態にあるかどうかを確認します
MAASクライアントはすべて準備完了状態です。
juju environment.yamlを設定する
juju bootstrap(ノードのいずれかをチェック->*)
pXEブートに割り当てられたサーバーを開き、Ubuntuをセットアップします
インストール後
ジュジュステータス
machines:
0:
agent-state: running
dns-name: node-4487fc70b037
instance-id: /MAAS/api/1.0/nodes/node-xxx
instance-state: unknown
service{}
1つのチャーム(mysqlなど)をデプロイしようとすると、他のクライアントが起動され、ubuntuがインストールされます。ただし、インストール後もチャームは展開されませんでした。そして私は試してみます:
ジュジュステータス
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
また、マシン1(起動していないマシン)の/var/log/juju/machine-agent.logを確認しましたが、
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
私は1日待って保留中を維持します。マシン1も未起動のままです。また、2台のクライアントが大丈夫であることをsshで確認しました。ただし、juju ssh 1を使用してクライアントに接続することはできません。私は本当に何をすべきかわかりません。私を助けてください。
マシン1はマシン0のZKプロセスに接続できません。これには多くの理由が考えられます。 DNSの問題、ファイアウォールの問題など。
マシン1にsshし、マシン0で実行されているZookeeperに(telnetを使用して)手動で接続して、正確な問題を判別できるかどうかを確認します。
これはmDNSに関係していると思います。私もこの同じ問題に直面しています。
デフォルトでmDNSが有効になっていると、machine-0/zkホスト名を解決できません!ただし、Digを使用してDNSは正常に機能します。
Mdnsレイヤーを通過したときにのみ、タイムアウト/ハングが発生します。 FQDNを使用する場合、FQDNを使用しない場合、既知のものであってもである場合に動作するようです。何らかの理由でavahiを最初に検索しますか?さらに掘り下げる必要があります。
編集:問題は、サブドメインであってもavahiが.localドメインに優先することです。私は、avahiブラックリストをドメインにする方法を探しています。ブラックリストドメインオプションのパッチを考え出す必要があるかもしれません。
NOTFOUND = returnでmDNSを使用しないように/etc/nsswitch.confを変更してみてください。つまり、hosts:行:hosts:files dns mdns4を作成します。
または、MaaSの汎用preseedを編集して、自動インストールリストからavahi-daemonを削除します。
手動でホスト名(/etc/hosts
)各マシンで、jujuはマシン1にサービスを正常にデプロイします。