TripleO (openstack)
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部署需要如下几个镜像:
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是否为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命令的后面:
# 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的人使用方便
- 很好的管理物理服务器,完整的生命周期管理
缺点
- 部署麻烦
- 上手较困难
TripleO (openstack)相关推荐
- 云计算基础平台iaas(openstack)超级详细搭建(一)
先电云iaas(openstack)搭建(一) 这里我们首先进行基本环境的配置和安装. 由于整个iaas完整安装过程内容过多,我这里将分步进行 为了方便操作和更直观的观察 我这里包括后续步骤主要使用图 ...
- 云计算基础设施平台iaas(openstack)超级详细搭建(十三) 安装Trove服务
注意:接与上一篇博客内容 进行更新 由于整个开源openstack安装过程过于繁琐,命令太长,太繁琐,于是把整个安装命令写成shell脚本. 脚本数量内容过多,已经推送自我的github源码托管中心了 ...
- centos7上win2003 virtio (openstack)镜像制作成功(图文详解)
本次在centos7上面试验. kvm版本为: 1.关于制作镜像有多种方法 >使用virt-install >使用qemu-kvm(Or qemu-system_x86) >使用vi ...
- 整理总结 --- Swift(OpenStack) Swift数据模型
Openstack Swift结合三个概念为用户提供存储非结构化数据的服务:租户(account).容器(Container).对象(Object).通过使用三者中的一个及多个使系统能够确定数据的唯一 ...
- (openstack)ERROR: publicURL endpoint for volumev service not found
1.ERROR: publicURL endpoint for volumev3 service not found 问题一,volumev3卷没找到 解决办法创建volumev3卷即可 openst ...
- 基于Django实现Linux运维管理平台的整个实现过程和各种API接口调用以及Echarts绘图项目介绍(一)记录点滴生活
基于Django实现Linux运维管理平台整个实现过程和各种API接口调用以及Echarts绘图的使用介绍 项目内容涉及技术直通车: 我的项目仓库:MyGitHub https://github.co ...
- 计算机基础学习(云计算)
一.计算机硬件组成 计算机的基本硬件分为:运算器,控制器,存储器,输入设备和输出设备5大部件组成. 而在现代技术中,运算器.控制器等部件被集成为中央处理单元(Central Processing Un ...
- 边缘计算(三)——边缘计算的解决方案
点击篮字关注我们 目前,市场上存在的边缘计算相关概念包括雾计算.边缘计算.多接入边缘计算/移动边缘计算.移动云计算等概念.这是边缘计算的第三篇,主要讲的内容是边缘计算的解决方案. Cloud Foun ...
- 016.OpenStack及云计算(面试)常见问题
什么是云计算? 云计算是一种采用按量付费的模式,基于虚拟化技术,将相应计算资源(如网络.存储等)池化后,提供便捷的.高可用的.高扩展性的.按需的服务(如计算.存储.应用程序和其他 IT 资源). 云计 ...
最新文章
- 没办法,我必须干掉他们团队的 Leader
- linux虚拟机网卡启动失败问题处理
- Centos7下删除virbr0网卡信息
- 算法族的集中管理——策略模式
- 启明云端分享|在使用sigmastar SSD201/SSD202D核心板时,应该注意的事项
- 服务器imm口加载硬盘,ibm x3250 M4如何进IMM(远程管理口)
- jQuery 往table添加新内容有以下四个方法:
- CSS3制作动画的三个属性
- springboot系列(三) 启动类中关键注解作用解析
- MAC VSCode Go代码第一次运行配置
- python开发软件有哪些?Python编程软件
- FPGA MCU FSMC通信接口——NAND Flash模式
- 二极管与门,或门,三极管整合
- vue通过识别字符串中的分号进行换行
- 个人网站如何申请支付接口?(教程)
- vue 自定义标签页
- navicat随手记
- Excel如何统计大于某值小于某值的数量
- 目标检测,FFmpeg中第一个基于深度学习模型的视频分析功能
- Linux 下的 3D 设计软件-FreeCAD
热门文章
- mysql受影响的行: 0_mysql执行update语句受影响行数是0
- 为什么用pyqt的不多_家具看起来都差不多?其实不一样!
- 虽然得了第三名,但依然很快乐...
- SpringMVC:如何保证Controller的并发安全
- 皮一皮:编!继续编啊你...
- 真实版删库跑路,宕机36小时市值蒸发9亿!
- 面试必问:怎么保证缓存与数据库的双写一致性?
- 如何使用Mybatis的拦截器实现数据加密与解密
- gateway 内存溢出问题_带你学习jvm java虚拟机 arthas/性能调优/故障排除/gc回收/内存溢出等...
- rknn 学习资料整理