OpenStack Queens をKollaで入れ直す

Newtonのリポジトリがなくなっているので, Kollaで入れ直すことにした。
都度対処療法で進めていったので, 一般的な流れでは無いことをご了承ください。

まず, Packstack環境をこちらのスクリプトで削除する。
付録A PackStack デプロイメントの削除

# ./unpack.sh

一旦再起動&yum update。

# yum update -y

ここからはオフィシャルのページを参考にすすめていく・・・とやってみはいいけれど, うまくいかなかったのでQiitaのこちらも参考にやっていく。
Kolla Ansible Quick Start
kolla-ansibleでOpenStack(stable/queens)を構築する

最小要件は

  • NIC 2つ
  • メモリ 8GB以上
  • ディスク 40GB

今回はRDOの名残のbr-exをマネジメント用にして, もう一方のNICをExternal用にする。
External用のNICはIP無し。
と思ってやってみたけれど, 実際やってみるとbr-exはprecheck時にエラーになるので, openvswitchを利用せず, 物理NICに戻す必要あり。

1. 事前準備

$ sudo yum install epel-release
$ sudo yum install python-pip
$ sudo pip install -U pip
$
$ sudo yum install python-devel libffi-devel gcc openssl-devel libselinux-python
$
$ sudo yum install ansible

/etc/ansible/ansible.cfg 編集。

[defaults]
host_key_checking=False
pipelining=True
forks=100

その他, openstack-newtonのリポジトリで入れたPython系はごっそり消してキレイにしておく。

2. Kolla-ansible インストール

この手順でエラーがでる。

pip install -r kolla/requirements.txt

<エラーメッセージ>

oslo-config 6.4.0 has requirement PyYAML>=3.12, but you'll have pyyaml 3.10 which is incompatible.

この対応のため, 以下インストール実施。

$ wget http://pyyaml.org/download/pyyaml/PyYAML-3.12.tar.gz
$ tar xvfz ./PyYAML-3.12.tar.gz
$ sudo python ./PyYAML-3.12/setup.py install

今一度ansible インストール

$ sudo yum install ansible
$ sudo pip install -r kolla/requirements.txt
$ sudo pip install -r kolla-ansible/requirements.txt

うまくいった。

3. 初期設定ファイル準備

今回はAll-in-oneなので特にファイルいじらない。

$ sudo ansible -i all-in-one all -m ping
localhost | SUCCESS => {
"changed": false,
"ping": "pong"
}

成功。

4. Kolla パスワード設定

$ sudo kolla-genpwd

5. Kolla globals.yml 編集

kolla_base_distro: "centos"
kolla_install_type: "source"
openstack_release: "queens"
kolla_internal_vip_address: "192.168.1.100"
docker_registry: ""
network_interface: "enp4s0"
neutron_external_interface: "enp1s0"
enable_neutron_provider_networks: "yes" #追加(2018/08/29) 外部ネットワークにつなげたい時はこれ必要
enable_cinder: "yes"
enable_cinder_backup: "yes"
enable_cinder_backend_nfs: "yes"
enable_haproxy: "no"
enable_heat: "yes"
enable_horizon: "yes"
enable_manila: "yes"
enable_manila_backend_generic: "yes" #追加(2018/08/25)
enable_neutron_bgp_dragent: "yes"
glance_backend_file: "yes"
enable_cinder_backend_nfs: "yes"
nova_compute_virt_type: "kvm"
tempest_image_id:
tempest_flavor_ref_id:
tempest_public_network_id:
tempest_floating_network_name:

6.NFS設定

/share/cinder をcinderの共有先とした。
/etc/kolla/config/nfs_shares 編集

#storage01:/share/cinder    #コメントアウト
localhost:/share/cinder #all-in-oneなのでlocalhostに編集

7. デプロイ

$ sudo kolla-ansible -i all-in-one bootstrap-servers
$ sudo kolla-ansible -i all-in-one prechecks
$ sudo kolla-ansible -i all-in-one deploy
$ sudo kolla-ansible post-deploy

8. OpenStack CLIインストール

色々と依存関係でエラーが出たので対処療法で以下実施。
sudo mv ./ipaddress* /tmp/

sudo mv /lib/python2.7/site-packages/pyinotify* /tmp/
pip install python-openstackclient python-glanceclient python-neutronclient

この後, これも足りないとインストール。

sudo yum install python-stevedore.noarch

そしてサンプル構成をデプロイ時にまたエラーが出て以下対応をした。

sudo yum install python-stevedore.noarch

9. デプロイ

改めてサンプル構成デプロイ実行。

. /etc/kolla/admin-openrc.sh
. /usr/share/kolla-ansible/init-runonce

一応できている。

$ openstack subnet list
+--------------------------------------+----------------+--------------------------------------+-------------+
| ID | Name | Network | Subnet |
+--------------------------------------+----------------+--------------------------------------+-------------+
| 0d5a4b6f-a873-4ea1-9b50-f4f7b2c52c95 | public1-subnet | 6c5000d4-6cdc-4ded-8e04-dce9f85dd4eb | 10.0.2.0/24 |
| 72bd7b51-9ab0-4be3-956a-dd3ce1085048 | demo-subnet | ccc2adc9-9b5e-42c6-9787-b19d11605f63 | 10.0.0.0/24 |
+--------------------------------------+----------------+--------------------------------------+-------------+

ダッシュボードにアクセス。
http://<kolla_internal_vip_address>

https化したいけれど, どうしたらいいのだろう

ひとまず無事?にできたので今日はここまで。