Juju 无法使用 MAAS 部署服务

Juju 无法使用 MAAS 部署服务

我想在 MAAS 环境(没有 OpenStack)上部署一个或多个带有 juju 的 charms。MAAS 控制器的环境是带有 2 个 NIC 的 Ubuntu 12.10。其中一个 NIC 连接到外部 DHCP,另一个由 MAAS-dhcp 持有,并连接到带有 2 个客户端服务器(Ubuntu 12.04 LTS)的交换机。设置如下

$ sudo vim /etc/network/interfaces

自动 em1

iface em1 inet 静态

地址 [输出 IP]

网络掩码 [外部网络​​掩码]

网关 [外网关]

dns 名称服务器 [out-dns]

自动 em2

iface em2 inet 静态

地址 [内部 IP]

网络[内部网络]

网络掩码 [内部网络掩码]

广播[内部广播地址]

$ sudo vim /etc/sysctl.conf

取消注释 net.ipv4.ip_forward=1

$ sudo vim /etc/rc.local

/sbin/iptables -P 转发接受

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

$ sudo iptables -P 转发接受

$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

$ sudo /etc/init.d/networking 重启

$ sudo dpkg-重新配置 maas-区域控制器

[内部 IP]

$ sudo dpkg-重新配置 maas-cluster-controller

http://[内网ip]:80/MAAS

$ sudo vim /etc/maas/ephameralss

设置 ARCHES="amd64"

$ sudo maas 创建超级用户

$ sudo maas-impoart-pxe-files

打开 Web UI(http://[内部 ip]/MAAS)并按设置按钮并设置集群控制器

$ sudo vim /var/share/preseeds/preseed-master…

打开计算机让客户端设置为就绪状态(请勿按“启动节点”按钮)

检查节点是否全部处于 READY 状态

MAAS 客户端已全部就绪:

设置 juju 环境.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{}

当我尝试部署一个 charm (例如 mysql ) 时,另一个客户端已启动并安装了 ubuntu。但是,安装后,charm 仍然未部署。我尝试:

符咒状态

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 也处于未启动状态。我还检查了 ssh 两个客户端,它们都很好。但是,我无法使用ssh 1 复制代码连接到客户端。我真的不知道该怎么办。请帮帮我。

答案1

机器 1 无法连接到机器 0 上的 ZK 进程。造成这种情况的原因可能有很多:DNS 问题、防火墙问题等。

我将通过 ssh 进入机器 1,并尝试手动连接到在机器 0 上运行的 Zookeeper(使用 telnet),看看您是否可以确定确切的问题。

答案2

我认为这可能与 mDNS 有关。我也遇到了同样的问题。

默认情况下启用 mDNS,我无法解析 machine-0/zk 主机名!但是,使用 dig,我的 DNS 工作正常。

只有当它经过 mdns 层时才会导致超时/挂起。当使用非 FQDN 时,它似乎可以工作,当使用 FQDN 时,甚至已知的,它为什么会先寻找 avahi?需要深入挖掘。

编辑:我发现问题是 avahi 优先于 .local 域,甚至是它的子域。我正在寻找一种方法来将 avahi 列入黑名单域,我们可能必须为黑名单域选项提供补丁。

尝试更改 /etc/nsswitch.conf 以不使用带有 NOTFOUND=return 的 mDNS,即,使 hosts: 行:hosts: files dns mdns4

或者编辑 MaaS 的通用预置并从自动安装列表中删除 avahi-daemon。

答案3

/etc/hosts在每台机器上手动添加主机名()后,juju 成功在机器 1 上部署了服务。

相关内容