我应该如何设置 MAAS 以便 Canonical OpenStack Autopilot 可以使用它?

And*_*ack 6 cloud landscape openstack maas openstack-autopilot

Ubuntu OpenStack Autopilot 使用 Juju、MAAS 和 Landscape 部署 OpenStack 云。它需要一个现有的 MAAS 服务器。我应该如何安装和配置此服务器?它的网络要求是什么,节点应该如何连接在一起?

And*_*ack 10

这些是成功运行 OpenStack Autopilot 的网络要求。

互联网

MAAS 及其节点需要能够访问互联网,或者至少可以访问这些站点(http 和 https):

  • maas.ubuntu.com
  • cloud-images.ubuntu.com
  • 流.canonical.com
  • 一个 Ubuntu 存档(archive.ubuntu.com 或镜像)
  • api.jujucharms.com
  • manage.jujucharms.com
  • jujucharms.com
  • store.juju.ubuntu.com
  • 密钥服务器.ubuntu.com
  • ppa.launchpad.net
  • usn.ubuntu.com

如果在防火墙中打开漏洞,请注意这些地址可能会解析为多个 IP。

网络布局

我们支持两种基本的网络布局。我们称它们为“扁平网络”和“分裂网络”。在这两种模型中,至少一个节点需要有两个网络接口连接到 MAAS 知道的网络。我们将它们称为私有网络和公共网络。

请记住,OpenStack 浮动 IP 将始终来自公共网络。

在下图中,路由器上方的“云”并不一定意味着直接连接互联网,只是最终该网络上的设备可以访问互联网。

扁平网络

平面网络模型是最基本的一种。在这里,我们欺骗系统并简单地说公共和私有网络是相同的,并将两个 NIC 连接到它:

扁平网络

在这种情况下,OpenStack 浮动 IP 将来自与 MAAS 节点 IP 相同的网络。

分裂网络

在拆分网络拓扑中,我们有两个实际不同的网络:

分裂网络

MAAS 只管理私有网络,它将为其设置 DNS 和 DHCP,但它必须了解公共网络。一种自动处理的简单方法是将第二个 NIC 连接到 MAAS 机器并将其连接到公共网络,如图所示。然后 MAAS 会自动知道它。

安装 MAAS

这是安装 MAAS 服务器的方式:

  1. 在要用于 MAAS 的机器上安装 Ubuntu 服务器 14.04 LTS
  2. sudo add-apt-repository ppa:maas-maintainers/stable
  3. sudo apt-get update
  4. sudo apt-get install maas
  5. 访问 MAAS UIhttp://maas.ip/MAAS/并按照说明创建管理员,然后使用这些凭据登录
  6. 为 14.04 LTS (Trusty) 64 位导入磁盘映像。这将需要几分钟,具体取决于您的带宽。
  7. 将您的 SSH 密钥添加到您的用户配置文件中 - http://maas.ip/MAAS/account/prefs/
  8. 转到 MAAS 中的网络选项卡,并验证您是否为 MAAS 服务器的每个 NIC 自动创建了网络。您可能为虚拟接口创建了网络,例如lxcbr0virbr0:我们不关心这些,只关心真实的物理接口。
  9. 在为每个 NIC 自动创建的网络中填写缺失的详细信息,例如网关和 DNS

配置 MAAS 集群

  1. 单击“集群”选项卡,然后单击您的集群
  2. 选择一个 DNS 区域名称
  3. 您应该会看到机器上的 NIC 列表。单击连接到专用网络的网卡的编辑符号,即所有节点所在的网络
  4. 设置此 NIC 以管理 DHCP 和 DNS。
  5. 如果需要,配置 IP、子网掩码、广播 IP。
  6. 将“路由器 IP”设置为此专用网络的默认网关
  7. 将您的网络空间划分为如下范围:
    • 对于分裂网络情况:动态范围静态范围
    • 对于扁平网络情况:动态范围静态范围浮动 IP 范围

在哪里:

  • 动态范围:由节点中的所有 NIC 在登记和委托时使用。
  • 静态范围:节点在分配给用户时使用
  • 浮动 IP 范围:由 OpenStack 浮动 IP 使用。这不是 MAAS 配置,但您应该为它们留出空间

保存更改。

招募和调试机器

  1. 确保所有其他机器都设置为 PXE 引导,如果可能,禁用 BIOS 中的所有其他引导选项(包括本地磁盘)
  2. 通过启动机器来登记机器。这通常可以通过某种虚拟控制台来完成。最终它们都会出现在 MAAS 的节点列表中并再次断电。
  3. 编辑节点列表中的每台机器并填写Power type和power参数,以便MAAS可以根据需要打开和关闭它们
  4. 选择所有机器,然后使用批量操作下拉菜单,委托它们
  5. 等到所有机器都调试完毕(即处于就绪状态)

MAAS网络

  1. 转到“网络”选项卡并验证您的专用网络中是否列出了节点并选择了它们各自的 NIC
  2. 如果使用扁平网络拓扑,则应自动检测到具有两个 NIC 的节点,因为这两个 NIC 都连接到网络。只需验证是否是这种情况。
  3. 如果使用拆分网络拓扑,请编辑公共网络并查找具有两个 NIC 的节点。选择连接公网的网卡。

测试东西

为了确保 juju 可以驱动 MAAS 并提供机器,让我们试一试。最好现在就试用它并在 Autopilot 等更复杂的服务使用它之前解决任何问题。

在用于驱动安装的机器上,运行以下命令:

  1. sudo add-apt-repository ppa:juju/stable
  2. sudo apt-get update
  3. sudo apt-get install juju-core juju-deployer
  4. 按照Juju 文档配置 MAAS

本文档的其余部分将假设您刚刚配置的 MAAS Juju 环境是默认环境。

为了进行简单的测试,我们将 Ubuntu 部署到所有节点。在驱动安装的机器上,运行以下命令:

  1. juju bootstrap这将使用 MAAS 节点之一来引导 juju。需要几分钟才能完成
  2. juju deploy ubuntu -n N部署ubuntu到所有剩余节点。替换N为节点数减一,用于上面的引导。此命令在几秒钟后返回,但它只是启动该过程。
  3. 查看 MAAS UI 中的节点列表。您应该会看到正在分配和部署的节点
  4. juju status定期观察输出,直到一切都开始
  5. 通过 ssh 登录到一个随机节点并尝试从中访问互联网。例如,尝试juju ssh ubuntu/0wget http://www.ubuntu.com从那里
  6. 如果一切正常,破坏环境 juju destroy-environment $(juju env)

MAAS 已设置并准备好供 OpenStack Autopilot 使用。