本节,我们实现裸金属服务器上,使用Kolla Ansible部署OpenStack,点击参考文档:点击。
提前封装一个8.2版本的虚拟机rhel8.2-base.qcow2(禁用防火墙和selinux),快照创建虚拟机kolla,
虚拟机要求:2个网络接口(双网卡,其中一个网卡不用配ip)
至少8G内存
CPU为直通模式
两块磁盘(再增加一块磁盘)
修改主机名,以及域名解析文件
使用阿里云的epel源,来安装ansible,编辑epel.repo
真机打开转发,使得虚拟机可以上网
安装ansible
使用阿里云的epel源,来安装docker,编辑docker.repo
安装docker-ce,启动ansible,并设置开机自启
docker info查看
编辑eth1网卡配置文件ifcfg-eth1
激活eth1网卡
查看ip
安装Python构建依赖
dnf install python3-devel libffi-devel gcc openssl-devel python3-libselinux
安装pip
dnf install python3-pip
创建.pip目录,创建pip.conf文件
使用清华源(速度快)对pip版本进行升级
安装kolla-ansible (首次可能会遇到问题)
pip3 install kolla-ansible
-I 强制更新
pip3 install -I PyYAML
再次安装kolla-ansible
pip3 install kolla-ansible
创建目录,复制模板到/etc/kolla目录
mkdir -p /etc/kolla
cp -r /usr/local/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
将all-in-one和multi - ode目录文件复制到当前目录(/etc/kolla)
cp /usr/local/share/kolla-ansible/ansible/inventory/* .
指定all-in-one,检测invetory文件中所有主机的状态
在Ansible配置文件/etc/ansible/ansible.cfg中添加以下选项(全局参数)
[defaults]
host_key_checking=False
pipelining=True
forks=100 %100个线程
我们部署中使用的密码存储在/eta/kolla/ Passwords .yml文件中。所有密码在这个文件中是空白的,必须手动填写或运行随机密码生成器
kolla-genpwd %生成随机密码
再次查看passwords.yml
可以看到密码都被填上了
修改keystone_admin_password密码(方便记忆)
globals.yml是Kolla Ansible的主要配置文件,编辑修改globals.yml
使用centos的镜像;
使用apt或DNF之类的库;
安装最新版
打开网卡eth0(管理节点用的)和eth1(用于云主机通信)
打开以下参数,ip设置为eth0接口地址 ,不然连不上mysql
默认会部署haproxy,选择no,不部署高可用
不部署时间同步服务服务器(默认会校验),那么就需要自己安装时间同步服务,进行配置。
安装时间同步服务器
修改/etc/chrony.conf配置
设定与宿主机同步时间
启动并自启chrony服务
查看是否成功
创建LVM物理卷,LVM卷组
选择部署cinder(块存储)
选择不采集数据
进入以下目录,编辑mian.yml文件
选择不自动配置docker服务(因为我们已经自己配置好了)
将自动安装docker包的语句删除
进入/etc/colla目录,使用kolla部署依赖项的引导服务器
kolla-ansible -i all-in-one bootstrap-servers
对主机进行部署前检查
kolla-ansible -i all-in-one prechecks
此时会报错
进入报错提示路径,编辑main.yml文件
禁止主机检测(关闭主机操作系统发布和发布检查功能)
再次回到/etc/colla目录,运行指令,对主机进行部署前检查
kolla-ansible -i all-in-one prechecks
false表示服务未部署,true表示服务部署
最后进行实际OpenStack自动化部署(接下来漫长的等待)
kolla-ansible -i all-in-one deploy
可以下载一个网络流量实时监控工具,便于查看下载情况
nload指令可以查看到正在下载的镜像
可以看到部分镜像已经下载好了
部署成功
安装OpenStack CLI客户端
pip install python-openstackclient
OpenStack需要一个openrc文件,生成环境脚本
kolla-ansible post-deploy . /etc/kolla/admin-openrc.sh
执行脚本,上传镜像到glance,创建内部网络、外部网络、flavor、ssh key,并运行一个实例
/usr/share/kolla-ansible/init-runonce
最后通过dashbord直接访问主机ip即可:172.25.36.11/project/network_topology/