1. 程式人生 > 實用技巧 >【葵花寶典】kolla部署OpenStack-AllinOne

【葵花寶典】kolla部署OpenStack-AllinOne

1.關閉防火牆以及核心安全機制

systemctl stop firewalld
systemctl disable firewalld ##永久性關閉
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux ##永久性關閉

2.安裝拓展源關閉NetworkManager

yum -y install epel-release
systemctl disable NetworkManager
systemctl stop NetworkManager

3.修改主機名並定時同步時間

hostnamectl set-hostname cloud.itdogs.org
vim /etc/hosts
192.168.11.11  cloud.itdogs.org

yum -y install ntpdate
ntpdate ntp.aliyun.com
##建立計劃性任務表,每兩分鐘更新一次時鐘
[root@control ~]# crontab -e
*/2 * * * * /usr/sbin/ntpdate ntp.aliyun.com >> /var/log/ntpdate.log

4.安裝基礎包及docker服務

安裝基礎包
yum install python-devel libffi-devel gcc openssl-devel git python-pip -y
mkdir ~/.pip
vim ~/.pip/pip.conf
[global]
index-url = https://mirrors.aliyun.com/pypi/simple

安裝docker並設定映象加速
yum -y  remove docker  docker-common docker-selinux docker-engine //解除安裝舊版本
yum -y install yum-utils
yum-config-manager  --add-repo  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo //阿里雲yum源
yum list docker-ce --showduplicates | sort -r  //找到yum源裡相應的包
yum install -y docker-ce
systemctl start docker
systemctl enable docker
vi /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://dockerhub.azk8s.cn",
    "https://reg-mirror.qiniu.com",
    "https://registry.docker-cn.com"
  ]
 }

sudo systemctl restart docker

5.安裝kolla-ansible

yum install ansible -y
pip install kolla-ansible #安裝kolla-ansible,如果報錯,pip install kolla-ansible --ignore-installed PyYAML
cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/
ls /etc/kolla/
cp /usr/share/kolla-ansible/ansible/inventory/* /etc/kolla/
ls /etc/kolla/

修改虛擬機器型別為qemu注:如果是在虛擬機器裡裝 kolla,希望可以啟動再啟動虛擬機器,那麼你需要把virt type=qemu,預設是kvm。如果vmware 開了“虛擬化Intel VT"功能,就不用寫這個了。
mkdir -p /etc/kolla/config/nova
cat <<EOF>/etc/kolla/config/nova/nova-compute.conf
[libvirt]
virt type=qemu cpu_mode=none 
EOF

6.自定義kolla-ansible安裝指令碼

自動生成openstack 各服務的密碼檔案
kolla-genpwd
編輯vi /etc/kolla/globals.yml 自定義openstack中部署事項
cat >> /etc/kolla/globals.yml <<EOF 
#version
kolla_base_distro:"centos"
kolla_install_type:"binary"
openstack_release:"train"
#vip
kolla_internal_vip_address:"192.168.11.11"
#docker registry
docker_registry:"registry.cn-shenzhen.aliyuncs.com"
docker_namespace:"kollaimage" 
#network
network_interface:"ens33"
neutron_external_interface:"ens37"
neutron_plugin_agent:"openvswitch"
enable_neutron_provider_networks:"yes"
#storage
enable_cinder:"yes"
enable_cinder_backend_lvm:"yes"
#virt_type
nova_compute_virt_type:"qemu"
EOF

改:15#kolla_base_distro:"centos"#選擇下載的映象為基於 centos版本的映象為:kolla base distro:"centos"
改:18#kolla install type:"binary"#去了前面的#號,使用yum 安裝二進位制包安裝原始碼安裝,指的是使用 git clone 原始碼安裝
為:18 kolla install type:"binary"
改:21#openstack release:""為openstack release:"rocky"#指定安裝rocky 版本的openstack,後期下載的openstack相關的docker 映象的tag 標記也都為rocky
   23#Location of configuration overrides  
   24#node_custom_config:"/etc/kolla/config"#配置檔案的位置   
改:31#kolla internal vip address:"10.10.10.254"為:31kolla internal_vip address:"192.168.1.63"
#我們沒有啟用高可用,所以這裡的IP可以和ens33一樣,也可以獨立寫一個和ens33同網段的IP。這一項的作用是:指定openstack 內部管理地址,以後就通過這個IP地址訪問 openstack web介面,管理私雲。
注:如果配置了高可用,這裡要使用一個沒被佔用的IP。這個IP是搭建HA高可用的浮動IP。此IP將由keepalived 管理以提供高可用性,應設定為和network interface ens33同一個網段的地址。
改:85#network interface:"etho"為:network interface:"ens33"#Kolla-Ansible 需要設定一些網路選項。我們需要設定OpenStack 使用的網路介面。設定的第一個介面是“network_interface"。這是openstack內部多個管理型別網路的預設介面。
改:100#neutron external interface:"eth1"
為:100 neutron_external_interface:"ens38"#所需的第二個介面專用於Neutron外部(或公共)網路,可以是vlan或flat,取決於網路的建立方式。此介面應在沒有IP地址的情況下處於活動如果不是,openstack 雲平臺中的雲主機例項將無法訪問外部網路。只要網絡卡啟動著,就可以了,不要給IP,有IP時br-ex橋接就不成功了。
   177#enable_cinder:"no"#先不開啟cinder
改:195#enable haproxy:"yes"為:195 enable_haproxy:"no”#去了前面的#號,改yes為no。關閉高可用

7.開始安裝

生成SSHKey,並授信本節點:
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
[root@cloud kolla]#vim /etc/kolla/all-in-one#把 localhost 替換成cloud.itdogs.org
:1, $s/localhost/cloud.itdogs.org/
:1, $s/ansible_connection=local//
注:將以下元件,都安裝到cloud.itdogs.org這臺機器上:改第1行到19行中。
[control]
cloud.itdogs.org
[network]
cloud.itdogs.org
[compute]
cloud.itdogs.org
...
[deployment]
cloud.itdogs.org

開始部署OpenStack
通過安裝 bootstrap-servers 把部署openstack 所需要的依賴包都安裝好Kolla-Ansible 提供了一個將以正確版本安裝所有必需服務的劇本 bootstrap-servers。所以我們先安裝bootstrap-servers 把安裝 openstack 所依賴的軟體包都先提前安裝好。包括docker 服務。
kolla-ansible -i /etc/kolla/all-in-one bootstrap-servers
kolla-ansible -i /etc/kolla/all-in-one prechecks
設定docker volume卷掛載方式
tee /etc/systemd/system/docker.service.d/kolla.conf <<'EOF'
[Service]
MountFlags=shared
EOF
注:加上MountFlags=shared後,當 docker 宿主機新增分割槽時,docker 服務不用重啟。新增這個參考後,後期在openstack 中使用cinder 儲存服務時,新加磁碟比較方便。

重啟相關服務
systemctl daemon-reload #只有修改了服務的啟動指令碼,才需要執行daemon-reload。只修改服務的配置檔案,是不需要daemon-reload
systemctl enable docker && systemctl restart docker && systemctl status docker

拉取映象
kolla-ansible -i /etc/kolla/all-in-one pull
檢視網路連結 
netstat -antup|grep 443
檢視下載的映象
docker images
docker images |wc -l

進入OpenStack實際安裝部署階段
kolla-ansible -i /etc/kolla/all-in-one deploy
#因為咱們前面已經下載的映象,所以這時啟動 docker例項會快一些。如果前面沒有下載映象,那麼這時,還會邊下載各種openstack 相關的映象邊部署 docker例項。

驗證部署
kolla-ansible -i /etc/kolla/all-in-one post-deploy
這樣就建立/etc/kolla/admin-openrc.sh 檔案
cat /etc/kolla/admin-openrc.sh
檢視密碼登入即可