1. 程式人生 > >基於Kolla-Ansible安裝OpenStack Queens版本

基於Kolla-Ansible安裝OpenStack Queens版本

 

0. 寫在前面

我在成功安裝這個之前,真的閱讀過很多部落格,我一開始覺得安裝很簡單,不過是把那些東西複製到命令列執行一遍就好了,但我實在是沒想到失敗的次數讓我無語,沒能執行成功的各種錯誤查也查不到,所以我寫這篇東西,第一是幫我自己鞏固成功的安裝過程,第二是為了看到這篇文章的同學能一次成功,不要耽誤太多時間。

1. 環境準備

新建立1臺虛擬機器,新配置2張網絡卡,一共3張網絡卡,作為all in one節點。作業系統為centos7.4。

三張網絡卡,首先我要解釋一下:

虛擬機器應該和主機共用一個網路,你可以選擇自動橋接,這樣比較方便,這樣選擇後的虛擬機器可以直接上網的。

你還需配置兩個網路:

       第一,配一個環回網絡卡,網段自己設定,我設定的是10.99.0.200,閘道器255.255.255.0。這樣在虛擬機器裡橋接第一個網路設定固定ip地址可以隨意設定這個網段下的任意網路,比如,我設定的是:10.99.0.7。

       這個網絡卡的作用是作為horizon dashboard的登陸地址,之後你部署完了之後應該可以用horizon介面登陸,這樣配置的話,在瀏覽器打上10.99.0.7,horizon介面就會出來了。

       第二,繼續新增一個環回網絡卡,網段自己設定,我設定的是192.168.0.200,閘道器255.255.255.0。這樣在虛擬機器裡橋接第一個網路設定固定ip地址可以隨意設定這個網段下的任意網路,比如,我設定的是:192.168.0.7。

       這個網絡卡的作用是neutron的作為網路介面,網上的有些部落格沒說清楚之前,我以為配一個環回網絡卡的地址就可以了,但是問題在於,如果10.99.0.7這個網路作為horizon介面,沒有192.168.0.7這個網路的話,那麼neutron的介面就必須設定你自動橋接的網絡卡地址,這樣一來,就會出現很嚴重的問題,上不了網。因為neutron佔用了這個ip地址,上不了網的話對於整個部署是沒有意義的。

1)關閉Selinux

vi /etc/sysconfig/selinux
SELINUX=disabled

注意你可以setenforce 1的方式暫時關閉selinux,上面的命令在重啟以後才生效,但是如果你想不重啟繼續下面的操作可以執行setenforce 1這樣的命令來操作,但我有強迫症,所以還是重啟了。

2)關閉firewalld

systemctl stop firewalld
systemctl disable firewalld

2. 安裝 docker

1)新增Docker源

cd /etc/yum.repos.d/ 
vi docker.repo

 

[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg

2)新增epel源 
 

vi epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://mirrors.aliyun.com/epel/7/$basearch
        http://mirrors.aliyuncs.com/epel/7/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

 

3)安裝Docker 1.12.6

yum install docker-engine-1.12.6 docker-engine-selinux-1.12.6 -y1

4)設定Docker

mkdir /etc/systemd/system/docker.service.d
vi /etc/systemd/system/docker.service.d/kolla.conf
[Service]

MountFlags=shared

5)重啟相關服務

systemctl daemon-reload
systemctl enable docker
systemctl restart docker

6)配置阿里雲的Docker加速器,加快pull registry映象

mkdir -p /etc/docker

tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://a5aghnme.mirror.aliyuncs.com"]
}
EOF

重啟下服務

systemctl daemon-reload && systemctl restart docker

7)設定代理(如果需要)

建立配置檔案/etc/systemd/system/docker.service.d/http-proxy.conf,新增如下配置:

[Service] 
Environment="HTTP_PROXY=http://ip:port/"
Environment="HTTPS_PROXY=http://ip:port/"

重啟服務
 

systemctl daemon-reload && systemctl restart docker

3.安裝 kolla

1)安裝 pip

yum install python-pip
pip install -U pip -i https://pypi.tuna.tsinghua.edu.cn/simple

2)安裝基礎軟體

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

3)安裝 ansible

pip install -U ansible -i https://pypi.tuna.tsinghua.edu.cn/simple

4)安裝 kolla-ansible

pip install -U kolla-ansible -i https://pypi.tuna.tsinghua.edu.cn/simple

5)複製相關配置檔案

cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/
cp /usr/share/kolla-ansible/ansible/inventory/* /home/

6)生成密碼檔案

kolla-genpwd

7)編輯 /etc/kolla/passwords.yml檔案,配置keystone管理員使用者的密碼。

keystone_admin_password: admin

同時,也是登入Dashboard,admin使用的密碼,你可以根據自己需要進行修改。

8)編輯 /etc/kolla/globals.yml 配置檔案

kolla_internal_vip_address: "10.99.0.7"   //訪問Dashboard的地址
openstack_release: "queens"
network_interface: "ens33"                //就是10.99.0.7的網絡卡名字                 
neutron_external_interface: "ens34"       //就是192.168.0.7的網絡卡名字,用於neutron的網路介面
enable_haproxy: "no"

9)部署前檢查

注意,部署前檢查應該在/etc/hosts檔案中新增10.99.0.7 localhost的DNS。這個很重要!很重要!沒有絕對出錯!

kolla-ansible prechecks -i /home/all-in-one

10)先拉取映象

注意,這裡,實話來講,其實拉映象還是比較慢的,所以有的時候,要科學上網,但是科學上網有的時候也會導致拉取失敗。我就具體講一下怎麼搞會快一點。

首先,你需要科學上網。

yum install git
git clone -b manyuser https://github.com/Ssrbackup/shadowsocksr.git
gedit /etc/shadowsocks.json
//然後把你的ssr的JSON配置填進去
cd shadowsocksr/shadowsocks/
python local.py -c/etc/shadowsocks.json -d start //開始ssr服務

//下面是一些備用的命令:
python local.py -c/etc/shadowsocks.json -d stop//結束ssr服務
python local.py -c/etc/shadowsocks.json -d restart //開始ssr服務

 

現在,你需要設定proxychains讓你的科學上網能夠在終端實現:

cd                                                     //回到主目錄
yum -y install gcc automake autoconf libtool make      //安裝make環境
git clone https://github.com/rofl0r/proxychains-ng.git //下載proxychains4

cd proxychains-ng
./configure //生產配置檔案
make && sudo make install                               //編譯安裝
cp ./src/proxychains.conf /etc/proxychains.conf         //提取配置檔案
cd .. && rm -rf proxychains-ng                          //清理安裝包
vim /etc/proxychains.conf                               //編輯配置檔案
//最後一行改成sock5 127.0.0.1:1080




這樣,以後執行命令的時候在前面加上proxychains4就科學上網了。

kolla-ansible pull -i /home/all-in-one
//或者試一下科學上網
proxychains4 kolla-ansible pull -i /home/all-in-one

然後如果還不行的話,可以試試手動從映象網站拉下來你所需要的映象,最後再執行上面的命令,就可以減少他的拉取映象的個數。

proxychains4 docker pull kolla/centos-source-fluentd:queens
proxychains4 docker pull kolla/centos-source-prometheus-base:queens
proxychains4 docker pull kolla/centos-source-prometheus-haproxy-exporter:queens
proxychains4 docker pull kolla/centos-source-haproxy:queens
proxychains4 docker pull kolla/centos-source-chrony:queens
proxychains4 docker pull kolla/centos-source-openvswitch-vswitchd:queens
proxychains4 docker pull kolla/centos-source-openvswitch-base:queens
proxychains4 docker pull kolla/centos-source-openvswitch-db-server:queens
proxychains4 docker pull kolla/centos-source-openstack-base:queens
proxychains4 docker pull kolla/centos-source-glance-base:queens
proxychains4 docker pull kolla/centos-source-mariadb:queens  
proxychains4 docker pull kolla/centos-source-memcached:queens  
proxychains4 docker pull kolla/centos-source-keystone-ssh:queens  
proxychains4 docker pull kolla/centos-source-keystone-base:queens  
proxychains4 docker pull kolla/centos-source-kolla-toolbox:queens  
proxychains4 docker pull kolla/centos-source-heat-api:queens  
proxychains4 docker pull kolla/centos-source-heat-api-cfn:queens  
proxychains4 docker pull kolla/centos-source-glance-api:queens  
proxychains4 docker pull kolla/centos-source-keystone-fernet:queens  
proxychains4 docker pull kolla/centos-source-nova-libvirt:queens  
proxychains4 docker pull kolla/centos-source-neutron-lbaas-agent:queens  
proxychains4 docker pull kolla/centos-source-neutron-l3-agent:queens  
proxychains4 docker pull kolla/centos-source-keepalived:queens
proxychains4 docker pull kolla/centos-source-nova-compute:queens  
proxychains4 docker pull kolla/centos-source-nova-spicehtml5proxy:queens  
proxychains4 docker pull kolla/centos-source-nova-api:queens  
proxychains4 docker pull kolla/centos-source-nova-novncproxy:queens  
proxychains4 docker pull kolla/centos-source-nova-ssh:queens  
proxychains4 docker pull kolla/centos-source-nova-placement:queens  
proxychains4 docker pull kolla/centos-source-nova-compute-ironic:queens  
proxychains4 docker pull kolla/centos-source-horizon:queens 
proxychains4 docker pull kolla/centos-binary-nova-conductor:queens 
proxychains4 docker pull kolla/centos-binary-nova-consoleauth:queens 
proxychains4 docker pull kolla/centos-binary-nova-serialproxy:queens 
proxychains4 docker pull kolla/centos-binary-nova-mksproxy:queens 
proxychains4 docker pull kolla/centos-binary-nova-scheduler:queens 
proxychains4 docker pull kolla/centos-binary-nova-base:queens 
proxychains4 docker pull kolla/centos-binary-neutron-server-opendaylight:queens 
proxychains4 docker pull kolla/centos-binary-neutron-server:queens 
proxychains4 docker pull kolla/centos-binary-neutron-metering-agent:queens
proxychains4 docker pull kolla/centos-binary-ce-neutron-metadata-agent :queens 
proxychains4 docker pull kolla/centos-binary-neutron-sriov-agent:queens 
proxychains4 docker pull kolla/centos-binary-ironic-neutron-agent:queens 
proxychains4 docker pull kolla/centos-binary-neutron-bgp-dragent:queens 
proxychains4 docker pull kolla/centos-binary-neutron-sfc-agent:queens 
proxychains4 docker pull kolla/centos-binary-neutron-openvswitch-agent:queens 
proxychains4 docker pull kolla/centos-binary-neutron-dhcp-agent:queens 
proxychains4 docker pull kolla/centos-binary-keystone:queens 
proxychains4 docker pull kolla/centos-binary-neutron-linuxbridge-agent:queens 
proxychains4 docker pull kolla/centos-binary-fluentd:queens
proxychains4 docker pull kolla/centos-binary-prometheus-haproxy-exporter:queens
proxychains4 docker pull kolla/centos-binary-haproxy:queens
proxychains4 docker pull kolla/centos-binary-chrony:queens
proxychains4 docker pull kolla/centos-binary-openvswitch-vswitchd:queens
proxychains4 docker pull kolla/centos-binary-openvswitch-base:queens
proxychains4 docker pull kolla/centos-binary-openvswitch-db-server:queens
proxychains4 docker pull kolla/centos-binary-openstack-base:queens
proxychains4 docker pull kolla/centos-binary-glance-base:queens
proxychains4 docker pull kolla/centos-binary-mariadb:queens  
proxychains4 docker pull kolla/centos-binary-memcached:queens  
proxychains4 docker pull kolla/centos-binary-keystone-ssh:queens  
proxychains4 docker pull kolla/centos-binary-keystone-base:queens  
proxychains4 docker pull kolla/centos-binary-kolla-toolbox:queens  
proxychains4 docker pull kolla/centos-binary-heat-all:queens  
proxychains4 docker pull kolla/centos-binary-heat-api:queens  
proxychains4 docker pull kolla/centos-binary-heat-api-cfn:queens  
proxychains4 docker pull kolla/centos-binary-glance-api:queens  
proxychains4 docker pull kolla/centos-binary-fluentd:queens  
proxychains4 docker pull kolla/centos-binary-keystone-fernet:queens  
proxychains4 docker pull kolla/centos-binary-nova-libvirt:queens  
proxychains4 docker pull kolla/centos-binary-neutron-lbaas-agent:queens  
proxychains4 docker pull kolla/centos-binary-neutron-l3-agent:queens  
proxychains4 docker pull kolla/centos-binary-keepalived:queens
proxychains4 docker pull kolla/centos-binary-nova-compute:queens  
proxychains4 docker pull kolla/centos-binary-nova-spicehtml5proxy:queens  
proxychains4 docker pull kolla/centos-binary-nova-api:queens  
proxychains4 docker pull kolla/centos-binary-nova-novncproxy:queens  
proxychains4 docker pull kolla/centos-binary-nova-ssh:queens  
proxychains4 docker pull kolla/centos-binary-nova-placement:queens  
proxychains4 docker pull kolla/centos-binary-nova-compute-ironic:queens  
proxychains4 docker pull kolla/centos-binary-horizon:queens 

11)安裝 Docker python libraries, 否則會報錯

pip install -U docker -i https://pypi.tuna.tsinghua.edu.cn/simple

12)部署

kolla-ansible deploy -i /home/all-in-one

等待大約30分鐘,部署完成。

13)登入 dashboard  http://10.99.0.7

14)安裝客戶端

pip install python-openstackclient python-glanceclient python-neutronclient -i https://pypi.tuna.tsinghua.edu.cn/simple

15)執行部署後操作

kolla-ansible postdeploy -i /home/all-in-one