目录

  • 介绍
  • 一、环境
  • 配置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|.*|" ]

openstack Ansible单机搭建部署 ansible安装openstack_云计算

配置epel源,安装docker

openstack Ansible单机搭建部署 ansible安装openstack_云计算_02


openstack Ansible单机搭建部署 ansible安装openstack_云计算_03


openstack Ansible单机搭建部署 ansible安装openstack_python_04

配置加速器

openstack Ansible单机搭建部署 ansible安装openstack_docker_05


openstack Ansible单机搭建部署 ansible安装openstack_linux_06

安装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

openstack Ansible单机搭建部署 ansible安装openstack_python_07


openstack Ansible单机搭建部署 ansible安装openstack_docker_08


openstack Ansible单机搭建部署 ansible安装openstack_python_09

安装ansible

openstack Ansible单机搭建部署 ansible安装openstack_python_10


openstack Ansible单机搭建部署 ansible安装openstack_docker_11

优化ansible的配置选项(为了让ansible执行的更快):
vim /etc/ansible/ansible.cfg         %添加下述内容
[defaults]                    
host_key_checking=False            %不检测key
pipelining=True                   %管道方式
forks=100                        %指定并发数

openstack Ansible单机搭建部署 ansible安装openstack_python_12

安装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		%强制更新

openstack Ansible单机搭建部署 ansible安装openstack_python_13


openstack Ansible单机搭建部署 ansible安装openstack_docker_14


openstack Ansible单机搭建部署 ansible安装openstack_docker_15

二、配置

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文件:  部署中使用的全部密码

openstack Ansible单机搭建部署 ansible安装openstack_linux_16

拷贝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"
}

openstack Ansible单机搭建部署 ansible安装openstack_python_17

部署中使用的密码存储在/etc/kolla/passwords.yml文件中,此文件中的所有密码都为空,必须手动或通过运行随机密码生成器来填充:
kolla-genpwd
vim /etc/kolla/passwords.yml
...
keystone_admin_password: westos		     %修改admin用户密码,便于登录使用

openstack Ansible单机搭建部署 ansible安装openstack_openstack_18

2.导入镜像

openstack Ansible单机搭建部署 ansible安装openstack_云计算_19

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后端存储

openstack Ansible单机搭建部署 ansible安装openstack_linux_20


openstack Ansible单机搭建部署 ansible安装openstack_云计算_21


openstack Ansible单机搭建部署 ansible安装openstack_云计算_22


openstack Ansible单机搭建部署 ansible安装openstack_云计算_23


openstack Ansible单机搭建部署 ansible安装openstack_linux_24


openstack Ansible单机搭建部署 ansible安装openstack_linux_25

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 }}"		      %注释掉此行

openstack Ansible单机搭建部署 ansible安装openstack_docker_26

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         %卸载

openstack Ansible单机搭建部署 ansible安装openstack_openstack_27

  • 安装最新版kolla-ansible

2.更改Kolla-ansible和ansible all-in-one配置文件

openstack Ansible单机搭建部署 ansible安装openstack_云计算_28


openstack Ansible单机搭建部署 ansible安装openstack_云计算_29


openstack Ansible单机搭建部署 ansible安装openstack_linux_30


openstack Ansible单机搭建部署 ansible安装openstack_python_31


openstack Ansible单机搭建部署 ansible安装openstack_云计算_32


openstack Ansible单机搭建部署 ansible安装openstack_linux_33


openstack Ansible单机搭建部署 ansible安装openstack_openstack_34


openstack Ansible单机搭建部署 ansible安装openstack_docker_35

3.剩余部署

openstack Ansible单机搭建部署 ansible安装openstack_openstack_36


openstack Ansible单机搭建部署 ansible安装openstack_openstack_37

预部署检测:
kolla-ansible -i all-in-one prechecks

openstack Ansible单机搭建部署 ansible安装openstack_openstack_38


openstack Ansible单机搭建部署 ansible安装openstack_openstack_39

  • 编辑这个文件,注释相关选项

  • 拉取镜像(联网拉取需要很长一段时间)
    kolla-ansible -i all-in-one pull
  • 执行openstack部署 kolla-ansible -i all-in-one deploy