Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月

5,255 views

Published on

OpenStack-Ansibleで作るOpenStack HA環境 手順書解説
講師:井内 新介 (NECネッツエスアイ株式会社)
アジェンダ:
- 構築する環境について
- OpenStack-Ansibleインストール前の設定
- OpenStack-Ansibleの設定
- OpenStackのデプロイ
- コンテナの操作
- OpenStackの操作

Published in: Technology

OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月

  1. 1. OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 2016年3月2日 NECネッツエスアイ株式会社 第三ICT・SI部 目次 英人 ソリューション企画グループ 井内 新介
  2. 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 日本仮想化技術 田口先生のご指導の下、 弊社、目次が検証からドキュメント作 成までを担当。
  3. 3. 自己紹介 3 井内 新介(いのうちしんすけ) ・以前:ICTインフラよろず屋 (サーバ・ストレージ・ネットワーク・一部ミドルウェア) ・今:ソリューション企画/セールスサポート -OpenStack -SDN/SD-WAN -SDS -クラウドマイグレーション etc ・北⽶発掘PJの国内カウンター ・最近は中部エリアに出没中・・・ NEC Networks & System Integration Corporation 北⽶発掘PJ 実施中
  4. 4. Ansibleとは(おさらい) 4NEC Networks & System Integration Corporation 構成管理ツールの一つ。YAMLフォーマットで 書かれており可読性が高い。 ※同じジャンルの製品には“Puppet”“Chef”“Juju”がある。 管理ホストでAnsibleはPlaybookを実⾏しPythonスクリプトに変換。生成した Pythonスクリプトを対象ホストに送り込み、実⾏。 管理ホスト 対象ホスト SSH PlaybookPlaybook を実⾏ スクリプト 実⾏ Pythonで書かれた スクリプト 対象ホストSSH スクリプト 実⾏ Play book
  5. 5. Ansibleの特徴 5NEC Networks & System Integration Corporation Simple ・最低限(Inventory、Playbook)のファイルがあれば利⽤可能 ・YAMLという形式で書くので、プログラマでなくても利⽤しやすい Agentless ・対象となるサーバに特別なツールをインストールする必要がない SSHで接続できればOK Powerful ・アプリのデプロイ、クラウド上へのインスタンス作成、ベアメタル スイッチの設定など多彩な動作が可能
  6. 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. 7. 手順書の流れ 7NEC Networks & System Integration Corporation 1. 構築する環境について 2. OpenStack-Ansibleインストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイ 5. コンテナの操作 6. OpenStackの操作 ⇒ベースとなるOSのセットアップ ⇒ネットワーク周り の設定等 ⇒Playbookの編集 ⇒Playbookの実⾏
  8. 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. 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. 10. 手順書の流れ 10NEC Networks & System Integration Corporation 1. 構築する環境について 2. OpenStack-Ansibleインストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイ
  11. 11. 手順書解説 11NEC Networks & System Integration Corporation 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイP5
  12. 12. 手順書解説 12NEC Networks & System Integration Corporation 省略 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイP6
  13. 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. 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. 15. 手順書解説 15NEC Networks & System Integration Corporation ホスト/コンテナ 管理で使われる ネットワーク サービス(プロジェクト) で使われるネットワーク 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイP8
  16. 16. 手順書解説 16NEC Networks & System Integration Corporation 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイP12
  17. 17. 手順書解説 17NEC Networks & System Integration Corporation 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイP13-14
  18. 18. ここまでやったこと 18NEC Networks & System Integration Corporation ① 物理サーバを2台準備 ② OS(Ubuntu14.04)インストール ③ 物理ネットワークを設定して管理ネットワークから インターネットアクセスが可能に 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイ
  19. 19. 手順書の流れ 19NEC Networks & System Integration Corporation 1. 構築する環境について 2. OpenStack-Ansibleインストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイ
  20. 20. 手順書解説 20NEC Networks & System Integration Corporation 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイP16
  21. 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. 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. 23. 手順書解説 23NEC Networks & System Integration Corporation 今回の構成ではCinder用の ストレージは別途用意せず controllerサーバ内に Cinderボリュームを作成 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイP22
  24. 24. ここまでやったこと 24NEC Networks & System Integration Corporation 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイ ① サーバにAnsibleを実⾏するためのパッケージをインストール ② 論理ネットワーク設定 ③ ボリュームグループ(Cinder-Volume)を設定
  25. 25. 手順書の流れ 25NEC Networks & System Integration Corporation 1. 構築する環境について 2. OpenStack-Ansibleインストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイ
  26. 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. 27. 手順書解説 27NEC Networks & System Integration Corporation 先頭の数値がOpenStack のリリースに対応 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイP23
  28. 28. 手順書解説 28NEC Networks & System Integration Corporation 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイP23-24
  29. 29. 手順書解説 29NEC Networks & System Integration Corporation cidr_networksはネットワーク アドレスを指定 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイP25 ネットワークの指定
  30. 30. 手順書解説 30NEC Networks & System Integration Corporation used_ipsでIPアドレスを指定 前項のcidr_networksに含まれるIP アドレスとなります。 (左記は誤り) 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイP25 予約IPアドレスの指定
  31. 31. 手順書解説 31NEC Networks & System Integration Corporation 省略 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイ HA Proxyの設定、各種ネットワークの設定 P26
  32. 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. 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. 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. 35. 手順書解説 35NEC Networks & System Integration Corporation 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイ 誤記です。今回はcontroller上にCinder Volume を作成しています。 P30 Cinderをデプロイする設定
  36. 36. 手順書解説 36NEC Networks & System Integration Corporation neutronをデプロイする設定 package repositoryをデプロイする設定 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイ HA Proxyをデプロイする設定 P30-31
  37. 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. 38. 手順書解説 38NEC Networks & System Integration Corporation 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイP32 OpenStackコンポーネントの オプション設定
  39. 39. 手順書解説 39NEC Networks & System Integration Corporation horizonの部分は変更推奨。他の部分はAPI間 での使用なのでそのままでOK 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイP33 初期パスワード設定
  40. 40. ここまでやったこと 40NEC Networks & System Integration Corporation ① GithubからOpenStack-Ansibleのダウンロード ② 各種Playbooksの編集 -openstack_user_config.ymlの編集 -user_variables.ymlの編集 -user_secrets.ymlの編集
  41. 41. 手順書の流れ 41NEC Networks & System Integration Corporation 1. 構築する環境について 2. OpenStack-Ansibleインストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイ
  42. 42. 手順書解説 42NEC Networks & System Integration Corporation 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイ SSHログインの設定 P34
  43. 43. 手順書解説 43NEC Networks & System Integration Corporation 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイ “–vvv”オプションをつけるとコンソール上に詳細なログまで出⼒されます。 何か問題が発生した場合はログをもとに解析をして、再度retryしてください。 P36 LXCコンテナのデプロイとComupteサーバの設定
  44. 44. 手順書解説 44NEC Networks & System Integration Corporation 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイP37 HA Proxyのデプロイ
  45. 45. 手順書解説 45NEC Networks & System Integration Corporation 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイ DBやMQなどインフラのデプロイ P38
  46. 46. 手順書解説 46NEC Networks & System Integration Corporation 1. 構築する環境について 2. OpenStack-Ansible インストール前の設定 3. OpenStack-Ansibleの設定 4. OpenStackのデプロイP39 残りのコンポーネントのデプロイ
  47. 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. 48. ここまでやったこと 48NEC Networks & System Integration Corporation ① 下記Playbooksの実⾏ -setup_hosts.ymlの実⾏ -haproxy_install.ymlの実⾏ -setup-infrastructure.ymlの実⾏ -setup-openstack.ymlの実⾏ ⇒OpenStackのHA環境の構築が完了!
  49. 49. 今後の期待/やりたいこと 49NEC Networks & System Integration Corporation ・今回の解説部分を手順書に反映 ・OpenStack-Ansibleのドキュメント充実化 ⇒まだまだ纏まった資料がない(特にPlaybookの記載方法について) ・Mitaka対応 ⇒Ubuntu 16.04 LTS (Xenial Xerus) での検証 ・OpenStack-Ansibleを使ったOpenStack+PLUMgrid のインストール自動化 ⇒Rackspace社がPLUMgridの再販を発表したので可能性あり!?
  50. 50. NECネッツエスアイは お客様の目線に⽴ったこれからのコミュニケーションを デザインする会社として お客様の価値向上に取り組んでまいります。 明日のコミュニケーションをデザインする 50NEC Networks & System Integration Corporation

×