目录

介绍

一、环境

配置epel源,安装docker

​编辑

安装python编译依赖

安装ansible

安装kolla-ansible

二、配置

配置kolla-ansible和ansible

禁用docker源:(本机已提前安装了docker)

安装使用客户端


介绍

Kolla Ansible是一个基于Ansible的开源工具,用于在OpenStack云环境中部署和管理Docker容器化的OpenStack服务。Kolla Ansible提供了一组Ansible Playbooks和Roles,可以自动化地构建、部署和管理OpenStack服务的Docker容器。

一、环境

官方文档链接:https://docs.openstack.org/kolla-ansible/yoga/user/quickstart.html

按照官方要求
redhat8.6系统虚拟机
8G内存,并添加一块40G磁盘(在保证物理机内存的情况下可以尽量多分配)
cpu需要支持kvm虚拟化,选择host-passthrough模式创建

云主机之间桥接口,用来通信,不需要ip,只需要激活

cinder使用lvm作为后端,创建名为cinder-volumes的卷组

用创建的第二块硬盘

pvcreate /dev/nvme0n2

vgcreate cinder-volumes /dev/nvme0n2

禁用selinux和firewalld

systemctl stop firewalld && systemctl disable firewalld

systemctl stop NetworkManager && systemctl disable NetworkManager

 同步时间

配置epel源,安装docker

kolla里有自动安装docker步骤,不过比较慢,我们事先安装,用的清华

启动

安装python编译依赖

dnf install git python3-devel libffi-devel gcc openssl-devel python3-libselinux

配置pip国内源并升级pip:

vim ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/s imple
[install]
trusted-host = https://pypitunatsinghuaedu.cn

pip install -U pipdnf install git python3-devel libffi-devel gcc openssl-devel python3-libselinux

安装ansible

按照要求版本在4到5之间,其他不满足,直接用pip安装

pip install -U 'ansible>=4,<6

安装kolla-ansible

pip install git+https://opendev.org/openstack/kolla-ansible@stable/yoga

安装过程出现报错: ERROR: Cannot uninstall 'PyYAML'.

强制更新即可

pip install --ignore-installed PyYAML 

二、配置

配置kolla-ansible和ansible

因为root执行,不用考虑权限问题,创建全局的配置目录,拷贝到ansible目录下,里面包含globals.yml 和 passwords.yml 文件,云主机的全部信息以及部署中使用的全部密码

mkdir -p /etc/kolla

cp -r /usr/local/share/kolla-ansible/etc_examples/kolla/* /etc/kolla

拷贝all-in-one inventory文件(单主机ansible的配置文件):所有信息都在这

cp /usr/local/share/kolla-ansible/ansible/inventory/* .kolla-ansible install-depsansible -i all-in-one all -m ping

安装依赖

kolla-ansible install-deps

建目录,编辑ansible的配置文件,为更好的效果,多线程改为100

vim /etc/ansible/ansible.cfg:

[defaults]

host_key_checking=False

pipelining=True

forks=100

测试没问题

ansible -i all-in-one all -m ping

部署中使用的密码存储在/etc/kolla/passwords.yml文件中,此文件中的所有密码都为空,运行随机密码生成器来填充,并修改部分密码便于我们登录

kolla-genpwd
vim /etc/kolla/passwords.yml
...
keystone_admin_password: westos

编辑globals.yml文件

kolla_base_distro: "centos"  #选择容器镜像的linux发行版

kolla_install_type: "source"   #source使用原始源代码归档,比binary更加可靠

openstack_release:"yoga"    #指定部署的openstack发行版

kolla_internal_vip_address: "192.168.52.159"  #指定eth0接口的ip地址。

network_interface: "eth0"   #openstack管理网络接口

neutron_external_interface: "eth1"   #第二网络接口,neutron创建网络使用,不要分配IP地址。

enable_haproxy: "no"          ##单点部署不需要haproxy
enable_cinder: "yes"               #部署cinder组件块存储
enable_cinder_backend_lvm: "yes"      ##cinder使用lvm后端存储

禁用docker源:(本机已提前安装了docker)

本实验已事先安装docker,不需要安装,在全局变量里取消docker,并且关掉selinux

vim /usr/share/kolla-ansible/ansible/roles/baremetal/defaults/main.yml
...
#enable_docker_repo: false    #注释  

...

change_selinux = "False"

部署依赖项,会自动检测缺项并补充

kolla-ansible -i all-in-one  bootstrap-servers

提前准备好镜像导入,方法可以是,在上一步骤后修改docker中的daemon文件,docker加速,使用以下命令进行下载

kolla-ansible -i all-in-one pull

出现问题:不支持该系统

进入/usr/local/share/kolla-ansible/ansible/roles/prechecks/defaults,禁掉该检测功能即可

 无报错,直接部署

kolla-ansible -i all-in-one deploypip install python-openstackclient -c https://releases.openstack.org/constraints/upper/yoga

安装使用客户端

pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/yoga

使用以下脚本用于生成openrc的脚本,

kolla-ansible post-deploy

生成的sh文件包括用户名密码等信息,导入环境变量使用该脚本

source admin-openrc.sh

查看用户和服务,

 进入配置文件/usr/local/share/kolla-ansible/init-runonce修改参数,

修改镜像版本,提前导入镜像,设定绑定浮动ip,ip池,网关,DNS改为114.114.114.114,它会自动创建子网和网段

 资源类型创建:先创建两个基本

kolla-ansible目录下修改好直接启用,注意只能跑一次

./init-runonce

访问ip192.168.56.159,用户admin,密码westos

 进入项目创建实例,选择镜像,选择实例类型,私有网络,创建

 

设置浮动ip,

 

 进入控制台成功访问云主机

最后,采用ansible结合容器化部署方便快捷,并且采用容器化更新简单,可根据global文件修改型想要的组件,是比较推荐的方式

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐