返回介绍

TripleO

发布于 2025-02-18 00:20:50 字数 5766 浏览 0 评论 0 收藏 0

一、TripleO 简介

TripleO 又叫 OpenStack on OpenStack,是一个用 OpenStack 来部署、升级和管理 OpenStack 的工具。 TripleO 里面有两个主要部分:Undercloud 和 Overcloud,使用 TripleO,你需要先创建一个小的 OpenStack 环境,称为:Undercloud,它包含了 Heat、Ironic、Horizen、Keystone、Neutron 等项目,TripleO 使用 Ironic 做裸机管理,Heat 做编排,Keystone 做用户管理等,使用 Undercloud 部署出来的是正式的 OpenStack 环境:Overcloud。

二、TripleO 部署需求

硬件需求

部署 TripleO 至少需要 3 个节点,角色分别如下:

  • 一个 Undercloud 节点
  • 一个 Overcloud 控制节点
  • 一个 Overcloud 计算节点

最小配置:

  • 多核 CPU
  • 8G 内存
  • 60G 硬盘

推荐使用物理机,开发测试也可以使用虚拟机,TripleO 部署目前只支持 RHEL 7.1 x86_64 和 CentOS 7 x86_64。

网络需求

注:此网络需求不包含 Overcloud 中 OpenStack 所需网络。

  • Overcloud 服务器需要配置好 IPMI。
  • 一个管理网卡,用于管理 Undercloud 和 Overcloud。
  • 一块用于 PXE 的网卡,这个网卡在 Overcloud 中需要是同一名称的网卡,如 em2,这个名称将会在安装配置的 LOCAL_INTERFACE 参数中使用,并且不能和管理网络是同一块网卡。
  • 在 BIOS 中,把用于 PXE 的网卡放到引导顺序的第一位,并且关闭除了 PXE 网卡之外所有网卡的网络启动选项。
  • 收集所有 Overcloud 节点的用于 PXE 引导网卡的 MAC 地址和 IPMI 信息。

网络参考下图: TripleO

TripleO 提供了一个工具 tripleo-validations 用于检测 TripleO 部署可能出现的问题,该工具基于 Ansible 和 Python 编写,在 validations 目录下提供了很多检测的内容,如:

  • NTP 配置
  • DHCP 获取
  • Pacemaker 状态
  • Undercloud 硬件配置
  • MySQL 打开连接数限制
  • ……

三、部署 TripleO

由于 TripleO 也是一套小型的 OpenStack 环境,部署起来也较繁琐,于是出现了几个项目用来部署 TripleO,如: Tripleo-Quickstart 和官方推荐项目 Instack-Undercloud 。 其中,Tripleo-Quickstart 主要使用 Ansible 部署、Instack-Undercloud 则混合使用了脚本和 Puppet 来部署,但是使用 Puppet 的时候有些调用模块的时候会出问题,调用的资源改名时 Instack-Undercloud 里没有修改,所以在使用 Instack-Undercloud 部署 TripleO 的时候最好了解一些 Puppet 知识。 另外,由于使用 RDO 的源要下载很多包,网速慢的同学就要痛苦了,可能要部署很长时间。

四、TripleO 部署 OpenStack

1. 生成镜像

TripleO 部署需要如下几个镜像:

ironic-python-agent.initramfs
ironic-python-agent.kernel
overcloud-full.initrd
overcloud-full.qcow2
overcloud-full.vmlinuz

注:如果只是测试的话也可以从 CentOS 网站上 下载

如果使用的是 CentOS 系统,可以直接使用以下命令创建: openstack overcloud image build ,而如果是 RHEL 系统,则需要通过 --config-file 参数进行指定配置文件, openstack overcloud image build --config-file /usr/share/openstack-tripleo-common/image-yaml/overcloud-images.yaml --config-file $OS_YAML

注:image-yaml 目录是在 5.0 版本后才有的,Mitaka 版本装的是 2.1.1 版本,并没有这个目录。

2. 上传镜像

使用如下命令上传镜像 openstack overcloud image upload ,更新镜像使用 openstack overcloud image upload --update-existing ,如果上传的是.initramfs 后缀的镜像,需要执行以下命令重新配置 Ironic 使用这个镜像. openstack overcloud node configure --all-manageable

3. 注册节点

注册节点是注册到 Ironic 里面,我们在前面提过,TripleO 使用 Ironic 管理裸机, openstack overcloud node import instackenv.json ,使用的文件可以是 JSON、YAML 或 CSV 文件,导入时根据后缀名判断,该 JSON 文件模板如下:

{
    "nodes": [
        {
            "pm_type":"pxe_ipmitool",
            "mac":[
                "fa:16:3e:2a:0e:36"
            ],
            "cpu":"2",
            "memory":"4096",
            "disk":"40",
            "arch":"x86_64",
            "pm_user":"admin",
            "pm_password":"password",
            "pm_addr":"10.0.0.8"
        },
       ……省略两个节点
    ]
}

该命令只会导入信息,不会进行检查,导入后状态为:manageable,Ironic 中服务器的状态有以下几种:

  • enroll,该状态是 Ironic 不会对其进行管理,在 Newton 版本后,支持使用该状态替换 available 状态,即导入时添加 --initial-state=enroll 参数。
  • manageable,验证完 IPMI 等可用后,服务器被设置为 manageable 状态,在这个状态时,用户可以进行自检、RAID 配置等操作,但还不能开始部署。
  • available,部署前的最后一个状态,此状态时 Ironic 可以随时开始部署。

如果要在导入时进行检查,则执行以下命令: openstack overcloud node import --introspect --provide instackenv.json

4. 节点自检

上节说过,在 manageable 状态时,用户可以执行自检程序,命令如下: Mitaka 版本中则是使用 openstack baremetal introspection bulk start ,之后的版本使用: openstack overcloud node introspect --all-manageable ,如果只需要检查一个节点可以先把该节点置为 manageable 状态,然后执行检查:

ironic node-set-provision-state UUID manage
openstack baremetal introspection start UUID

然后使用以下命令查看这台机器的状态,看其中的 finished 是否为 Trueopenstack baremetal introspection status UUID

5. 部署节点

使用 openstack overcloud deploy 命令部署,后面使用 —templates 指定的 Heat 模板, -e 指定 Heat 环境文件,给 Heat 传递参数,由于 TripleO 使用 Heat 部署 Overcloud,理所当然,你起码得了解 Heat,知道该怎么用,附录中有 Heat 模板的连接,感兴趣的可以看一下,这里我们就不多做介绍了。 TripleO 支持控制节点 HA 部署,至少需要 3 个节点通过 Pacemaker 实现 HA 功能,通过以下方式添加到 deploy 命令的后面:

# cat << EOF > ~/environment.yaml
parameter_defaults
  ControllerCount: 3
EOF

# openstack overcloud deploy -e environment.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/puppet-pacemaker.yaml --ntp-server pool.ntp.org

6. 总结

优点:

  • 熟悉 OpenStack 的人使用方便
  • 很好的管理物理服务器,完整的生命周期管理

缺点

  • 部署麻烦
  • 上手较困难

参考

Heat 模板: https://docs.openstack.org/developer/heat/template_guide/index.html

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文