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单节点实验环境部署完成

