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多節點


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM