Más contenido relacionado La actualidad más candente (20) Similar a OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月 (20) Más de VirtualTech Japan Inc. (20) OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月2. 今回解説する手順書について
2NEC Networks & System Integration Corporation
← 日本仮想化技術株式会社様から
2月11日にリリース
EnterpriseCloud.jpのダウンロードサービス
http://EnterpriseCloud.jp
日本仮想化技術のSlideshare
http://www.slideshare.net/virtualtech-jp
日本仮想化技術のGithub
https://github.com/virtualtech
日本仮想化技術 田口先生のご指導の下、
弊社、目次が検証からドキュメント作
成までを担当。
4. Ansibleとは(おさらい)
4NEC Networks & System Integration Corporation
構成管理ツールの一つ。YAMLフォーマットで
書かれており可読性が高い。
※同じジャンルの製品には“Puppet”“Chef”“Juju”がある。
管理ホストでAnsibleはPlaybookを実⾏しPythonスクリプトに変換。生成した
Pythonスクリプトを対象ホストに送り込み、実⾏。
管理ホスト 対象ホスト
SSH
PlaybookPlaybook
を実⾏
スクリプト
実⾏
Pythonで書かれた
スクリプト
対象ホストSSH
スクリプト
実⾏
Play
book
5. Ansibleの特徴
5NEC Networks & System Integration Corporation
Simple
・最低限(Inventory、Playbook)のファイルがあれば利⽤可能
・YAMLという形式で書くので、プログラマでなくても利⽤しやすい
Agentless
・対象となるサーバに特別なツールをインストールする必要がない
SSHで接続できればOK
Powerful
・アプリのデプロイ、クラウド上へのインスタンス作成、ベアメタル
スイッチの設定など多彩な動作が可能
6. OpenStack-Ansibleとは
6NEC Networks & System Integration Corporation
Ansibleを使⽤してOpenStackの構築・機能追加・アップ
グレードを容易にデプロイできることをめざす
OpenStack Foundation公式
のプロジェクトです。
コミュニティ主導で日々アップデートされています。
【参考】
OpenStack-Ansibleインストールガイド
⇒http://docs.openstack.org/developer/openstack-ansible/install-guide/index.html
OpenStack-Ansible
⇒ https://github.com/openstack/openstack-ansible
7. 手順書の流れ
7NEC Networks & System Integration Corporation
1. 構築する環境について
2. OpenStack-Ansibleインストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイ
5. コンテナの操作
6. OpenStackの操作
⇒ベースとなるOSのセットアップ
⇒ネットワーク周り
の設定等
⇒Playbookの編集
⇒Playbookの実⾏
8. コンポーネント構成
8NEC Networks & System Integration Corporation
凡例
OS
アプリケーション
Compute
NodeController Node
Ubuntu 14.04Ubuntu 14.04
(compute)
Ubuntu 14.04Ubuntu 14.04
(controller)
NovaCompute
KVMKVMLXCLXC
Horizon
Neutron
Glance
Keystone
CloudController
Nova
CloudController
utility
Cinder
×2 ×2
MariaDB
RabbitMQ
memcached
repo
×2 ×3 ×3
instance
instance
OpenStack-Ansible
HAProxy
9. 参考(Juju/MAASの場合)
9NEC Networks & System Integration Corporation
Compute
NodeConroller Node
Ubuntu 14.04Ubuntu 14.04
(compute)
Ubuntu 14.04Ubuntu 14.04
(controller)
Horizon
MariaDB
RabbitMQ
Neutron-API
Glance
Keystone
CloudController
Nova
CloudController
VM/LXC/DockerVM/LXC/Docker
KVMKVM
MAAS
Juju-Core
Juju-GUI
Ubuntu 14.04Ubuntu 14.04Ubuntu 14.04Ubuntu 14.04
(maas)
Ubuntu 14.04Ubuntu 14.04
(bootstrap)
Juju-Bootstrap
凡例
OS
アプリケーション
NovaCompute
KVMKVM
10. 手順書の流れ
10NEC Networks & System Integration Corporation
1. 構築する環境について
2. OpenStack-Ansibleインストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイ
11. 手順書解説
11NEC Networks & System Integration Corporation
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイP5
12. 手順書解説
12NEC Networks & System Integration Corporation
省略
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイP6
13. HAの考え方
13NEC Networks & System Integration Corporation
障害が起きたときスプリットブレインによるデータ破損が起きる可能
性があるノード
→3台(奇数台)で冗⻑
#MariaDB Galeraクラスタ、RabbitMQ
その他は対ユーザーの稼働率で考えたとき致命的となるノード
→2台で冗⻑ #Horizon、Nova、Keystone・・・etc
今回は検証環境の構築を目的としているため以下コンポーネントをHA化
・MariaDB Galeraクラスタ
・RabbitMQ
・Keystone
・Horizon
・ローカルリポジトリ
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイ
14. 手順書解説
14NEC Networks & System Integration Corporation
本環境ではUbuntu 14.04 LTS
の標準サポートカーネルである
3.13を使用(検証環境は3.13.0-76)
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイP7
15. 手順書解説
15NEC Networks & System Integration Corporation
ホスト/コンテナ
管理で使われる
ネットワーク
サービス(プロジェクト)
で使われるネットワーク
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイP8
16. 手順書解説
16NEC Networks & System Integration Corporation
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイP12
17. 手順書解説
17NEC Networks & System Integration Corporation
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイP13-14
18. ここまでやったこと
18NEC Networks & System Integration Corporation
① 物理サーバを2台準備
② OS(Ubuntu14.04)インストール
③ 物理ネットワークを設定して管理ネットワークから
インターネットアクセスが可能に
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイ
19. 手順書の流れ
19NEC Networks & System Integration Corporation
1. 構築する環境について
2. OpenStack-Ansibleインストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイ
20. 手順書解説
20NEC Networks & System Integration Corporation
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイP16
21. 手順書解説
21NEC Networks & System Integration Corporation
【ワンポイントアドバイス】
検証中は3.13.0-34 未満のLinuxカーネルを使⽤していたため、Playbookが起動しない
事象が発生しました。
また一度PlayBookを実⾏した際にカーネルのVersionをキャッシュする(デフォルト約
1日)という仕組みがあり、うまく進まなくなります。
その場合は以下ディレクトリをすべて削除し、Playbookを再実⾏すればキャッシュク
リアされます。
/etc/openstack_deploy/ansible_facts
前提条件を満たしていれば
実⾏する必要はありません
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイP17
22. 手順書解説
22NEC Networks & System Integration Corporation
省略
省略
物理NIC(em1、em2)
仮想NIC(br-mgmt、
br-vlan、br-vxlan)
を設定し、サーバ再起動
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイP18
23. 手順書解説
23NEC Networks & System Integration Corporation
今回の構成ではCinder用の
ストレージは別途用意せず
controllerサーバ内に
Cinderボリュームを作成
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイP22
24. ここまでやったこと
24NEC Networks & System Integration Corporation
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイ
① サーバにAnsibleを実⾏するためのパッケージをインストール
② 論理ネットワーク設定
③ ボリュームグループ(Cinder-Volume)を設定
25. 手順書の流れ
25NEC Networks & System Integration Corporation
1. 構築する環境について
2. OpenStack-Ansibleインストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイ
26. Playbooks一覧
26NEC Networks & System Integration Corporation
setup-hosts.yml
haproxy-install.yml
setup-infrastructure.yml
setup-openstack.yml
openstack_user_config.yml
user_variables.yml
user_secrets.yml
実⾏⽤Playbooks設定⽤Playbooks
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイ
27. 手順書解説
27NEC Networks & System Integration Corporation
先頭の数値がOpenStack
のリリースに対応
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイP23
28. 手順書解説
28NEC Networks & System Integration Corporation
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイP23-24
29. 手順書解説
29NEC Networks & System Integration Corporation
cidr_networksはネットワーク
アドレスを指定
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイP25
ネットワークの指定
30. 手順書解説
30NEC Networks & System Integration Corporation
used_ipsでIPアドレスを指定
前項のcidr_networksに含まれるIP
アドレスとなります。
(左記は誤り)
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイP25
予約IPアドレスの指定
31. 手順書解説
31NEC Networks & System Integration Corporation
省略
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイ
HA Proxyの設定、各種ネットワークの設定
P26
32. 手順書解説
32NEC Networks & System Integration Corporation
上記内容だと
172.29.236.10のホストにGaleraDB×3、RabbitMQ×3、Memcached×1を
controller-01_[galera;rabbit_mq;memcached]_container_XXXXX
という名前でデプロイする。
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイ
controller-01→コンテナ名の頭につける⽂字列
affinity
→同一ホスト内に複数コンポーネント配置する場合に明記
galera_container:,rabbit_mq_container:
→galera clusterおよびrabbit_mqを何多重するか
→memcachedは記載されていないので1個
ip→デプロイ先のホストのIPアドレス
P28
GaleraDB、RabbitMQ、Memcachedを
デプロイする設定
33. 手順書解説
33NEC Networks & System Integration Corporation
上記内容だと
172.29.236.21~23のホストに
GaleraDB×1、RabbitMQ×1、Memcached×1を
infra-01_[galera;rabbit_mq;memcached]_container_XXXXX
infra-02_[galera;rabbit_mq;memcached]_container_XXXXX
infra-03_[galera;rabbit_mq;memcached]_container_XXXXX
という名前でデプロイする。
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイP28
34. 手順書解説
34NEC Networks & System Integration Corporation
glance API, nova API, heat API,horizonを
デプロイする設定
cinder APIをデプロイする設定
keystoneをデプロイする設定
nova computeをデプロイする設定
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイP28-29
35. 手順書解説
35NEC Networks & System Integration Corporation
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイ
誤記です。今回はcontroller上にCinder Volume
を作成しています。
P30
Cinderをデプロイする設定
36. 手順書解説
36NEC Networks & System Integration Corporation
neutronをデプロイする設定
package repositoryをデプロイする設定
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイ
HA Proxyをデプロイする設定
P30-31
37. 手順書解説
37NEC Networks & System Integration Corporation
【ワンポイントアドバイス】
YAMLファイルが起動しない場合の対処方法
【原因】
YAMLファイルの中にブランクが残っていたため、YAMLファイルが正しく読み込まれなかった。
※YAMLファイルがブランクを意識するらしく、注意が必要。
★参考 ホワイトボックス(ブランク)をチェックする方法(ansible-lintをインストール)★
・pip install ansible-lint
上記ツールをインストールすると下記ログのようにブランクがあった際に"Trailing whitespace"と
表示してくれる。
【参考ログ】
root@controller:/etc/openstack_deploy# ansible-lint openstack_user_config.yml.old
[ANSIBLE0002] Trailing whitespace
openstack_user_config.yml.old:2
cidr_networks:
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイ
38. 手順書解説
38NEC Networks & System Integration Corporation
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイP32
OpenStackコンポーネントの
オプション設定
39. 手順書解説
39NEC Networks & System Integration Corporation
horizonの部分は変更推奨。他の部分はAPI間
での使用なのでそのままでOK
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイP33
初期パスワード設定
40. ここまでやったこと
40NEC Networks & System Integration Corporation
① GithubからOpenStack-Ansibleのダウンロード
② 各種Playbooksの編集
-openstack_user_config.ymlの編集
-user_variables.ymlの編集
-user_secrets.ymlの編集
41. 手順書の流れ
41NEC Networks & System Integration Corporation
1. 構築する環境について
2. OpenStack-Ansibleインストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイ
42. 手順書解説
42NEC Networks & System Integration Corporation
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイ
SSHログインの設定
P34
43. 手順書解説
43NEC Networks & System Integration Corporation
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイ
“–vvv”オプションをつけるとコンソール上に詳細なログまで出⼒されます。
何か問題が発生した場合はログをもとに解析をして、再度retryしてください。
P36
LXCコンテナのデプロイとComupteサーバの設定
44. 手順書解説
44NEC Networks & System Integration Corporation
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイP37
HA Proxyのデプロイ
45. 手順書解説
45NEC Networks & System Integration Corporation
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイ
DBやMQなどインフラのデプロイ
P38
46. 手順書解説
46NEC Networks & System Integration Corporation
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイP39
残りのコンポーネントのデプロイ
47. 手順書解説
47NEC Networks & System Integration Corporation
【ワンポイントアドバイス】
【事象】
setup-hosts.ymlでエラーが出⼒される。
【原因】
P30の"storage_hostsセクション"の"volume_group"で"cinder-volumes"を指定して
いるのだが、事前に"volume_group"を作成していなかったのでPlaybookを実⾏した
際にエラーとなった。
1. 構築する環境について
2. OpenStack-Ansible
インストール前の設定
3. OpenStack-Ansibleの設定
4. OpenStackのデプロイ
48. ここまでやったこと
48NEC Networks & System Integration Corporation
① 下記Playbooksの実⾏
-setup_hosts.ymlの実⾏
-haproxy_install.ymlの実⾏
-setup-infrastructure.ymlの実⾏
-setup-openstack.ymlの実⾏
⇒OpenStackのHA環境の構築が完了!
49. 今後の期待/やりたいこと
49NEC Networks & System Integration Corporation
・今回の解説部分を手順書に反映
・OpenStack-Ansibleのドキュメント充実化
⇒まだまだ纏まった資料がない(特にPlaybookの記載方法について)
・Mitaka対応
⇒Ubuntu 16.04 LTS (Xenial Xerus) での検証
・OpenStack-Ansibleを使ったOpenStack+PLUMgrid
のインストール自動化
⇒Rackspace社がPLUMgridの再販を発表したので可能性あり!?