10
5

More than 5 years have passed since last update.

OpenStack kolla-ansibe(pike)でマルチノード構築

Last updated at Posted at 2017-12-17
  • はじめに

openstack kollaの説明はしません(キリっ
マニアックなので、興味ある人はQiita記事を探していください。
雑に説明すれば、OpenStackのコンポをDockerで包んでいろんな問題を解決しようとしているやつです。

本記事ではopenstack kollaのうち、kolla-ansibe(pike版)でマルチノードデプロイするために必要な情報を記載しています。
all-in-oneの成功記事はありましたが、マルチノードデプロイの記事がなかったのでチャレンジしてみた次第です。

結果として成功して動作していますが、なかなか大変でした。

  • 環境情報

CentOS7.4
controller(ASROCK NUC): CPU:n3150 メモリ16GB ストレージ:SSD 128GB
node1(FMV P771/D): CPU:Corei5 2520M メモリ16GB ストレージ:SSD 256GB
node2(FMV P771/E): CPU:Corei5 3320M メモリ16GB ストレージ:SSD 256GB
Cinderボリューム: NASからのNFSマウント!

  • ネットワーク構成

memo.png

controllerを含むすべてのノードが異なるヘテロな環境となります。

  1. 準備

kolla-ansibleでOpenStack(stable/pike)を構築するを参考に、
3.3 コンフィグ編集まで進める。

1.1. network_interfaceの編集

/etc/kolla/globals.yml
network_interface: "ens2p0"

ここのは、全ノード共通のI/F名しかかけないため、ヘテロ環境でkolla-ansibleが出来ない。
このため、各ノードのI/Fを書き換える。

この記事を連行に、インタフェース名を変更。

今回は、Controllerに合わせ、すべてをens2p0とする。

それ以外の設定は特に問題ない。

1.2. マルチノードコンフィグ

全ノードで名前解決出来るように設定

192.168.2.11 n3150
192.168.2.12 p771d
192.168.2.13 p771e

multinodeコンフィグは最初のほうだけ修正すればOK

[control]
# These hostname must be resolvable from your deployment host
n3150

# The above can also be specified as follows:
#control[01:03]     ansible_user=kolla

# The network nodes are where your l3-agent and loadbalancers will run
# This can be the same as a host in the control group
[network]
n3150

[compute]
p771d
p771e

[monitoring]
n3150

# When compute nodes and control nodes use different interfaces,
# you can specify "api_interface" and other interfaces like below:
#compute01 neutron_external_interface=eth0 api_interface=em1 storage_interface=em1 tunnel_interface=em1

[storage]
n3150

[deployment]
n3150       ansible_connection=local

diffは以下の通り


5c5,7
< n3150
---
> control01
> control02
> control03
13c15,16
< n3150
---
> network01
> network02
16,17c19
< p771d
< p771e
---
> compute01
20c22
< n3150
---
> monitoring01
27c29
< n3150
---
> storage01
30c32
< n3150       ansible_connection=local
---
> localhost       ansible_connection=local

2.デプロイ準備

2.1. computeノードにDockerをインストール

      先に立てたDockerレジストリを利用するので、controllerとcomputeのDockerデーモンにinsecureの設定を追加
      CentOSに最近のDockerをインストールすると、dockerdになっているので、以下の設定を入れる
/usr/lib/systemd/system/docker.service
 ExecStart=/usr/bin/dockerd --insecure-registry 192.168.2.11:4000

2.2. ansible2.2のインストール
参考記事の通り、2.2を明示して再インストール

QuickStartには、stable/ocataならansibe2.0、pikeならansible2.2と書いてあるのに、yum installするとansible2.4になるという。

contollerだけではく、computeノード側でも実施

2.3. Docker SDKの再インストール

kolla-ansible prechecks -i multinode

上記コマンドによるチェックで、compute側のDockerのバージョン不整合というエラーが出ます。
pipで管理されているDockerSDKのDocker対応バージョンが古いために起こります。
このため、対応するDockerSDKをインストールします。

wget https://pypi.python.org/packages/20/73/3bb05004dcc734182d57a1c8a802732e05788678a71bfa12348a614d5d73/docker-2.6.1.tar.gz#md5=be4c90ee936ad0af4c45532616bf8b52
tar zxvf docker-2.6.1.tar.gz
cd docker-2.6.1
python setup.py install

これだけだとうまく依存関係を解決してくれない。
一応、入ってないはずだけど、docker-pyを抜いておく。

pip uninstall docker-py

しかし、これでもおかしいのでライブラリをいくつか入れ直す

pip install requests -U
pip install urllib3 -U
pip uninstall requests urllib3 pyOpenSSL
pip install requests urllib3 pyOpenSSL
pip install requests urllib3 pyOpenSSL -U

pythonよく分かってないけど、2回叩かないと綺麗に消えなかったので叩いておく(おまじない)

2.4. Cinder用NFSの設定
デフォルトLVMが辛いのでNFSを使う

ガイドのNFSを参考に設定。
設定ファイルの置き場に困ったが、以下の置けば設定を読んでくれる様子

vi /etc/kolla/config/nfs_shares

192.168.1.xxx:/openstack

contoller自身はNFSサーバにはならないので、exportsの設定は不要

fstabでNFSマウントを書いて置けば良い

vi /etc/fstab

192.168.1.xxx:/openstack  /kolla_nfs                   nfs     defaults        0 0

3.デプロイ

kolla-ansible deploy -i multinode

4.ポストデプロイ
これを実施しなくても利用可能だが、flavorとか作ってくれるので便利

kolla-ansible post-deploy

5.再デプロイ
kollaの最大のメリットは、ホストOSを汚さないこと。
packstackだと、再インストールはほぼ不可能に近いけど、kollaはDockerなので比較的簡単に可能。

しかし、先日のおぷすた勉強会でも話題にあがったもので、再デプロイするとhorizonのCSSが消失するという問題がある
kollaをインストしてみたのP22

5.1. Stylesheetの読み直し
いろいろ試した結果
horizonコンテナに入ってStylesheet周りのクリーンナップと再コンパイルをすることでひとまず対処可能な様子

controllerノードにて、

docker exec -it horizon bash
/var/lib/kolla/venv/bin/python /var/lib/kolla/venv/bin/manage.py collectstatic --noinput --clear
/var/lib/kolla/venv/bin/python /var/lib/kolla/venv/bin/manage.py compress --force
exit
docker restart horizon

通常は、コンテナ作成時に実施しているようで、再デプロイだと再起動なので処理が走ってないように見える。
horizonの再起動がわからなかったけど、コンテナの再起動で良い様子

ひとまず、これでうまく行けば動くと思われる

controllerはこんな感じ

[root@n3150 pike]# docker ps
CONTAINER ID        IMAGE                                                                       COMMAND                  CREATED             STATUS              PORTS                    NAMES
63af78323604        192.168.2.11:4000/lokolla/centos-source-horizon:5.0.1                     "kolla_start"            2 weeks ago         Up 2 weeks                                   horizon
bba4f50c87d1        192.168.2.11:4000/lokolla/centos-source-heat-engine:5.0.1                 "kolla_start"            2 weeks ago         Up 2 weeks                                   heat_engine
2cbcd75a15b9        192.168.2.11:4000/lokolla/centos-source-heat-api-cfn:5.0.1                "kolla_start"            2 weeks ago         Up 2 weeks                                   heat_api_cfn
e9db0b2268d1        192.168.2.11:4000/lokolla/centos-source-heat-api:5.0.1                    "kolla_start"            2 weeks ago         Up 2 weeks                                   heat_api
7c88547f2c7b        192.168.2.11:4000/lokolla/centos-source-neutron-metadata-agent:5.0.1      "kolla_start"            2 weeks ago         Up 2 weeks                                   neutron_metadata_agent
2850b49a2130        192.168.2.11:4000/lokolla/centos-source-neutron-l3-agent:5.0.1            "kolla_start"            2 weeks ago         Up 2 weeks                                   neutron_l3_agent
c4fa5e60aaf9        192.168.2.11:4000/lokolla/centos-source-neutron-dhcp-agent:5.0.1          "kolla_start"            2 weeks ago         Up 2 weeks                                   neutron_dhcp_agent
b0a4c5570587        192.168.2.11:4000/lokolla/centos-source-neutron-openvswitch-agent:5.0.1   "kolla_start"            2 weeks ago         Up 2 weeks                                   neutron_openvswitch_agent
6a6d12f77ee0        192.168.2.11:4000/lokolla/centos-source-neutron-server:5.0.1              "kolla_start"            2 weeks ago         Up 2 weeks                                   neutron_server
6cbd66a64873        192.168.2.11:4000/lokolla/centos-source-openvswitch-vswitchd:5.0.1        "kolla_start"            2 weeks ago         Up 2 weeks                                   openvswitch_vswitchd
c6c191c463e9        192.168.2.11:4000/lokolla/centos-source-openvswitch-db-server:5.0.1       "kolla_start"            2 weeks ago         Up 2 weeks                                   openvswitch_db
5fc949d20956        192.168.2.11:4000/lokolla/centos-source-nova-novncproxy:5.0.1             "kolla_start"            2 weeks ago         Up 2 weeks                                   nova_novncproxy
2c6d467a3d2e        192.168.2.11:4000/lokolla/centos-source-nova-consoleauth:5.0.1            "kolla_start"            2 weeks ago         Up 2 weeks                                   nova_consoleauth
a5f87545ad6f        192.168.2.11:4000/lokolla/centos-source-nova-conductor:5.0.1              "kolla_start"            2 weeks ago         Up 2 weeks                                   nova_conductor
d5d22ed99fdb        192.168.2.11:4000/lokolla/centos-source-nova-scheduler:5.0.1              "kolla_start"            2 weeks ago         Up 2 weeks                                   nova_scheduler
305b87208a14        192.168.2.11:4000/lokolla/centos-source-nova-api:5.0.1                    "kolla_start"            2 weeks ago         Up 2 weeks                                   nova_api
ad5ea72cd910        192.168.2.11:4000/lokolla/centos-source-nova-placement-api:5.0.1          "kolla_start"            2 weeks ago         Up 2 weeks                                   placement_api
10dfed44ab12        192.168.2.11:4000/lokolla/centos-source-cinder-backup:5.0.1               "kolla_start"            2 weeks ago         Up 2 weeks                                   cinder_backup
2a3cc8a96f53        192.168.2.11:4000/lokolla/centos-source-cinder-scheduler:5.0.1            "kolla_start"            2 weeks ago         Up 2 weeks                                   cinder_scheduler
fdd5db209f86        192.168.2.11:4000/lokolla/centos-source-cinder-api:5.0.1                  "kolla_start"            2 weeks ago         Up 2 weeks                                   cinder_api
d482b2544fff        192.168.2.11:4000/lokolla/centos-source-glance-registry:5.0.1             "kolla_start"            2 weeks ago         Up 2 weeks                                   glance_registry
95632b5e758f        192.168.2.11:4000/lokolla/centos-source-glance-api:5.0.1                  "kolla_start"            2 weeks ago         Up 2 weeks                                   glance_api
a24cf224077f        192.168.2.11:4000/lokolla/centos-source-keystone:5.0.1                    "kolla_start"            2 weeks ago         Up 2 weeks                                   keystone
bce1fd14038a        192.168.2.11:4000/lokolla/centos-source-rabbitmq:5.0.1                    "kolla_start"            2 weeks ago         Up 2 weeks                                   rabbitmq
5ef43e173fbf        192.168.2.11:4000/lokolla/centos-source-mariadb:5.0.1                     "kolla_start"            2 weeks ago         Up 2 weeks                                   mariadb
a66ad69cd0e3        192.168.2.11:4000/lokolla/centos-source-cron:5.0.1                        "kolla_start"            2 weeks ago         Up 2 weeks                                   cron
48cee62ca250        192.168.2.11:4000/lokolla/centos-source-kolla-toolbox:5.0.1               "kolla_start"            2 weeks ago         Up 2 weeks                                   kolla_toolbox
9178e686966f        192.168.2.11:4000/lokolla/centos-source-fluentd:5.0.1                     "kolla_start"            2 weeks ago         Up 2 weeks                                   fluentd
b4080590aaad        192.168.2.11:4000/lokolla/centos-source-memcached:5.0.1                   "kolla_start"            2 weeks ago         Up 2 weeks                                   memcached
599e7994e28d        192.168.2.11:4000/lokolla/centos-source-cinder-volume:5.0.1               "kolla_start"            2 weeks ago         Up 2 weeks                                   cinder_volume
f1c9b12fe301        registry                                                                    "/entrypoint.sh /etc…"   3 weeks ago         Up 2 weeks          0.0.0.0:4000->5000/tcp   registry

compute側はこんな感じ

[root@p771e ~]# docker ps
CONTAINER ID        IMAGE                                                                       COMMAND             CREATED             STATUS              PORTS               NAMES
be2c625aef4d        192.168.2.11:4000/lokolla/centos-source-neutron-openvswitch-agent:5.0.1   "kolla_start"       2 weeks ago         Up 2 weeks                              neutron_openvswitch_agent
b2a62d530490        192.168.2.11:4000/lokolla/centos-source-openvswitch-vswitchd:5.0.1        "kolla_start"       2 weeks ago         Up 2 weeks                              openvswitch_vswitchd
e1e47141c7c2        192.168.2.11:4000/lokolla/centos-source-openvswitch-db-server:5.0.1       "kolla_start"       2 weeks ago         Up 2 weeks                              openvswitch_db
d576259eb6ae        192.168.2.11:4000/lokolla/centos-source-nova-libvirt:5.0.1                "kolla_start"       2 weeks ago         Up 2 weeks                              nova_libvirt
7740912da8b4        192.168.2.11:4000/lokolla/centos-source-nova-ssh:5.0.1                    "kolla_start"       2 weeks ago         Up 2 weeks                              nova_ssh
d250349707de        192.168.2.11:4000/lokolla/centos-source-kolla-toolbox:5.0.1               "kolla_start"       2 weeks ago         Up 2 weeks                              kolla_toolbox
a42b2b1a1cb7        192.168.2.11:4000/lokolla/centos-source-fluentd:5.0.1                     "kolla_start"       2 weeks ago         Up 2 weeks                              fluentd
504c4304ed6c        192.168.2.11:4000/lokolla/centos-source-nova-compute:5.0.1                "kolla_start"       2 weeks ago         Up 2 weeks                              nova_compute
10
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
5