CentOS7离线部署OpenStack Train版本

发布时间 2023-12-09 00:51:28作者: 南宫二狗

CentOS7离线部署OpenStack Train版本


一、在线安装OpenStack

在线安装的过程中,把下载的所有包都保存下来,然后导入到离线环境中再进行安装。

在虚拟机里装了一个CentOS 7系统,使用的CentOS 7 内核版本是:3.10.0-1160.el7.x86_64

1. 配置yum,设置install时自动将rpm包保存到本地

mkdir /root/myopenstackrpms
vi /etc/yum.conf
cachedir=/root/myopenstackrpms/yum/$basearch/$releasever
keepcache=1

保存。

2. 禁用防火墙

systemctl disable firewalld
systemctl stop firewalld

3. 禁用selinux

vi /etc/selinux/config

SELINUX=enforcing设置为SELINUX=disabled

4. 停用networkmanager,改为使用network

systemctl disable NetworkManager
systemctl stop NetworkManager
systemctl enable network
systemctl start network

5. 设置主机名

hostnamectl set-hostname openstack

修改/etc/hosts文件,将其中原有内容删除或注释掉,增加如下的一行:

172.16.73.128 openstack  openstack.localdomain

这里的IP地址是虚拟机的IP地址。

6. 配置使用国内阿里云yum源

也可以不做这一步。目的是下载东西能快一点。
联网情况下执行如下命令:

wget -O /etc/yum.repos.d/CentOS7-Base-163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo

yum clean all
yum makecache

然后,我做了一个快照,万一有什么问题的话可以恢复。

7. 准备所需要的软件库

yum -y install centos-release-openstack-train

8. 安装packstack安装器

yum -y install openstack-packstack

9. 运行packstack生成应答文件


packstack --gen-answer-file=/root/openstack-answer-file.txt

10. 修改应答文件

vi /root/openstack-answer-file.txt

不下载测试镜像

CONFIG_PROVISION_DEMO=n 

修改密码为abc123,这个密码可以自己设置。

sed -i -r 's/(.+_PW)=.+/\1=abc123/' /root/openstack-answer-file.txt

11. 使用应答文件安装openstack

packstack --answer-file=/root/openstack-answer-file.txt

12. 安装完成

enter description here
enter description here

在浏览器中输入172.17.63.128/dashboard,使用用户admin和设置的密码abc123可以成功登录。这里的IP地址是虚拟机的IP地址。
enter description here

二、制作离线rpm包

1. 安装createrepo

yum install createrepo

2. 生成repodata文件

安装完成后,我的/root/myopenstackrpms/yum/x86_64/7目录中有7个目录。
enter description here
在这7个目录中,都执行createrepo命令。

cd /root
createrepo myopenstackrpms/yum/x86_64/7/base/packages
createrepo myopenstackrpms/yum/x86_64/7/centos-openstack-train/packages
createrepo myopenstackrpms/yum/x86_64/7/centos-ceph-nautilus/packages
createrepo myopenstackrpms/yum/x86_64/7/centos-qemu-ev/packages
createrepo myopenstackrpms/yum/x86_64/7/centos-nfs-ganesha28/packages
createrepo myopenstackrpms/yum/x86_64/7/extras/packages
createrepo myopenstackrpms/yum/x86_64/7/updates/packages

如果有新添加的rpm包,需要使用createrepo --update命令,例如:

createrepo --update myopenstackrpms/yum/x86_64/7/base/packages

3. 压缩

cd /root
tar -zcvf myopenstackrpms.tar.gz myopenstackrpms

4. 下载离线包

把刚才的离线饴myopenstackrpms.tar.gz从虚拟机上下载到实体机上。

scp root@172.16.73.128:/root/myopenstackrpms.tar.gz ./

然后就可以到有同样环境的操作系统上进行离线安装了。

三、离线安装OpenStack

要离线安装的CentOS 7应该与虚拟是同样的环境。
我是把原来的虚拟机恢复到没安装之前的快照,然后断网安装的。所以我用的IP地址还是上面的。

1. 测试是否真的离线

我在虚拟机里执行ping www.baidu.com,不通,说明确实离线了。

2. 配置离线yum源

2-1. 上传制作的myopenstackrpms.tar.gz

在实体机上执行如下命令上传:

scp myopenstackrpms.tar.gz root@172.16.73.128:/root

在虚拟机中解压缩

cd /root
tar -zxvf myopenstackrpms.tar.gz 

2-2. 备份原有的yum源配置文件

cd /etc/yum.repos.d/
mkdir backup
mv * backup

2-3. 创建新的yum源配置文件

vi localhost-yum.repo

文件中写入如下内容

[localhost-base]
name=localhost-base
baseurl=file:///root/myopenstackrpms/yum/x86_64/7/base/packages
gpgcheck=0
enabled=1

[localhost-centos-openstack-train]
name=localhost-centos-openstack-train
baseurl=file:///root/myopenstackrpms/yum/x86_64/7/centos-openstack-train/packages
gpgcheck=0
enabled=1

[localhost-centos-ceph-nautilus]
name=localhost-centos-ceph-nautilus
baseurl=file:///root/myopenstackrpms/yum/x86_64/7/centos-ceph-nautilus/packages
gpgcheck=0
enabled=1

[localhost-centos-qemu-ev]
name=localhost-centos-qemu-ev
baseurl=file:///root/myopenstackrpms/yum/x86_64/7/centos-qemu-ev/packages
gpgcheck=0
enabled=1

[localhost-centos-nfs-ganesha28]
name=localhost-centos-nfs-ganesha28
baseurl=file:///root/myopenstackrpms/yum/x86_64/7/centos-nfs-ganesha28/packages
gpgcheck=0
enabled=1

[localhost-extras]
name=localhost-extras
baseurl=file:///root/myopenstackrpms/yum/x86_64/7/extras/packages
gpgcheck=0
enabled=1

[localhost-updates]
name=localhost-updates
baseurl=file:///root/myopenstackrpms/yum/x86_64/7/updates/packages
gpgcheck=0
enabled=1

更新一下缓存数据

yum clean all
yum makecache
yum repolist

得到如下结果:
enter description here

3. 禁用防火墙

systemctl disable firewalld
systemctl stop firewalld

4. 禁用selinux

vi /etc/selinux/config

SELINUX=enforcing设置为SELINUX=disabled

5. 停用networkmanager,改为使用network

systemctl disable NetworkManager
systemctl stop NetworkManager
systemctl enable network
systemctl start network

6. 配置网络

vi /etc/sysconfig/network-scripts/if

修改如下内容:

BOOTPROTO=none
ONBOOT=yes
IPADDR=172.16.73.128
PREFIX=24
GATEWAY=172.16.73.1

7. 设置主机名

hostnamectl set-hostname openstack

修改/etc/hosts文件,将其中原有内容删除或注释掉,增加如下的一行:

172.16.73.128 openstack  openstack.localdomain

这里的IP地址是虚拟机的IP地址。

8. 准备所需要的软件库

yum -y install centos-release-openstack-train

此时,系统会自动创建一些yum源配置文件,这些文件为要安装的软件指明了一些在线的源,但这些要下载的软件我们已经准备好了,应把这些源删掉。

cd /etc/yum.repos.d
rm CentOS-*

9. 安装packstack安装器

yum -y install openstack-packstack

重启一下,要不然,后面安装的时候会遇到httpd启动失败的问题。

10. 运行packstack生成应答文件


packstack --gen-answer-file=/root/openstack-answer-file.txt

11. 修改应答文件

vi /root/openstack-answer-file.txt

不下载测试镜像

CONFIG_PROVISION_DEMO=n 

修改密码为abc123,这个密码可以自己设置。

sed -i -r 's/(.+_PW)=.+/\1=abc123/' /root/openstack-answer-file.txt

12. 使用应答文件安装openstack

packstack --answer-file=/root/openstack-answer-file.txt

13. 安装完成

enter description here
enter description here

在浏览器中输入172.16.73.128/dashboard,用admin和密码abc123可登录OpenStack平台。
enter description here