ansible与kolla-ansible部署OpenStack多节点

ansible  https://zerosun.top/2019/08/12/openstack-deploying-by-OSA/

https://www.bookstack.cn/read/deployopenstackwithpuppet/deployment_tool-fuel.md

https://www.bookstack.cn/read/deployopenstackwithpuppet/deployment_tool-osa.md

 

推荐 https://www.bookstack.cn/read/deployopenstackwithpuppet/deployment_tool-packstack.md

 

三个OpenStack自动化部署工具:Devstack,OSA,Kolla对比_筋斗云计算-程序员宝宝_openstack自动化部署工具

 

 
 

特色

劣势

Devstack

安装简单

不支持添加和减少单个组件。只能将整个环境卸载再重新安装

OSA (OpenStack-Ansible)

 
 

 

基于ansible和LXC容器部署OpenStack

 

Kolla

基于ansible和Docker容器部署OpenStack
所需软件包被封装到专门的Docker镜像中,安装速度很快,半个钟头左右就能安装完成。
最新的Ocata 版本的OpenStack使用Kubernetes 平台来管理容器
 

 

后2个部署工具都支持容器,容器的好处就是方便升级,方便运维等。

Docker容器和LXC容器的最大区别是Docker容器迁移更容易。

kolla-ansible如下

1、准备环境:

物理机或者虚拟机三台(本文使用CentOS7系统,虚拟机环境)
一台deploy,两块网卡(ens192、ens224)
一台control+network,两块网卡(ens192、ens224)
一台compute+storage,三块网卡(ens192、ens224、ens256)
compute计算节点加一块硬盘

1.1 网络配置
  • deploy:
    vim /etc/sysconfig/network-scripts/ifcfg-ens192
    BOOTPROTO=static
    DEVICE=ens192
    ONBOOT=yes
    IPADDR=10.24.3.10
    NETMASK=255.255.255.0
    GATEWAY=10.24.3.254
    
    
  • control:
    ens-192配置ip:
    vim /etc/sysconfig/network-scripts/ifcfg-ens192
    TYPE=Ethernet
    BOOTPROTO=static
    DEVICE=ens192
    ONBOOT=yes
    IPADDR=10.24.3.12
    NETMASK=255.255.255.0
    GATEWAY=10.24.3.254
    
    

ens-224网卡配置三个子接口(xvlan),分别为:

  1. ens-224.10
vim /etc/sysconfig/network-scripts/ifcfg-ens224.10
VLAN=yes
DEVICE=ens224.10
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.10.20
NETMASK=255.255.255.0


vim /etc/sysconfig/network-scripts/ifcfg-vlan10
VLAN=yes
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD
DEVICE=vlan10
PHYSDEV=ens224
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.10.20
NETMASK=255.255.255.0

  1. ens-224.20
vim /etc/sysconfig/network-scripts/ifcfg-ens224.20
VLAN=yes
DEVICE=ens224.20
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.20.20
NETMASK=255.255.255.0


vim /etc/sysconfig/network-scripts/ifcfg-vlan20
VLAN=yes
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD
DEVICE=vlan20
PHYSDEV=ens224
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.20.20
NETMASK=255.255.255.0

  1. 3ns-224.30
vim /etc/sysconfig/network-scripts/ifcfg-ens224.30
VLAN=yes
DEVICE=ens224.30
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.30.20
NETMASK=255.255.255.0


vim /etc/sysconfig/network-scripts/ifcfg-vlan30
VLAN=yes
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD
DEVICE=vlan30
PHYSDEV=ens224
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.30.20
NETMASK=255.255.255.0

ens256配置ip:

# 外网网卡配置
vim /etc/sysconfig/network-scripts/ifcfg-ens256
DEVICE=ens256
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
  • compute:

ens192和ens224配置和control一样,ens224配置三个子接口,子接口ip网段,VLAN不换,只更改IP:

vim /etc/sysconfig/network-scripts/ifcfg-ens192
BOOTPROTO=static
DEVICE=ens192
ONBOOT=yes
IPADDR=10.24.3.11
NETMASK=255.255.255.0
GATEWAY=10.24.3.254

vim /etc/sysconfig/network-scripts/ifcfg-ens224.10
IPADDR=192.168.10.10

vim /etc/sysconfig/network-scripts/ifcfg-ens224.20
IPADDR=192.168.20.10

vim /etc/sysconfig/network-scripts/ifcfg-ens224.30
IPADDR=192.168.30.10

1.2 重启网卡
systemctl restart network 

ip a 查看网卡信息

ping命令检测,主机是否连通,例:[root@compute ~]# ping 192.168.20.10

1.3 compute新添加硬盘分区初始化
fdisk -l
pvcreate /dev/sdb
vgcreate cinder-volumes /dev/sdb

【deploy上操作以下内容,部署节点服务器】

2、准备部署

2.1 安装依赖关系

yum install -y epel-release
yum install -y python-pip
pip install -U pip

yum install python-devel libffi-devel gcc openssl-devel libselinux-python

2.2 安装部署工具【ansible、kolla-ansible】

yum install ansible
pip install kolla-ansible

2.3
将globals.yml和passwords.yml复制到/etc/kolla目录

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

2.4 将all-in-one和multinode库存文件复制到当前目录。

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

3、下载kolla源码

若没有git命令,手动安装yum install -y git

3.1 获取Kolla和Kolla-Ansible存储库

git clone https://github.com/openstack/kolla
git clone https://github.com/openstack/kolla-ansible

3.2 Kolla-ansible在etc/kolla中保存配置文件(globals.yml和passwords.yml)将配置文件复制到/etc/kolla目录

cp -r kolla-ansible/etc/kolla /etc/kolla/

3.3 Kolla-ansible将库存文件(all-in-one和multinode)保存在ansible / inventory中。
现将清单文件复制到当前目录

cp kolla-ansible/ansible/inventory/* .

4、准备部署

4.1 部署中使用的密码存储在/etc/kolla/passwords.yml文件中。通过运行下面命令生成随机密码:

kolla-genpwd

初始化之后,可手动更改keystone_admin_password密码(OpenStack登录密码)

vim /etc/kolla/passwords.yml
keystone_admin_password:admin

4.2 配置multinode文件

[control]
10.24.3.12 ansible_user=root ansible_password=1234 ansible_become=true

[network]
10.24.3.12 ansible_user=root ansible_password=1234 ansible_become=true

[external-compute]
10.24.3.11 ansible_user=root ansible_password=1234 ansible_become=true

[monitoring]
10.24.3.12 ansible_user=root ansible_password=1234 ansible_become=true

[storage]
10.24.3.11 ansible_user=root ansible_password=1234 ansible_become=true

[deployment]
localhost       ansible_connection=local

检测:确认inventory配置文件是否正确:

ansible -m ping all

结果:
[root@deploy /]# ansible -m ping all
10.24.3.11 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
10.24.3.12 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

4.3 编辑globals.yml配置文件

kolla_base_distro: "centos"
# binary使用像apt或yum这样的软件仓库,source使用原始源代码归档,git存储库或本地源代码目录
kolla_install_type: "source"  
openstack_release: "queens"  # 使用的版本

kolla_internal_vip_address: "192.168.10.120"  # 内部VIP
kolla_external_vip_address: "10.24.3.120"  # 外部VIP

network_interface: "ens224.10"
kolla_external_vip_interface: "ens192"
api_interface: "ens224.10"

storage_interface: "ens224.20"
cluster_interface: "ens224.20"
tunnel_interface: "ens224.30"

# 接口是活动的,没有IP地址。否则,实例将无法访问外部网络
neutron_external_interface: "ens256"

enable_cinder: "yes"

5、开始部署

''' 1、带有kolla的引导服务器部署依赖关系''' 
kolla-ansible -i ./multinode bootstrap-servers

''' 2、对主机执行预部署检查''' 
kolla-ansible -i ./multinode prechecks

''' 3、执行OpenStack部署'''
kolla-ansible -i ./multinode deploy

6、使用OpenStack

6.1 OpenStack需要一个openrc文件,其中设置了admin用户的凭证。
要生成这个文件运行以下命令:

kolla-ansible post-deploy
. /etc/kolla/admin-openrc.sh

6.2 安装基本的OpenStack CLI客户端:

pip install python-openstackclient python-glanceclient python-neutronclient

6.3 运行脚本创建示例网络,图像等

. /usr/share/kolla-ansible/init-runonce

打开浏览器输入10.24.3.120(外部VIP),用户admin ,密码admin 可登录openstack_dashboard,如图所示:

 
openstack_dashboard.png


作者:不二啊1
链接:https://www.jianshu.com/p/6b7ebcb82196
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

kolla-ansible部署OpenStack多节点

posted @ 2021-12-03 12:14  技术颜良  阅读(1914)  评论(0编辑  收藏  举报