欢迎光临散文网 会员登陆 & 注册

Kolla-ansible部署OpenStack Train实践

2022-07-14 16:29 作者:爱写代码的小白  | 我要投稿

原文请查阅我的个人博客 

https://zy.itwk.cc/archives/889.html



# Kolla-ansible部署OpenStack Train实践


## 系统环境初始化


部署前最好能够熟悉下ansible和docker的相关技术及操作。本次部署的环境使用python2和docekr最新版本。官方文档部署的分了python虚拟环境和不同linux发行版本的操作命令,要自己看,不用重复执行,否则可能会把部署环境搞乱了。


1、安装基础软件包


``` shell

yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python git wget vim yum-utils

```




2、设置主机名 以及hosts解析


```

hostnamectl set-hostname openstack && bash

vim /etc/hosts   #设置hosts 先清空hosts文件 然后添加如下

192.168.122.10 openstack openstack

192.168.122.10 kolla kolla

#或者使用

tee /etc/hosts <<-'EOF'

192.168.122.10 openstack openstack

192.168.122.10 kolla kolla

EOF

```


3、关闭系统安全设置


```shell

#关闭防火墙

systemctl stop firewalld && systemctl disable firewalld

#关闭网络管理组件

systemctl stop NetworkManager && systemctl disable NetworkManager

#关闭selinux

setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

```


## 安装pip和docker


1、pip是python的包管理器,ansible是基于python开发的,因此需要安装pip,安装相应的python包,默认系统都不带pip。


```shell

#下载pip

wget https://bootstrap.pypa.io/pip/2.7/get-pip.py

#安装pip

python get-pip.py 

#更新其他包

pip install -U setuptools

```


2、安装docker,docker是本次部署的关键,因此需要安装docker。


```shell

#添加docker软件仓库

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum makecache

#安装docker-ce不是docker

yum -y install docker-ce

#启动服务

systemctl enable docker

systemctl start docker

#修改docker镜像的源

sudo tee /etc/docker/daemon.json <<-'EOF'

    {

      "registry-mirrors": ["http://hub-mirror.c.163.com"]

     }

EOF

systemctl daemon-reload

service docker restart

```


3、配置pip加速


```shell

cd ~

mkdir .pip

tee .pip/pip.conf << EOF 

[global]

[index-url=http://mirrors.aliyun.com/pypi/simple/

[install]

trusted-host=mirrors.aliyun.com

EOF

```


## 安装ansible   kolla-ansible


kolla-ansible部署是需要使用ansible,它是一款自动化的工具,是基于python开发。因此ansible是必须部署。


```shell

#获取epel的yum文件,否则ansible可能找不到包

yum install epel-release -y  

#安装ansible

yum install ansible  -y



#试过很多次都要先安装这个报告

pip install pbr 

#开始安装kolla-ansible,要带上--ignore-installed ,否则可能会报错

pip install -i https://mirrors.aliyun.com/pypi/simple/ kolla-ansible --ignore-installed

#创建kolla的文件夹,后续部署的时候很多openstack的配置文件都会在这

mkdir -p /etc/kolla

chown $USER:$USER /etc/kolla

#复制ansible的部署配置文件

cp -v /usr/share/kolla-ansible/ansible/inventory/* /etc/kolla/.

#负责gloable.yml和password.yml到目录

cp -rv /usr/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/.

#检查`etc/kolla`文件夹下的文件


```


## 修改配置文件


1、修改ansible的配置文件。


```shell

vi /etc/ansible/ansible.cfg

[defaults]

host_key_checking=False #line 71

pipelining=True #line 401

forks=100 #line 20


```


2、all-in-one配置节点清单文件 `/etc/kolla/all-in-one`


 如果配置本地免密登录可以不需要使用


`ansible_user=root ansible_password=openstack ansible_become=true`


使用vim进行替换


```shell

1,$s/localhost       ansible_connection=local/openstack ansible_user=root ansible_password=openstack ansible_become=true/

```




```yaml

[control]

openstack ansible_user=root ansible_password=openstack ansible_become=true


[network]

openstack ansible_user=root ansible_password=openstack ansible_become=true


[compute]

openstack ansible_user=root ansible_password=openstack ansible_become=true


[storage]

openstack ansible_user=root ansible_password=openstack ansible_become=true


[monitoring]

openstack ansible_user=root ansible_password=openstack ansible_become=true


[deployment]

openstack ansible_user=root ansible_password=openstack ansible_become=true

```


3、global.yml添加


```yaml

#选择下载的基础镜像

kolla_base_distro: "centos"

#选择的安装方法,2选1。binary二进制安装,source源码安装

kolla_install_type: "binary"

#选择OpenStack的版本标签,

openstack_release: "yoga"

#OpenStack内部管理网络地址,通过该IP访问OpenStack Web页面进行管理。如果启用了高可用,需要设置为VIP(浮动IP)

kolla_internal_vip_address: "192.168.122.10"

#OpenStack内部管理网络地址的网卡接口

network_interface: "ens33"

#此网卡应该在没有IP地址的情况下处于活动,如果不是,那么OpenStack云平台中的云主机实例将无法访问外部网络。(存在IP时br-ex桥接就不成功)

neutron_external_interface: "ens34"

#关闭高可用

enable_haproxy: "no"

#关闭cinder(块存储)

enable_cinder: "yes"

enable_cinder_backend_lvm: "yes"

#指定nova-compute守护进程使用的虚拟化技术。(kvm好像有点问题,大家可以试试,看看你们能不能过nova下载)nova-compute>是一个非常重要的守护进程,负责创建和终止虚拟机实例,即管理虚拟机实例的生命周期。

nova_compute_virt_type: "qemu" #在物理机上部署时无需设置(默认kvm) ,仅在虚拟机中部署kolla-ansible-openstack时设置qemu


```


4、生成密码 并修改webui的密码


```bash

kolla-genpwd

vim /etc/kolla/passwords.yml

/keystone_admin_password

```




5、cinder的配置准备,官方文档未说明的点,需要提前创建好cinder使用的vgs(如果使用cinder请忽略。。)


```shell

pvcreate /dev/sdb

vgcreate cinder-volumes /dev/sdb

```


## 开始部署


环境预检查   没问题直接next


```shell

kolla-ansible -i /etc//kolla/all-in-one prechecks

```


拉取镜像 时间有点长 大概15Minutes


```shell

kolla-ansible -i /etc/kolla/all-in-one pull

```


正式部署 大概15Minutes


```bash

kolla-ansible -i /etc/kolla/all-in-one deploy

```


验证安装 


```undefined

kolla-ansible -i /etc/kolla/all-in-one post-deploy

cat /etc/kolla/admin-openrc.sh

```


Kolla-ansible部署OpenStack Train实践的评论 (共 条)

分享到微博请遵守国家法律