我有一组服务器,我想安装 OpenStack,我如何使用 Metal-as-a-Service (MAAS) 安装 OpenStack?
Jor*_*tro 10
本文档提供有关如何安装 Metal As A Service (MAAS) 软件的说明。
Metal as a Service – MAAS – 让您将物理服务器视为云中的虚拟机。MAAS 不必单独管理每个服务器,而是将您的裸机转变为弹性的云状资源。
这在实践中意味着什么?告诉 MAAS 您希望它管理的机器,它会引导它们,检查硬件是否正常,并在您需要它们时让它们等待。然后,您可以将节点拉起、拆除并随意重新部署;就像使用云中的虚拟机一样。
当您准备好部署服务时,MAAS 会为 Juju 提供支持该服务所需的节点。就这么简单:无需手动配置、检查和清理。随着您的需求发生变化,您可以轻松地扩展或缩减服务。需要几个小时为您的 Hadoop 集群提供更多电力?只需拆除您的 Nova 计算节点之一并将其重新部署到 Hadoop。完成后,将节点交还给 Nova 也很容易。
Ubuntu Cloud Archive 是一个专门为用户提供最新、稳定版本的 MAAS、Juju 和其他工具的存储库。强烈建议让您的软件保持最新:
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)
有几个包包含 MAAS 安装。这些是:
DHCP 设置对于节点的正确 PXE 引导至关重要。
为方便起见,还有一个maas元包,它将安装所有这些组件。
如果您需要将这些服务分开,或者想部署一个额外的集群控制器,您应该单独安装相应的包。
运行命令:
sudo apt-get install maas
Run Code Online (Sandbox Code Playgroud)
...将开始安装 MAAS 的所有组件。默认情况下应安装 maas-dhcp 和 maas-dns 包。
安装完成后,MAAS 的基于 Web 的界面将启动。在许多情况下,您的 MAAS 控制器将具有多个 NIC。默认情况下,所有服务将使用第一个发现的控制器(即通常是 eth0)启动
在您第一次登录服务器之前,您应该创建一个超级用户帐户。
安装 MAAS 后,您需要创建一个管理员帐户:
sudo maas-region-admin createsuperuser
Run Code Online (Sandbox Code Playgroud)
运行此命令将提示输入 admin 用户的用户名、电子邮件地址和密码。您也可以为您的管理员帐户使用不同的用户名,但“root”是一种常见的约定并且易于记忆。
您可以为您可能希望创建的任何其他管理员帐户再次运行此命令,但您至少需要一个。
MAAS 将每周检查并下载一次新的 Ubuntu 镜像。但是,您需要在第一次手动下载它们。为此,您应该使用 Web 浏览器连接到 MAAS Web 界面。使用网址:
http://172.18.100.1/MAAS/
Run Code Online (Sandbox Code Playgroud)
您应该替换已安装 MAAS 软件的服务器的 IP 地址。如果有多个可能的网络,默认情况下它将位于分配给 eth0 设备的任何一个上。
您应该会看到如下所示的登录屏幕:

输入您为管理员帐户指定的用户名和密码。成功登录后,您应该会看到 MAAS 主页面:

单击顶部警告中显示的链接,或单击菜单中的“集群”选项卡以进入集群配置屏幕。初始集群在您安装时会自动添加到 MAAS,但它还没有用于引导节点的关联映像。单击按钮开始下载合适的引导映像。
导入引导映像可能需要一些时间,具体取决于可用的网络连接。此页面不会动态刷新,因此您可以手动刷新它以确定何时导入了启动映像。
要检查一切是否正常工作,您应该立即尝试登录服务器。两条错误消息都应该消失了(启动映像文件可能需要几分钟才能注册),您可以看到当前有 0 个节点连接到此控制器。
一些交换机使用生成树协议 (STP) 协商通过根网桥的无环路路径。在扫描时,它可以使每个端口等待最多 50 秒,然后才允许在该端口上发送数据。这种延迟反过来又会导致一些应用程序/协议出现问题,例如 PXE、DHCP 和 DNS,其中 MAAS 广泛使用。
为了缓解这个问题,您应该 为 Cisco 交换机或其他供应商设备上的等效设备启用 Portfast,这使端口几乎可以立即启动。
虽然当然可以通过一个集群控制器为所有节点运行 MAAS,但为了更容易维护、升级和稳定性,至少有两个可操作的集群是可取的。
每个集群都需要一个控制器节点。在此节点上安装 Ubuntu,然后按照类似的设置步骤安装集群控制器软件:
sudo apt-get update
sudo apt-get install maas-cluster-controller
sudo apt-get install maas-dhcp maas-dns
Run Code Online (Sandbox Code Playgroud)
安装集群软件后,运行以下命令很有用:
sudo dpkg-reconfigure maas-cluster-controller
Run Code Online (Sandbox Code Playgroud)
这将使您能够确保集群控制器代理指向 MAAS 主控制器的正确地址。

当您在与区域控制器相同的系统上安装第一个集群控制器时,默认情况下将自动接受它(但尚未配置,请参见下文)。您设置的任何其他集群控制器将在用户界面中显示为“待处理”,直到您手动将它们接受到 MAAS 中。
要接受集群控制器,请单击 MAAS Web 界面顶部的“集群”选项卡:
您应该会看到页面顶部的文本指示待处理的集群。单击该文本以进入集群接受屏幕。

您可以在此处更改显示在 UI 中的集群名称、其 DNS 区域及其状态。接受集群将其状态从“待定”更改为“已接受”。
现在集群控制器已被接受,您可以配置一个或多个由 MAAS 管理的网络接口。这将使集群控制器能够管理连接到这些网络的节点。下一节将解释如何执行此操作以及要做出哪些选择。
MAAS 自动识别每个集群控制器上的网络接口。其中一些将连接到您要管理节点的网络。我们建议通过在 MAAS 用户界面中配置这些接口,让您的集群控制器充当这些网络的 DHCP 服务器。
例如,我们将配置集群控制器来管理接口 eth0 上的网络。单击 eth0 的编辑图标,这会将我们带到此页面:

您可以在此处选择希望集群控制器管理网络的程度:
如果没有 DHCP 管理,您就无法进行 DNS 管理,因为 MAAS 依赖其自己的 DHCP 服务器的租用文件来计算集群中节点的 IP 地址。如果您将接口设置为受管,您现在需要在下面的输入字段中提供所有常用的 DHCP 详细信息。完成后,单击“保存界面”。集群控制器现在将能够在该网络上引导节点。
还有一个选项可以让网络不受管理。将此用于您不想管理任何节点的网络。或者,如果您确实想要管理节点但想要使用网络上现有的 DHCP 服务。
单个集群控制器可以管理多个网络,每个网络来自集群控制器服务器上的不同网络接口。这可以帮助您将集群扩展到更多节点,或者它可能是您的网络架构的要求。
现在 MAAS 控制器正在运行,我们需要让节点知道 MAAS,反之亦然。通过 MAAS 控制 DHCP 和能够进行 PXE 启动的节点,这很简单
将节点设置为从 PXE 映像启动后,它们将启动、查找 DHCP 服务器、接收 PXE 启动详细信息、启动映像、联系 MAAS 服务器并关闭。
在此过程中,MAAS 服务器将传递有关节点的信息,包括架构、MAC 地址和其他详细信息,这些信息将存储在节点数据库中。您可以通过 Web 界面接受和委托节点。当节点被接受时,将安装选定的 Ubuntu 系列。

您还可以从命令行接受和委托所有节点。这要求您首先使用 API 密钥登录,然后运行以下命令:
maas-cli maas-profile nodes accept-all
Run Code Online (Sandbox Code Playgroud)
一旦委托,节点的状态将更新为“就绪”。您可以通过单击节点名称,然后单击“调试输出”标题下的链接来检查调试脚本的结果。屏幕将显示文件列表及其结果 - 您可以通过单击任何文件的状态来进一步检查输出。

如果您的节点无法从 PXE 映像启动,则可以使用 MAAS 手动注册它们。在主 Web 界面屏幕上,单击“添加节点”按钮:

这将加载一个新页面,您可以在其中手动输入有关节点的详细信息,包括其 MAC 地址。这用于在节点联系 DHCP 服务器时识别节点。

MAAS 支持多种类型的电源管理。要配置电源管理,您应该单击单个节点条目,然后单击“编辑”按钮。应从下拉列表中选择电源管理类型,并添加相应的电源管理详细信息。

如果您有大量节点,则应该可以使用 MAAS cli 编写此过程的脚本。
如果没有电源管理,MAAS 将无法在需要时为节点供电。