web-dev-qa-db-ja.com

JujuはMAASでサービスをデプロイできません

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を使用してクライアントに接続することはできません。私は本当に何をすべきかわかりません。私を助けてください。

4
Arbit

マシン1はマシン0のZKプロセスに接続できません。これには多くの理由が考えられます。 DNSの問題、ファイアウォールの問題など。

マシン1にsshし、マシン0で実行されているZookeeperに(telnetを使用して)手動で接続して、正確な問題を判別できるかどうかを確認します。

1
bigjools

これは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を削除します。

1
trevorjay

手動でホスト名(/etc/hosts)各マシンで、jujuはマシン1にサービスを正常にデプロイします。

1
Arbit