如何使用MAAS准备安装OpenStack?

我有一套服务器,我想安装OpenStack,如何使用Metal-as-a-Service(MAAS)安装OpenStack?

范围

本文档提供有关如何安装Metal As A Service(MAAS)软件的说明。

  • 您有足够的,适当的节点硬件
  • 您将使用Juju为MAAS分配工作负载
  • 您将配置完全由MAAS控制的群集网络(即DNS和DHCP)
  • 如果您具有兼容的电源管理系统,则还会安装所需的任何其他硬件(例如IPMI网络)。

介绍MAAS

金属即服务 – MAAS – 允许您将物理服务器视为云中的虚拟机。 MAAS不是必须单独管理每台服务器,而是将您的裸机转变为弹性的云状资源。

这在实践中意味着什么? 告诉MAAS您希望它管理的机器,它将启动它们,检查硬件是否正常,并让它们等待您需要的时间。 然后,您可以拉出节点,将其拆除并随意重新部署; 就像云中的虚拟机一样。

当您准备好部署服务时,MAAS为Juju提供了为该服务提供支持所需的节点。 它就是这么简单:无需手动配置,检查,然后进行清理。 随着您的需求变化,您可以轻松地向上或向下扩展服务。 几个小时需要为Hadoop集群提供更多function吗? 只需拆除一个Nova计算节点并将其重新部署到Hadoop即可。 完成后,将节点恢复到Nova也同样容易。

从云存档安装MAAS

Ubuntu云存档是一个专门为用户提供最新,稳定版本的MAAS,Juju和其他工具的存储库。 强烈建议您保持软件最新:

sudo apt-get update 

有几个包构成MAAS安装。 这些是:

  • maas-region-controller:包含软件的“控制”部分,包括基于Web的用户界面,API服务器和主数据库。
  • maas-cluster-controller:包括管理节点集群所需的软件,包括管理DHCP和启动映像。
  • maas-dns:这是一个定制的DNS服务,MAAS可以在本地使用它来管理所有连接节点的DNS。
  • mass-dhcp:对于DNS,有一个DHCP服务可以使MAAS正确地登记节点并分配IP地址。

DHCP设置对于正确的节点PXE引导至关重要。

为方便起见,还有一个maas元数据包,它将安装所有这些组件。

如果需要分离这些服务或者要部署其他群集控制器,则应单独安装相应的软件包。

安装包

运行命令:

 sudo apt-get install maas 

…将开始安装MAAS的所有组件。 默认情况下应安装maas-dhcp和maas-dns软件包。

安装完成后,将启动MAAS的基于Web的界面。 在许多情况下,MAAS控制器将具有多个NIC。 默认情况下,所有服务都将使用第一个发现的控制器启动(即通常为eth0)

在您第一次登录服务器之前,您应该创建一个超级用户帐户。

创建超级用户帐户

安装MAAS后,您需要创建一个管理员帐户:

 sudo maas-region-admin createsuperuser 

运行此命令将提示输入admin用户的用户名,电子邮件地址和密码。 您也可以为管理员帐户使用不同的用户名,但“root”是一种常见的约定,易于记忆。

您可以为您可能希望创建的任何其他管理员帐户再次运行此命令,但至少需要一个。

导入启动映像

MAAS将每周检查并下载一次新的Ubuntu映像。 但是,您需要在第一次手动下载它们。 为此,您应该使用Web浏览器连接到MAAS Web界面。 使用url:

 http://172.18.100.1/MAAS/ 

您应该替换已安装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 

安装集群软件后,运行以下内容非常有用:

 sudo dpkg-reconfigure maas-cluster-controller 

这将使您能够确保群集控制器代理指向MAAS主控制器的正确地址。

在此处输入图像描述

配置其他群集控制器

集群接受

在与区域控制器相同的系统上安装第一个集群控制器时,默认情况下会自动接受它(但尚未配置,请参见下文)。 您设置的任何其他群集控制器将在用户界面中显示为“待处理”,直到您手动将它们接受到MAAS中。

要接受群集控制器,请单击MAAS Web界面顶部的“群集”选项卡:

您应该看到页面顶部的文本表示挂起的群集。 单击该文本以进入“群集接受”屏幕。

在此处输入图像描述

您可以在此处更改在UI,DNS区域及其状态中显示的群集名称。 接受群集会将其状态从“待处理”更改为“已接受”。

既然已接受集群控制器,您可以将其一个或多个网络接口配置为由MAAS管理。 这将使群集控制器能够管理连接到这些网络的节点。 下一节将介绍如何执行此操作以及要做出哪些选择。

群集配置

MAAS自动识别每个群集控制器上的网络接口。 其中一些将连接到您要管理节点的网络。 我们建议您通过在MAAS用户界面中配置这些接口,让您的群集控制器充当这些网络的DHCP服务器。

例如,我们将配置集群控制器以管理接口eth0上的网络。 单击eth0的编辑图标,将我们带到此页面:

在此处输入图像描述

您可以在此处选择希望群集控制器管理网络的程度:

  • 仅限DHCP – 这将在群集上运行DHCP服务器
  • DHCP和DNS – 这将在群集上运行DHCP服务器并配置区域控制器附带的DNS服务器,以便可以使用它按名称查找此网络上的主机(推荐)。

没有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 

调试后,节点的状态将更新为“就绪”。 您可以通过单击节点名称然后单击“调试输出”标题下方的链接来检查调试脚本的结果。 屏幕将显示文件列表及其结果 – 您可以通过单击任何文件的状态来进一步检查输出。

在此处输入图像描述

手动添加节点

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

在此处输入图像描述

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

在此处输入图像描述

能源管理

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

在此处输入图像描述

如果您有大量节点,则应该可以使用MAAS cli编写此过程的脚本。

如果没有电源管理,MAAS将无法在需要时为节点供电。

下一步:

  • 如何准备MAAS在OpenStack上提供图像?
  • 如何使用Juju部署OpenStack云?