CentOS7离线部署OpenStack Train版本
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. 安装完成

在浏览器中输入
172.17.63.128/dashboard
,使用用户admin
和设置的密码abc123
可以成功登录。这里的IP地址是虚拟机的IP地址。
二、制作离线rpm包
1. 安装createrepo
yum install createrepo
2. 生成repodata文件
安装完成后,我的/root/myopenstackrpms/yum/x86_64/7
目录中有7个目录。
在这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
得到如下结果:
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
上面的IP地址和GATEWAY根据自己的虚拟机来设置
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. 安装完成

在浏览器中输入
172.16.73.128/dashboard
,用admin
和密码abc123
可登录OpenStack平台。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现