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),分別為:
- 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
- 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
- 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,如圖所示:

作者:不二啊1
鏈接:https://www.jianshu.com/p/6b7ebcb82196
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。