发布时间:2025-12-09 16:31:14 浏览次数:3
今天我们为一位朋友搭建一套OpenStack云平台。
我们使用Kolla部署stein版本的OpenStack云平台。
kolla是用于自动化部署OpenStack的一个项目,它基于docker和ansible来实现;docker主要负责镜像制作、容器管理。而ansible主要负责环境的部署和管理。
由于我个人笔记本性能有限,因此本次实验采用all-in-one模式部署,即所有服务都部署在一台主机上。
其实只要all-in-one模式熟练部署,多节点部署上手很快的
1)主机网卡配置
2)关闭防火墙、selinux及libvirtd服务
3)安装epel源
yum -y install epel-release4)CentOS 部分常用软件安装
yum install -y vim net-tools bash-completion-extras git小提问:bash-completion-extras这个安装包有什么作用?
5)配置主机名及hosts文件
[root@qll251 ~]# hostname qll251[root@qll251 ~]# echo "qll251" > /etc/hostname[root@qll251 ~]# echo "192.168.1.251 qll251" >> /etc/hosts6)同步时间
[root@qll251 ~]# yum -y install ntp[root@qll251 ~]# systemctl start ntpd[root@qll251 ~]# systemctl enable ntpd7)配置 pip 镜像源,方便快速下载python库
[root@qll251 ~]# mkdir ~/.pip[root@qll251 ~]# vim ~/.pip/pip.conf[global]index-url = http://mirrors.aliyun.com/pypi/simple/[install]trusted-host=mirrors.aliyun.com1)安装基础包
yum -y install python-devel libffi-devel gcc openssl-devel python-pip2)升级pip版本,不然后期安装会有报警
3)安装docker-ce
4)指定docker 镜像加速器
[root@qll251 ~]# vim /etc/docker/daemon.json添加如下内容:{"registry-mirrors": ["https://0i6rnnzu.mirror.aliyuncs.com"]}该加速器地址是我在阿里云上申请的,大家可直接使用
5)设置docker volume卷挂载方式
[root@qll251 ~]# mkdir /etc/systemd/system/docker.service.d[root@qll251 ~]# vim /etc/systemd/system/docker.service.d/kolla.conf# 添加如下内容[Service]MountFlags=shared解释一下:MountFlags=shared,表示当宿主机新增分区时,docker服务无需重启即可识别。添加此参数后期OpenStack中使用cinder存储时,新加磁盘也比较方便
6)重启使配置生效
systemctl daemon-reloadsystemctl restart dockersystemctl enable docker1)安装ansible
yum -y install ansible2)下载kolla及kolla-ansible代码
git clone https://github.com/openstack/kolla -b stable/steingit clone https://github.com/openstack/kolla-ansible -b stable/stein# 如果已有镜像,只执行第二步即可3)手动安装kolla-ansible
python ~/kolla-ansible/setup.py install4)安装kolla-ansible需要依赖包
[root@qll251 ~]# pip install -r /root/kolla-ansible/requirements.txt如果出现此报错,我们强制更新即可;
执行:
[root@qll251 ~]# pip install --ignore-installed PyYAML5)安装kolla需要依赖包
[root@qll251 ~]# pip install -r /root/kolla/requirements.txt注意:如果出现类似如下错误:
requests 2.20.0 has requirement idna<2.8,>=2.5, but you'll have idna 2.4 which is incompatible
同样,强制更新requets库即可;
[root@qll251 ~]# pip install --ignore-installed requests6)拷贝配置文件
[root@qll251 ~]# cd ~/kolla-ansible/[root@qll251 kolla-ansible]# cp -r ./etc/kolla/* /etc/kolla/[root@qll251 kolla-ansible]# cp ./ansible/inventory/* /etc/kolla/#看下我们都拷贝了哪些文件[root@qll251 ~]# ls /etc/kolla/all-in-one globals.yml multinode passwords.yml[root@qll251 ~]#配置文件解释:
all-in-one #安装单节点OpenStack的ansible自动安装配置文件
multinode # 安装多节点OpenStack的ansible自动安装配置文件
globals.yml # 部署OpenStack的自定义配置文件
passwords.yml #存放OpenStack各个服务的密码
6)生成随机密码
[root@qll251 ~]# kolla-genpwd使用kolla提供的密码生成工具自动生成OpenStack各服务的密码,如果密码不填充,后面的部署环境检查时不会通过的。
7)修改随机密码文件
# 为了方便登录Dashboard,我们将密码修改为123123[root@qll251 ~]# vim /etc/kolla/passwords.yml165 keystone_admin_password: 1231238)修改globals.yml配置文件
[root@qll251 ~]# vim /etc/kolla/globals.yml# 指定镜像的系统版本15 kolla_base_distro: "centos"# 指定安装方式18 kolla_install_type: "binary"# 指定安装stein版本的OpenStack21 openstack_release: "stein"# 本次实验采用all-in-one模式,未启用高可用。填写宿主机IP即可31 kolla_internal_vip_address: "192.168.1.251"# OpenStack内部管理网络89 network_interface: "eth0"# Neutron外网网络107 neutron_external_interface: "eth1"# 本次实验采用all-in-one模式,未启用高可用192 enable_haproxy: "no"1)生成SSH Key,并授信本节点
ssh-keygenssh-copy-id root@192.168.1.2512)配置单节点all-in-one配置文件
[root@qll251 ~]# vim /etc/kolla/all-in-one# 将文件中所有的localhost替换成qll251:1,$s/localhost/qll251/# 去掉文件中所有包含“ansible_connection=local”:1,$s/ansible_connection=local//其实如果是单节点部署,这个步骤是可选的。带大家过一遍配置文件吧
3)带有kolla的引导服务器部署依赖关系
[root@qll251 ~]# kolla-ansible -i /etc/kolla/all-in-one bootstrap-servers执行结果如下:
4)对主机执行预部署检查
[root@qll251 ~]# kolla-ansible -i /etc/kolla/all-in-one prechecks执行结果如下:
其实如果能走到这一步,后面的实验基本就没啥问题了,加油!
5)拉取OpenStack镜像
[root@qll251 ~]# kolla-ansible -i /etc/kolla/all-in-one pull我们看下它在执行什么
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FkBFhzT0-1587031174141)(https://imgkr.cn-bj.ufileos.com/8b766bc2-2152-4ce3-80b8-4f1184854628.png)]
正在下载OpenStack镜像,等等哦
聪明的小伙伴会趁它在自动部署过程中,思考下当命令敲下去以后它都做了哪些操作
6)执行OpenStack部署
kolla-ansible -i /etc/kolla/all-in-one deploy7)验证部署
kolla-ansible -i /etc/kolla/all-in-one post-deploy执行结果如下,则说明您的OpenStack环境已部署成功!Congratulations!
同时也生成了admin用户的凭证, 即/etc/kolla/admin-openrc.sh文件
我们看下该凭证:
在浏览器中输入:http://192.168.1.251
用户名:admin
密码:123123
登录密码我们在passwords.ym中指定为123123,在实际生产环境中可不能设置这么简单哦。
到此已完成OpenStack云平台的部署,明天我们再来讨论下OpenStack 云平台基本使用方法及利用OpenStack客户端命令创建一台测试云主机。
别看我搭建这么顺利呀,真到你部署了,可能会满屏报错哦。一定要细心,一不留神就会出现如下情况:
当然也不要有心里负担,以上报错基本都是不细心导致的,比如配置文件中多敲了一个空格或者中英符合复用等。要有信心并且细心哦,相信你可以的!