目录
- 介绍
- 一、环境
- 配置epel源,安装docker
- 配置加速器
- 安装python编译依赖
- 安装ansible
- 安装kolla-ansible
- 二、配置
- 1.配置kolla-ansible和ansible
- 2.导入镜像
- 3.修改kolla-ansible配置文件
- 4.禁用docker源:(本机已提前安装了docker)
- 5.Kolla部署依赖项
- 三、卸载kolla-ansible 8.0.1版本安装最新版kolla-ansible,重新部署
- 1.安装最新版kolla-ansible
- 2.更改Kolla-ansible和ansible all-in-one配置文件
- 3.剩余部署
介绍
- kolla-ansible项目将云主机的各个组件以容器的方式运行,先拉取相关镜像,然后使用docker启动容器,同时借助ansible自动化部署工具实现快速部署的目的
注意:建议通篇看完再进行部署,后面有坑
一、环境
官方文档链接:https://docs.openstack.org/kolla-ansible/stein/user/quickstart.html.
- redhat8.2系统虚拟机
- 8G内存,并添加一块40G磁盘(在保证物理机内存的情况下可以尽量多分配)
- cpu需要支持kvm虚拟化,选择host-passthrough模式创建
- 禁用selinux和firewalld
- 双网卡,并激活第二块网卡(不需要为其分配ip)
- 安装docker和ansible
- 创建名为cinder-volumes的卷组:(cinder使用lvm作为后端)
pvcreate /dev/vdb
vgcreate cinder-volumes /dev/vdb
vim /etc/lvm/lvm.conf
devices {
...
filter = [ "a|vda|", "a|vdb|", "r|.*|" ]
配置epel源,安装docker
配置加速器
安装python编译依赖
dnf install python-devel libffi-devel gcc openssl-devel libselinux-python
dnf install -y python3-pip
配置pip国内源并升级pip:
mkdir ~/.pip
vim ~/.pip/pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/ %可使用清华pip源,更稳定
[install]
trusted-host = mirrors.aliyun.com
pip install -U pip %升级pip
安装ansible
优化ansible的配置选项(为了让ansible执行的更快):
vim /etc/ansible/ansible.cfg %添加下述内容
[defaults]
host_key_checking=False %不检测key
pipelining=True %管道方式
forks=100 %指定并发数
安装kolla-ansible
pip install kolla-ansible==8.0.1 (stein版本对应8.0.1) %不同的openstack版本需要不一样的kolla-ansible版本
报错: ERROR: Cannot uninstall 'PyYAML'.
pip install --ignore-installed PyYAML %强制更新
二、配置
1.配置kolla-ansible和ansible
mkdir -p /etc/kolla
拷贝globals.yml 和 passwords.yml 文件:
cp /usr/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
global.yml文件: 包含了所要创建的云主机的全部信息
passwords.yml文件: 部署中使用的全部密码
拷贝all-in-one inventory文件(ansible的配置文件):
cp /usr/share/kolla-ansible/ansible/inventory/all-in-one ~
ansible -i all-in-one all -m ping %测试
localhost | SUCCESS => {
"changed": false,
"ping": "pong"
}
部署中使用的密码存储在/etc/kolla/passwords.yml文件中,此文件中的所有密码都为空,必须手动或通过运行随机密码生成器来填充:
kolla-genpwd
vim /etc/kolla/passwords.yml
...
keystone_admin_password: westos %修改admin用户密码,便于登录使用
2.导入镜像
3.修改kolla-ansible配置文件
vim /etc/kolla/globals.yml
...
kolla_base_distro: "centos" %选择容器镜像的linux发行版
kolla_install_type: "binary" %binary使用像apt或yum这样的软件仓库,source使用原始源代码归档,git存储库或本地源代码目录,source比binary更加可靠,
openstack_release: "stein" %指定部署的openstack发行版
kolla_internal_vip_address: "172.25.0.11" %all-in-one单点部署时不需要部署haproxy和keepalived服务,所以vip直接指定eth0接口的ip地址。
network_interface: "eth0" %openstack管理网络接口
neutron_external_interface: "eth1" %第二网络接口,neutron创建网络使用,不要分配IP地址。
enable_haproxy: "no" %单点部署不需要haproxy
enable_heat: "no" %不部署openstack heat组件
enable_cinder: "yes" %部署cinder组件
enable_cinder_backend_iscsi: "yes" %使用iscsi协议分发
enable_cinder_backend_lvm: "yes" %cinder使用lvm后端存储
4.禁用docker源:(本机已提前安装了docker)
vim /usr/share/kolla-ansible/ansible/roles/baremetal/defaults/main.yml
...
enable_docker_repo: false
redhat_pkg_install:
- epel-release
- "{{ docker_yum_package }}" %注释掉此行
5.Kolla部署依赖项
kolla-ansible -i all-in-one bootstrap-servers
- 发现在执行上述命令的时候发生以下报错,原因是python版本的问题,提示让安装python2,目前官方最新的kolla-ansible版本支持python3版本,我们安装的是8.0.1版本的,对应openstack s版
- 通过下载python2、做软链接等方式,仍然无法解决报错问题,考虑要卸载kolla-ansible,安装最新版的kolla-ansible来重新配置(做到这里是比较崩溃的)
- 这样我们之前下载的镜像也将全部无效,意味着要
重新联网拉取镜像,这是一个非常漫长的过程
三、卸载kolla-ansible 8.0.1版本安装最新版kolla-ansible,重新部署
1.安装最新版kolla-ansible
pip uninstall kolla-ansible %卸载
- 安装最新版kolla-ansible
2.更改Kolla-ansible和ansible all-in-one配置文件
3.剩余部署
预部署检测:
kolla-ansible -i all-in-one prechecks
- 编辑这个文件,注释相关选项
-
拉取镜像
(联网拉取需要很长一段时间)
kolla-ansible -i all-in-one pull -
执行openstack部署
kolla-ansible -i all-in-one deploy