kolla-ansible-----快速部署openstack

基本環境

操做系統:CentOS Linux release 7.5.1804 (Core)python

內核版本:3.10.0-862.el7.x86_64git

docker版本:1.13.1github

一、禁用宿主機的 Libvirt 服務

大多數操做系統會默認啓動 Libvirt,但使用 Kolla 來部署 OpenStack 的話,Libvirt 應該在容器中運行並管理虛擬機。
因此宿主機的 Libvirt 須要被關閉,以避免形成衝突。docker

systemctl stop libvirtd.service
systemctl disable libvirtd.service

部署kolla

一、安裝依賴

yum install epel-release python-pip
yum install -y python-devel libffi-devel openssl-devel gcc
pip install -U pip

二、配置國內pip源

否則這個速度很慢vim

mkdir ~/.pip

cat << EOF > ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
EOF

三、安裝stable版kolla

下載源碼
git clone https://git.openstack.org/openstack/kolla -b stable/rocky

安裝依賴
pip install -r kolla/requirements.txt -r kolla/test-requirements.txt

源碼安裝
pip install kolla/

四、安裝tox,生成配置文件

pip install -U tox
cd kolla/
tox -e genconfig
cp -rv etc/kolla /etc/

編輯 kolla-build.conf:控制 Kolla Image Build 的細則。centos

vim /etc/kolla/kolla-build.conf
[DEFAULT]
base = centos 
install_type = source 
namespace = kolla 
push = false 
# The Docker Images tag (string value) 
tag = 6.0.0

 五、docker安裝

yum install docker -y

配置docker mountflags
在[Service]中添加MountFlags=shared
# vim /usr/lib/systemd/system/docker.service
[Service]
MountFlags=shared

systemctl daemon-reload
systemctl restart docker

MountFlags=shared爲neutron的要求,必須配置爲share,不然後面部署的時候neutron可能會有問題。緩存

編譯鏡像

簡單的來理解 Kolla 組件的話,它就是一個自動化構建部署 OpenStack 服務所須要的鏡像的工具。其內含組織了大量的 Dockerfile,供構建鏡像時使用。網絡

kolla-build

也能夠添加參數項 -p default 對應 kolla-build.conf 的 [profiles] Sections,default 類型表示僅構建核心項目的鏡像。工具

若是個別鏡像編譯失敗能夠從新執行以上操做,由於docker的容器緩存,從新編譯會很快。ui

NOTE:但有些狀況下,可能會把錯誤的配置參數 Cache 住,此時建議執行 Cleanup 操做以後再重跑:

# 從系統中移除部署的容器
tools/cleanup-containers 
# 移除因爲殘餘網絡變化引起 docker 啓動的 neutron-agents 主機 
tools/cleanup-host 
# 從 Cache 中移除全部的 docker image 
tools/cleanup-images

也能夠查看一下可編譯的鏡像

kolla-build --list-images

安裝kolla-ansible

一、安裝ansible

ansible的版本要大於2.0

pip install ansible

二、安裝kolla-ansible

git clone https://github.com/openstack/kolla-ansible -b stable/rocky
cd kolla-ansible
pip install -r requirements.txt -r test-requirements.txt -e .

配置一下

cp etc/kolla/globals.yml /etc/kolla/	
cp etc/kolla/passwords.yml /etc/kolla/
kolla-genpwd
cp ansible/inventory/* /root/

三、修改文件

編輯 globals.yml文件

kolla_install_type: "source"
openstack_release:須要與鏡像的 Tag 一致,不然部署時找不到鏡像。
network_interface:指定管理網接口
neutron_external_interface:指定外部網接口
kolla_internal_vip_address:指定 HAProxy 虛擬 IP,單點部署能夠棄用 HAProxy enable_haproxy: "no"。
enable_horizon: "yes"

四、修改 Hypervisor Type

由於操做環境是 VMware 的虛擬機,因此存在嵌套虛擬化不支持 KVM 的問題,若是你但願啓動 OpenStack 實例,那就須要啓用 QEMU(Default KVM)。

mkdir -p /etc/kolla/config/nova
cat << EOF > /etc/kolla/config/nova/nova-compute.conf
[libvirt]
virt_type=qemu
cpu_mode = none
EOF

檢查配置

kolla-ansible prechecks

開始部署

kolla-ansible deploy

報錯

在用Dockerfile製做鏡像的時候老是出現以下錯誤

HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.

緣由分析:

在下載python庫的時候,因爲國內網絡緣由,python包的下載速度很是慢,查看pip 文檔,只要在 pip的時候控制超時便可, 具體參數爲 --default-timeout=100, 後面的時間能夠本身指定。

能夠在kolla-build中指定一下:

[root@centos kolla]# pwd
/root/kolla
[root@centos kolla]# more tox.ini | grep pip
install_command = pip --default-timeout=1000 install {opts} {packages}
相關文章
相關標籤/搜索