CentOS中使用Packstack(RDO)快速部署OpenStack单节点实验环境
Packstack
主要是由Redhat推出的用于概念验证(PoC)环境快速部署的工具。Packstack
是一个命令行工具,它使用Python封装了Puppet模块,通过SSH在服务器上部署OpenStack。使用Packstack
可以快速部署一套OpenStack环境,适合初学者用来体验OpenStack的功能,熟悉基础的OpenStack命令。但是因为隐藏了技术细节,还是需要仔细查看OpenStack官方文档,然后一步步手工安装OpenStack的各个组件,来加深对OpenStack的理解。
- Packstack官方文档:https://www.rdoproject.org/install/packstack/
- OpenStack官方文档:https://docs.openstack.org/
OpenStack与CentOS兼容情况
OpenStack版本 | RedHat6/CentOS6 | RedHat7/CentOS7 | RedHat8/CentOS8 | RedHat9/CentOS9 |
---|---|---|---|---|
Diablo | √ | × | x | x |
Essex | √ | × | x | x |
Folsom | √ | × | x | x |
Grizzly | √ | × | x | x |
Havana | √ | × | x | x |
Icehouse | √ | √ | x | x |
Juno | x | √ | x | x |
Kilo | x | √ | x | x |
Liberty | x | √ | x | x |
Mitaka | x | √ | x | x |
Newton | x | √ | x | x |
Ocata | x | √ | x | x |
Pike | x | √ | x | x |
Queens | x | √ | x | x |
Rocky | x | √ | x | x |
Stein | x | √ | x | x |
Train | x | √ | √ | x |
Ussuri | x | x | √ | x |
Victoria | x | x | √ | x |
Wallaby | x | x | √ | x |
Xena | x | x | √ | x |
Yoga | x | x | √ | √ |
Zed | x | x | x | √ |
Antelope | x | x | x | √ |
环境规划
主机名 | 配置 | 操作系统 | IP地址 | OpenStack版本 | 备注 |
---|---|---|---|---|---|
allinone | 4核8G | CentOS7.9(最小化安装) | 10.211.55.4 | Rocky | 开启虚拟化支持 |
系统初始化
配置主机名
1 | hostnamectl set-hostname allinone |
添加本地host解析
1 | cat >> /etc/hosts << EOF |
关闭NetworkManager服务
1 | systemctl stop NetworkManager |
关闭防火墙
1 | systemctl stop firewalld |
关闭selinux
1 | setenforce 0 |
安装软件库
更新已安装的软件包
1 | yum update -y |
安装RDO库
1 | yum install https://rdo.fedorapeople.org/rdo-release.rpm -y |
说明
CentOS7上最新支持OpenStack Train版本,因此上述命令安装的是OpenStack Train版本的RDO库,如果想要安装OpenStack之前的版本,可以访问https://repos.fedorapeople.org/repos/openstack/找到对应版本的rpm文件安装即可。例如本文要安装的是OpenStack Rocky版,安装命令如下
1 | yum install https://repos.fedorapeople.org/repos/openstack/openstack-rocky/rdo-release-rocky-2.noarch.rpm -y |
安装Packstack
1 | yum install openstack-packstack -y |
安装OpenStack
快速运行
执行以下命令在本机上部署所有服务
1 | packstack --allinone |
说明
可以通过执行packstack --help
查询命令参数,并根据实际情况配置选择安装哪些服务,指定部分配置。以下是我剔除部分非必须服务并增加外部网卡配置参数的命令,其中os-neutron-ovs-bridge-interfaces
参数的网卡名称需根据实际环境修改
1 | packstack --allinone --os-swift-install=n --os-aodh-install=n --os-heat-install=n --os-heat-cfn-install=n --os-ceilometer-install=n --provision-demo=n --provision-tempest=n --os-neutron-ovs-bridge-mappings=extnet:br-ex --os-neutron-ovs-bridge-interfaces=br-ex:eth0 |
非交互式运行
使用下述命令生成一个answer file
1 | packstack --gen-answer-file=config.txt |
编辑answer file
文件,每个配置项都含有详细的说明,例如我们不想安装glance,只需要将CONFIG_GLANCE_INSTALL
设置为n
即可
1 | [general] |
运行以下命令开始部署
1 | packstack --answer-file=config.txt |
安装成功后会出现**** Installation completed successfully ******
的提示,类似如下。
1 | **** Installation completed successfully ****** |
根据提示访问http://10.211.55.4/dashboard
打开OpenStack Dashboard,登录账号密码查看/root/keystonerc_admin
中的OS_USERNAME
和OS_PASSWORD
变量获取
上传cirros镜像
执行以下命令下载cirros镜像
说明
cirros官网在国内访问可能会受限,可通过其他途径下载镜像后再上传到服务器
1 | wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img |
执行以下命令上传cirros镜像
1 | source /root/keystonerc_admin |
刷新OpenStack Dashboard,单击管理员
>计算
>镜像
可以看到刚上传的cirros镜像
创建网络与路由
创建内部网络
左上角选择admin
租户,单击管理员
>网络
>网络
,单击创建网络
填写名称
,项目选择admin
,供应商网络类型选择VXLAN
,段ID在1~16777215之间自定义即可,勾选共享的
,单击下一步
填写子网名称
、网络地址
、网关IP
,单击下一步
单击已创建
完成内部网络创建
创建外部网络
左上角选择admin
租户,单击管理员
>网络
>网络
,单击创建网络
填写名称
,项目选择admin
,供应商网络类型选择Flat
,物理网络填写extnet
,勾选共享的
和外部网络
,单击下一步
填写子网名称
、网络地址
、网关IP
,单击下一步
说明
外部网络的网络地址与网关IP均要与部署OpenStack主机的网段和网关保持一致
取消勾选激活DHCP
,单击已创建
完成外部网络创建
创建路由器并绑定接口
左上角选择admin
租户,单击项目
>网络
>路由
,单击新建路由
填写路由名称
,单击新建路由
完成路由创建
单击创建成功后的路由右侧的设置网关
外部网络选择上面创建的外部网络(本文中为PublicNet
),单击提交
完成外部网关接口添加
单击路由名称进入详情页
选择接口
选项卡,单击增加接口
子网选择上面创建的内部网络(本文中为PrivateNet
),单击提交
完成内部接口添加
创建云服务器
左上角选择admin
租户,单击项目
>计算
>实例
,单击创建实例
填写实例名称
,单击下一项
设置卷大小(GB)
,选择是否创建新卷
和删除实例时是否删除卷
,选择镜像文件,单击下一项
选择实例类型,单击下一项
选择虚拟机所在网络,单击创建实例
开始云服务器创建,其余配置保持默认即可
说明
不要把云服务器创建在外部网络中
等待云服务器创建成功后可单击右侧操作栏中的控制台
进入云服务器控制台,验证云服务器网络是否正常。至此,一套OpenStack单节点实验环境部署完成