TripleO

一、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-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部署需要如下几个镜像:

  1. ironic-python-agent.initramfs
  2. ironic-python-agent.kernel
  3. overcloud-full.initrd
  4. overcloud-full.qcow2
  5. 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文件模板如下:

  1. {
  2. "nodes": [
  3. {
  4. "pm_type":"pxe_ipmitool",
  5. "mac":[
  6. "fa:16:3e:2a:0e:36"
  7. ],
  8. "cpu":"2",
  9. "memory":"4096",
  10. "disk":"40",
  11. "arch":"x86_64",
  12. "pm_user":"admin",
  13. "pm_password":"password",
  14. "pm_addr":"10.0.0.8"
  15. },
  16. ……省略两个节点
  17. ]
  18. }

该命令只会导入信息,不会进行检查,导入后状态为: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状态,然后执行检查:

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

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

5. 部署节点

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

  1. # cat << EOF > ~/environment.yaml
  2. parameter_defaults
  3. ControllerCount: 3
  4. EOF
  5. # openstack overcloud deploy -e environment.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/puppet-pacemaker.yaml --ntp-server pool.ntp.org

6. 总结

优点:

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

缺点

  • 部署麻烦
  • 上手较困难

TripleO (openstack)相关推荐

  1. 云计算基础平台iaas(openstack)超级详细搭建(一)

    先电云iaas(openstack)搭建(一) 这里我们首先进行基本环境的配置和安装. 由于整个iaas完整安装过程内容过多,我这里将分步进行 为了方便操作和更直观的观察 我这里包括后续步骤主要使用图 ...

  2. 云计算基础设施平台iaas(openstack)超级详细搭建(十三) 安装Trove服务

    注意:接与上一篇博客内容 进行更新 由于整个开源openstack安装过程过于繁琐,命令太长,太繁琐,于是把整个安装命令写成shell脚本. 脚本数量内容过多,已经推送自我的github源码托管中心了 ...

  3. centos7上win2003 virtio (openstack)镜像制作成功(图文详解)

    本次在centos7上面试验. kvm版本为: 1.关于制作镜像有多种方法 >使用virt-install >使用qemu-kvm(Or qemu-system_x86) >使用vi ...

  4. 整理总结 --- Swift(OpenStack) Swift数据模型

    Openstack Swift结合三个概念为用户提供存储非结构化数据的服务:租户(account).容器(Container).对象(Object).通过使用三者中的一个及多个使系统能够确定数据的唯一 ...

  5. (openstack)ERROR: publicURL endpoint for volumev service not found

    1.ERROR: publicURL endpoint for volumev3 service not found 问题一,volumev3卷没找到 解决办法创建volumev3卷即可 openst ...

  6. 基于Django实现Linux运维管理平台的整个实现过程和各种API接口调用以及Echarts绘图项目介绍(一)记录点滴生活

    基于Django实现Linux运维管理平台整个实现过程和各种API接口调用以及Echarts绘图的使用介绍 项目内容涉及技术直通车: 我的项目仓库:MyGitHub https://github.co ...

  7. 计算机基础学习(云计算)

    一.计算机硬件组成 计算机的基本硬件分为:运算器,控制器,存储器,输入设备和输出设备5大部件组成. 而在现代技术中,运算器.控制器等部件被集成为中央处理单元(Central Processing Un ...

  8. 边缘计算(三)——边缘计算的解决方案

    点击篮字关注我们 目前,市场上存在的边缘计算相关概念包括雾计算.边缘计算.多接入边缘计算/移动边缘计算.移动云计算等概念.这是边缘计算的第三篇,主要讲的内容是边缘计算的解决方案. Cloud Foun ...

  9. 016.OpenStack及云计算(面试)常见问题

    什么是云计算? 云计算是一种采用按量付费的模式,基于虚拟化技术,将相应计算资源(如网络.存储等)池化后,提供便捷的.高可用的.高扩展性的.按需的服务(如计算.存储.应用程序和其他 IT 资源). 云计 ...

最新文章

  1. 没办法,我必须干掉他们团队的 Leader
  2. linux虚拟机网卡启动失败问题处理
  3. Centos7下删除virbr0网卡信息
  4. 算法族的集中管理——策略模式
  5. 启明云端分享|在使用sigmastar SSD201/SSD202D核心板时,应该注意的事项
  6. 服务器imm口加载硬盘,ibm x3250 M4如何进IMM(远程管理口)
  7. jQuery 往table添加新内容有以下四个方法:
  8. CSS3制作动画的三个属性
  9. springboot系列(三) 启动类中关键注解作用解析
  10. MAC VSCode Go代码第一次运行配置
  11. python开发软件有哪些?Python编程软件
  12. FPGA MCU FSMC通信接口——NAND Flash模式
  13. 二极管与门,或门,三极管整合
  14. vue通过识别字符串中的分号进行换行
  15. 个人网站如何申请支付接口?(教程)
  16. vue 自定义标签页
  17. navicat随手记
  18. Excel如何统计大于某值小于某值的数量
  19. 目标检测,FFmpeg中第一个基于深度学习模型的视频分析功能
  20. Linux 下的 3D 设计软件-FreeCAD

热门文章

  1. mysql受影响的行: 0_mysql执行update语句受影响行数是0
  2. 为什么用pyqt的不多_家具看起来都差不多?其实不一样!
  3. 虽然得了第三名,但依然很快乐...
  4. SpringMVC:如何保证Controller的并发安全
  5. 皮一皮:编!继续编啊你...
  6. 真实版删库跑路,宕机36小时市值蒸发9亿!
  7. 面试必问:怎么保证缓存与数据库的双写一致性?
  8. 如何使用Mybatis的拦截器实现数据加密与解密
  9. gateway 内存溢出问题_带你学习jvm java虚拟机 arthas/性能调优/故障排除/gc回收/内存溢出等...
  10. rknn 学习资料整理