在阿里云主机上安装openstack Rocky

如果在vmware workstation里自己安装了centos7.X的系统之后,安装openstack一般不会有任何的问题,使用packstack可以很顺利的安装上去。但是在阿里云主机里安装openstack Rocky的话会遇到各种坑,下面演示安装步骤:
file

第一步,把两台主机的eth0的网络信息配置成静态的

首先通过route -n获取eth0的网关地址为10.0.19.253,然后修改配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0的内容如下:

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=10.0.16.9X   
PREFIX=22
GATEWAY=10.0.19.253

这里X是每个主机的IP,7或者8,看拓扑图

然后重启network,让其生效。

设置主机名

hostnamectl set-hostname vms00X

这里X是1或者2,两个机器根据拓扑图设置

第二步,在两台机器上配置/etc/hosts文件

在两台机器的/etc/hosts里增加如下三行

127.0.0.1   vms00X
10.0.16.97  vms001
10.0.16.98        vms002

第三步,在两台机器上配置yum好yum源

在两台机器上分别执行如下命令

curl ftp://www.rhce8.com/ops/ali.repo >  /etc/yum.repos.d/ali.repo

第四步, 在vms001上安装packstack

在vms001上通过yum安装packstack,命令如下

yum install openstack-packstack -y

第五步,卸载会冲突的包

在两台机器上分配卸载leatherman-1.10.0,命令如下

yum remove leatherman-1.10.0-1.el7.x86_64 -y

这个包在vms001上因为安装了openstack-packstack,所以此包会自动安装上,vms002上这个包是没安装的,不过也执行以下这个命令没关系。

然后在两台机器上安装低版本的包

yum install leatherman-1.3.0-9.el7.x86_64 -y

记住这条命令是在两台机器上都要安装的。

然后在vms001上再次安装openstack-packstack

yum install openstack-packstack -y

第六步,vms001上生成应答文件aa.txt并修改内容

在vms001上生成应答文件

packstack  --gen-answer-file=aa.txt

然后写一个脚本aa.sh内容如下:

#!/bin/bash
sed -i '/^CONFIG_PROVISION_DEMO=/cCONFIG_PROVISION_DEMO=n' aa.txt
sed -i '/^CONFIG_NEUTRON_ML2_TYPE_DRIVERS=/cCONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan' aa.txt
sed -i '/^CONFIG_NEUTRON_ML2_FLAT_NETWORKS=/cCONFIG_NEUTRON_ML2_FLAT_NETWORKS=datacentre' aa.txt
sed -i '/^CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=/cCONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=datacentre:br-ex' aa.txt
sed -i.bak -r 's/(.+_PW)=[0-9a-z]+/\1=redhat/g' aa.txt

给aa.sh加上可执行权限,并执行

chmod +x aa.sh ;  ./aa.sh

第七步,给vms001主机附加一块云硬盘

默认cinder会通过loop设备创建出来卷组cinder-volumes,在vmware workstaion里安装openstack不会有任何问题,但是在阿里云主机里会有各种问题,比如如下错误:
/usr/bin/openstack volume type list --quiet --format csv --long' returned 1

所以需要为vms001购买一块云硬盘并附加到vms001上作为vdb(这里购买40G的SSD硬盘),并对此硬盘创建两个分区vdb1 大小为35G, vdb2 大小为5G。

通过命令pvcreate /dev/vdb1 把vdb1变成pv,然后通过vgcreate vg0 /dev/vdb1 创建卷组vg0

上面这些仅仅在vms001上做,vms002上不用做,即不用购买云硬盘。

第八步,再次修改vms001上的应答文件aa.txt

此时在应答文件里改2个值:
1.找到CONFIG_COMPUTE_HOSTS,把此值设置为
CONFIG_COMPUTE_HOSTS=10.0.16.97,10.0.16.98
上面粗体字是新增的,意思是指定了两台机器都是计算节点,逗号两边不要空格。

2.找到CONFIG_CINDER_VOLUME_NAME
把CONFIG_CINDER_VOLUME_NAM的值改为CONFIG_CINDER_VOLUME_NAME=vg0,原来的值是CONFIG_CINDER_VOLUME_NAME=cinder-volumes

第九步,在两台节点上再次解决包冲突问题

在两台节点上执行pip uninstall urllib3,之后见到Proceed (y/n)? 输入y回车。

然后在两台节点上安装如下软件包:

yum install python2-urllib3* libibverbs -y

第十步,在vms001上再次运行packstack命令

在vms001上再次运行命令

packstack  --answer-file=aa.txt

此时会很顺利的运行下去,不会有任何问题。

第十一步,安装后解决通过公网IP打不开dashboard的情况

前面安装openstack都是利用的私有地址,但是我们在笔记本上需要通过访问vms001的公网IP才能访问,但是输入公网IP地址时,访问的却是apache的测试页,不是openstack的登录页,解决如下:
执行命令cd /etc/httpd/conf.d/进入到目录 /etc/httpd/conf.d/里,
执行如下命令

mv 15-default.conf 15-default.conf.bak

然后通过命令systemctl restart httpd 重启httpd,等重启完成之后,再次在浏览器里输入公网IP,即可正常访问。

相关新闻

                                                                                                                                    RHCE9学习指南全部更新完成,点击阅读