kolla部署all-in-one環境(N版)

簡單介紹:

Kolla 是 OpenStack 大賬篷模式下的官方子項目之一,其主要目標是經過利用 Docker 容器以及 Ansible 自動化部署工具,來爲 OpenStack 雲平臺提 供一個簡單而靈活的部署和管理的方式。它容許徹底的自主化,使得用戶能夠根據自身的特殊需求自行修改注: 社區從ocata版本開始將kolla代碼拆分紅kolla和kolla-ansibe兩個倉庫以明細分工
kolla用來build OpenStack鏡像
kolla-ansibe用來部署任一 OpenStack 服務的配置項。python

宿主機配置建議

  • 2 個或以上網卡
  • 至少 8GB 內存
  • 至少 40GB 磁盤空間

這裏須要解釋的是,在 OpenStack 中,宿主機上不一樣網卡的做用通常可歸爲以下幾種:

  • eth0 默認的第一塊網卡,可做爲管理網絡使用,即登陸管理本宿主機,或不一樣宿主機間通訊。
  • eth1 可做爲數據網絡(VLAN/VXLAN)使用,不一樣虛擬機之間進行通訊時(東西向流量),通過此物理網卡。
  • eth2 可做爲外部網絡使用,即當虛擬機須要與外網進行通訊時(南北向流量),通過此物理網卡。
  • eth3 可做爲存儲網絡使用,即當虛擬機與後端存儲設備進行交互時,通過此物理網卡。

固然,理論上若是隻使用一塊網卡的話也是能夠的,只是將網絡流量這樣細分開來後,可分擔物理網卡的壓力,也便於後期的問題定位。 根據 Kolla 的配置項解釋,此處咱們暫時使用兩塊網卡:linux

  • eth0 192.168.0.10 做爲管理網絡 + 數據網絡 + 存儲網絡,用於 OpenStack 集羣內部通訊
  • eth1 172.16.0.10 做爲外部網絡,用於虛擬機與外部通訊

 

安裝

關閉selinux,firewaldgit

centos7.3github

初始配置docker

yum install -y epel-releaseswift

yum upgrade -y後端

yum install -y python-pipcentos

pip install –U pipbash

yum install -y ansible網絡

安裝依賴

yum install -y python-devel libffi-devel openssl-devel gcc git  -y

 

hosts文件

[root@openstack tools]# systemctl stop firewalld
[root@openstack tools]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.64.8.176 kolla.openstack.com openstack.com openstack

安裝docker

curl -sSL https://get.docker.io | bash

查看版本(查看)

[root@kolla ~]# docker --version
Docker version 17.06.0-ce, build 02c1d87

 

修改MountFlags選項

mkdir -p /etc/systemd/system/docker.service.d tee /etc/systemd/system/docker.service.d/kolla.conf <<-'EOF' [Service] MountFlags=shared EOF

 

 

開啓docker服務

systemctl daemon-reload&&systemctl enable docker &&systemctl start docker

 

 

下載kolla代碼

[root@kolla ~]#git clone https://github.com/openstack/kolla.git

[root@kolla ~]# cd kolla/


查看遠程分支

[root@kolla kolla]# git branch -a
* (detached from origin/stable/newton)
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/stable/newton
remotes/origin/stable/ocata

 

# 切換至 stable/liberty 分支

[root@kolla kolla]#git checkout remotes/origin/stable/newton

 

安裝依賴(下面步驟在 Kolla 項目的目錄操做)

[root@kolla kolla]#pip install -r requirements.txt -r test-requirements.txt

[root@kolla kolla]#pip install tox

生成配置文件

[root@kolla kolla]#tox -e genconfig

[root@kolla kolla]#cp -rv etc/kolla /etc/

[root@kolla kolla]# ls /etc/kolla/

globals.yml   kolla-build.conf    passwords.yml

 

生成鏡像(這個步驟很重要,docker鏡像build不出來後面部署也會失敗,這裏也能夠不用加-p鏡像全下載)

[root@kolla kolla]#./tools/build.py -p default 

參數中的 -p default 是指定了只 build 主要的 image, 包括 : mariadb, rabbitmq, cinder, ceilometer, glance, heat, horizon, keystone, neutron, nova, swift 等 . 這些能夠只生成的 kolla-build.conf 裏找到。

鏡像超級多,這只是上面的基礎鏡像,若是不加-p直接build會生產很是多的鏡像

 

編輯globals.yml

[root@kolla kolla]# vi /etc/kolla/globals.yml

kolla_internal_vip_address: "10.64.8.177"    //haproxy的虛擬IP,須要用戶能夠直接通訊

neutron_external_interface: "ens224" //按照openstack文檔配置成vm的網卡

network_interface: "ens192"               //這個API服務將默認,vxlan流量也進過這個網卡,all-in-one這裏就無所謂了,我就隨便寫了一個

 openstack_release: "3.0.4"                //docker鏡像tag版本,看你的是多少這裏就該多少
kolla_install_type: "binary"                 //docker pull下來的鏡像類型分爲binary或source,docker ps上鏡像的名字上有體現

keepalived_virtual_router_id: 「51」          //keepaliverd id

 

 

生成密碼文件passwords.yml

這個密碼文件可使用工具自動生成,也能夠手動輸入可是手動輸入須要注意格式,在:後須要空一格再輸入;並且ssh_key也比較麻煩因此推薦使用工具自動生成可是直接輸入
[root@kolla kolla]#.tox/genconfig/bin/kolla-genpwd

修改dashboard登陸密碼

[root@kolla kolla]#vi /etc/kolla/passwords.yml

keystone_admin_password: admin

 

檢查配置

[root@kolla kolla]#./tools/kolla-ansible prechecks

 

開始部署

[root@kolla kolla]#./kolla-ansible deploy

部署完成:

 

生成admin.sh文件

[root@openstack]# kolla-ansible post-deploy
[root@openstack ~]# cat /etc/kolla/admin-openrc.sh
export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=admin
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_AUTH_URL=http://10.64.8.177:35357/v3
export OS_IDENTITY_API_VERSION=3

 

 

kolla自帶了一個初始化openstack的腳本:

[root@openstack ~]# vi kolla/tools/init-runonce

這個就是float  ip配置

neutron subnet-create --name 1-subnet --disable-dhcp --allocation-pool start=10.64.8.90,end=10.64.8.95 public1 10.64.8.0/24 --gateway 10.64.8.254

而後運行戰歌腳本便可。

 

部署中的 一些錯誤:

 1 msg: Unexpected failure during module execution.
 2 An exception occurred during task execution. The full traceback is:
 3 Traceback (most recent call last):
 4   File "/usr/lib/python2.7/site-packages/ansible/executor/task_executor.py", line 119, in run
 5     res = self._execute()
 6   File "/usr/lib/python2.7/site-packages/ansible/executor/task_executor.py", line 431, in _execute
 7     self._task.post_validate(templar=templar)
 8   File "/usr/lib/python2.7/site-packages/ansible/playbook/task.py", line 248, in post_validate
 9     super(Task, self).post_validate(templar)
10   File "/usr/lib/python2.7/site-packages/ansible/playbook/base.py", line 371, in post_validate
11     value = templar.template(getattr(self, name))
12   File "/usr/lib/python2.7/site-packages/ansible/template/__init__.py", line 359, in template
13     d[k] = self.template(variable[k], preserve_trailing_newlines=preserve_trailing_newlines, fail_on_undefined=fail_on_undefined, overrides=overrides)
14   File "/usr/lib/python2.7/site-packages/ansible/template/__init__.py", line 331, in template
15     result = self._do_template(variable, preserve_trailing_newlines=preserve_trailing_newlines, escape_backslashes=escape_backslashes, fail_on_undefined=fail_on_undefined, overrides=overrides)
16   File "/usr/lib/python2.7/site-packages/ansible/template/__init__.py", line 507, in _do_template
17     res = j2_concat(rf)
18   File "<template>", line 11, in root
19   File "/usr/lib/python2.7/site-packages/jinja2/filters.py", line 740, in do_list
20     return list(value)
21   File "/usr/lib/python2.7/site-packages/jinja2/filters.py", line 839, in do_map
22     for item in seq:
23   File "/usr/lib/python2.7/site-packages/jinja2/filters.py", line 931, in _select_or_reject
24     if modfunc(func(transfunc(item))):
25   File "/usr/lib/python2.7/site-packages/jinja2/filters.py", line 925, in <lambda>
26     name, item, args, kwargs)
27   File "/usr/lib/python2.7/site-packages/jinja2/environment.py", line 438, in call_test
28     raise TemplateRuntimeError('no test named %r' % name)
29 TemplateRuntimeError: no test named 'equalto'
30 
31 fatal: [worker-02]: FAILED! => {
32     "failed": true,
33     "msg": "Unexpected failure during module execution.",
34     "stdout": ""
35 }

jinjia2版本問題更新一下:

pip install -U Jinja2 

從新運行kolla-ansible deploy

 注: 社區從ocata版本開始將kolla代碼拆分紅kolla和kolla-ansibe兩個倉庫以明細分工 kolla用來build OpenStack鏡像 kolla-ansibe用來部署

相關文章
相關標籤/搜索