*

Juju Manual Cloud で OpenStack 環境構築

公開日: 最終更新日:2017/02/26  |  By  |  Cloud, Juju, OpenStack, OSS

本当にご無沙汰しております。
この投稿はOpenStack Advent Calendar 2016 の 12/15分の投稿となっています。(今日は何日だったか。。

さて、本日は Canonical Juju を使用したOpenStack環境のデプロイをしてみたいと思います。
Juju でのデプロイというと、物理サーバ管理をできるMAASや、コンテナのLXDを使用したデプロイの話が多いのですが、実はSSHの接続だけでも利用することが出来ます。これをManual Cloudと呼ぶようです。
と、いうことで本日はSSH接続可能なVMだけでJujuからOpenStackを構築してみましょう。

使用するサーバは以下の8台。筆者の環境ではVMware上に仮想サーバとして構築しましたが、ssh接続できればどんな環境でもOKです。
OpenStackのバージョンは最新のNewtonです。サーバ構成は以下の通りです。
ポイントは、全てのコンポーネントを別サーバに配置することです。JujuのCharmでは lxd コンテナに個別にインストールするのがデフォルトの動作のであるため、同一サーバに複数コンポーネントを配置すると上手く行きません。

No
役割
スペック
OSバージョン
1.Juju client 兼 Juju bootstrap1core 1GBXenial
2.MySQL1core 1GBXenial
3.RabbitMQ1core 1GBXenial
4.Keystone1core 1GBXenial
5.Glance1core 1GBXenial
6.Nova-cloud-controller1core 1GBXenial
7.Neutron-api1core 1GBXenial
8.Nova-compute1core 4GBXenial

Jujuのインストール

Juju2.0のstable 版を以下の手順からインストールします。

$ sudo add-apt-repository -u ppa:juju/stable
$ sudo apt install juju

参考ドキュメント : https://jujucharms.com/docs/2.0/getting-started

Bootstrapの登録

Jujuがアプリケーションを管理するためにはBootstrapというノードが必要となります。
通常、ドキュメントに出てくる手順では別ノードに入れますが、
今回はManualCloud(SSH接続のみで管理する) ということで juju コマンドを叩くマシンと同居させました。

$ juju bootstrap manual/192.168.0.101 localcloud

参考ドキュメント : https://jujucharms.com/docs/2.0/clouds-manual

マシンの登録

Juju にサーバを登録します。ssh接続はパス無しか、パスワード認証にしておくと良いです。

$ sudo add-machine ssh:192.168.0.55
$ sudo add-machine ssh:192.168.0.56
$ sudo add-machine ssh:192.168.0.57
$ sudo add-machine ssh:192.168.0.58
$ sudo add-machine ssh:192.168.0.59
$ sudo add-machine ssh:192.168.0.60
$ sudo add-machine ssh:192.168.0.61

登録後、status を見ると以下の状態になっていると思います。

$ juju status
Model   Controller  Cloud/Region  Version
default  localcloud  manual        2.0.2

App                    Version  Status   Scale  Charm                  Store       Rev  OS      Notes
Unit                      Workload  Agent  Machine  Public address  Ports           Message

Machine  State    DNS           Inst id              Series  AZ
0        started  192.168.0.55  manual:192.168.0.55  trusty
1        started  192.168.0.56  manual:192.168.0.56  xenial
2        started  192.168.0.57  manual:192.168.0.57  xenial
3        started  192.168.0.58  manual:192.168.0.58  xenial
4        started  192.168.0.60  manual:192.168.0.60  xenial
5        started  192.168.0.61  manual:192.168.0.61  xenial
6        started  192.168.0.59  manual:192.168.0.59  xenial
7        started  192.168.0.62  manual:192.168.0.62  xenial

Juju CharmとRelationのデプロイ

JujuではCharmもしくはBundleファイルでデプロイをすることが可能です。
Charmは個々のアプリケーション単位で存在し、アプリケーション間にRelationを設定することができます。
OpenStack環境は複数のCharmで構成され、それぞれに関係を設定することが必要です。

今回はCharmにパラメータとRelationを記載したBundleを使用しています。

services:
  # OpenStack
  mysql:
    charm: cs:mysql
    options:
      max-connections: 1000
  rabbitmq-server:
    charm: cs:rabbitmq-server
  keystone:
    charm: cs:keystone
    options:
      admin-role: admin
      admin-password: admin123
  openstack-dashboard:
    charm: cs:openstack-dashboard
  nova-cloud-controller:
    charm: cs:nova-cloud-controller
    options:
      network-manager: Neutron
  glance:
    charm: cs:glance
  neutron-api:
    charm: cs:neutron-api
  nova-compute:
    charm: cs:nova-compute
  neutron-openvswitch:
    charm: cs:neutron-openvswitch
    
relations:
  # OpenStack
  - [ keystone, mysql ]
  - [ glance, mysql ]
  - [ glance, keystone ]
  - [ openstack-dashboard, keystone ]
  - [ nova-cloud-controller, mysql ]
  - [ nova-cloud-controller, rabbitmq-server ]
  - [ nova-cloud-controller, keystone ]
  - [ nova-cloud-controller, glance ]
  - [ neutron-api, mysql ]
  - [ neutron-api, rabbitmq-server ]
  - [ neutron-api, nova-cloud-controller ]
  - [ neutron-api, keystone ]
  - [ "nova-compute:shared-db", "mysql:shared-db" ]
  - [ "nova-compute:amqp", "rabbitmq-server:amqp" ]
  - [ nova-compute, glance ]
  - [ nova-compute, nova-cloud-controller ]
  - [ neutron-openvswitch, nova-compute ]
  - [ neutron-openvswitch, neutron-api ]
  - [ neutron-openvswitch, rabbitmq-server ]

※ このbundle はCharmStoreの 公式bundleを参考に作成したものです。
https://jujucharms.com/openstack-base/

このBundleをデプロイするには以下のように deploy コマンドを実行します。


$ juju deploy openstack-simple.yaml

 


Juju Applicationへのマシンの割り当て

juju add-unit コマンドを使って、登録したMachineとApplication を紐つけます。
それぞれ最初の表に書いた通りにMachineとアプリケーションの割り当てをします。

$ juju add-unit mysql --to 1
$ juju add-unit rabbitmq-server --to 2
$ juju add-unit keystone --to 3
$ juju add-unit glance --to 4
$ juju add-unit nova-cloud-controller --to 5
$ juju add-unit neutron-api --to 6
$ juju add-unit openstack-dashboard --to 7
$ juju add-unit nova-compute --to 8

 

デプロイ完了を待つ

インストールにはそれなりに時間がかかります。30 分程度と見ておけば良いかと思います。

$ juju status
Model   Controller  Cloud/Region  Version
newton  localcloud  manual        2.0.2

App                    Version  Status   Scale  Charm                  Store       Rev  OS      Notes
glance                 12.0.0   active       1  glance                 jujucharms  253  ubuntu
keystone               9.2.0    active       1  keystone               jujucharms  258  ubuntu
mysql                           unknown      1  mysql                  jujucharms   55  ubuntu
neutron-api            8.3.0    active       1  neutron-api            jujucharms  247  ubuntu
nova-cloud-controller  13.1.2   active       1  nova-cloud-controller  jujucharms  292  ubuntu
nova-compute           13.1.2   active       1  nova-compute           jujucharms  262  ubuntu

openstack-dashboard    9.1.0    active       1  openstack-dashboard    jujucharms  243  ubuntu
rabbitmq-server        3.5.7    active       1  rabbitmq-server        jujucharms   57  ubuntu  

Unit                      Workload  Agent  Machine  Public address  Ports           Message
glance/0*                 active    idle   3        192.168.0.58    9292/tcp        Unit is ready
keystone/0*               active    idle   2        192.168.0.57    5000/tcp        Unit is ready
mysql/0*                  unknown   idle   0        192.168.0.55    3306/tcp
neutron-api/0*            active    idle   4        192.168.0.60    9696/tcp        Unit is ready
nova-cloud-controller/0*  active    idle   6        192.168.0.59    8774/tcp        Unit is ready
nova-compute/0*           active    idle   5        192.168.0.61                    Unit is ready
  neutron-openvswitch/0*  active    idle            192.168.0.61                    Unit is ready
openstack-dashboard/0*    active    idle   7        192.168.0.62    80/tcp,443/tcp  Unit is ready
rabbitmq-server/0*        active    idle   1        192.168.0.56    5672/tcp        Unit is ready

Machine  State    DNS           Inst id              Series  AZ
0        started  192.168.0.55  manual:192.168.0.55  trusty
1        started  192.168.0.56  manual:192.168.0.56  xenial
2        started  192.168.0.57  manual:192.168.0.57  xenial
3        started  192.168.0.58  manual:192.168.0.58  xenial
4        started  192.168.0.60  manual:192.168.0.60  xenial
5        started  192.168.0.61  manual:192.168.0.61  xenial
6        started  192.168.0.59  manual:192.168.0.59  xenial
7        started  192.168.0.62  manual:192.168.0.62  xenial  

Relation            Provides               Consumes               Type
cluster             glance                 glance                 peer
identity-service    glance                 keystone               regular
shared-db           glance                 mysql                  regular
image-service       glance                 nova-cloud-controller  regular
image-service       glance                 nova-compute           regular
cluster             keystone               keystone               peer
shared-db           keystone               mysql                  regular
identity-service    keystone               neutron-api            regular
identity-service    keystone               nova-cloud-controller  regular
identity-service    keystone               openstack-dashboard    regular
cluster             mysql                  mysql                  peer
shared-db           mysql                  neutron-api            regular
shared-db           mysql                  nova-cloud-controller  regular
shared-db           mysql                  nova-compute           regular
cluster             neutron-api            neutron-api            peer
neutron-plugin-api  neutron-api            neutron-openvswitch    regular
neutron-api         neutron-api            nova-cloud-controller  regular
amqp                neutron-api            rabbitmq-server        regular
neutron-plugin      neutron-openvswitch    nova-compute           regular
amqp                neutron-openvswitch    rabbitmq-server        regular
cluster             nova-cloud-controller  nova-cloud-controller  peer
cloud-compute       nova-cloud-controller  nova-compute           regular
amqp                nova-cloud-controller  rabbitmq-server        regular
neutron-plugin      nova-compute           neutron-openvswitch    subordinate
compute-peer        nova-compute           nova-compute           peer
amqp                nova-compute           rabbitmq-server        regular
cluster             openstack-dashboard    openstack-dashboard    peer
cluster             rabbitmq-server        rabbitmq-server        peer

動作確認

ダッシュボードからの確認

ダッシュボードからの確認には以下URLをブラウザで開きます。
http://{openstack-dashboard の}/horizon

コマンドでの確認

以下の設定でCLIからの確認が可能です。


export OS_AUTH_URL=http://{keystone のIPアドレス}:5000/v2.0
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin123
export OS_REGION_NAME=RegionOne

以上、簡単ですがManualCloudへの OpenStackデプロイ手順でした。
今後引き続きJujuでのOpenStackデプロイについて解説したいと思います。

関連記事

summit_top

OpenStack Summit Vancouver Summary

5/18~5/22に開催されたOpenStack Summit Vancouver に参加してきまし

記事を読む

Zabbix

Ansibleを使用したZabbix監視対象の自動登録

ビットアイル総合研究所の田波です。 前回に引き続き、構成管理ツール「Ansible」のお話をさ

記事を読む

no image

RDOを使用したOpenStack+MidoNet環境のインストール

ビットアイル総合研究所 田波です。 今回は以前紹介したRDOを使用して、OpenStack+M

記事を読む

no image

LVM上にインスタンスを作成する

OpenStack 担当 石川です。 実際に自分が使うか使わないかは置いておき、気になったオプ

記事を読む

no image

Keystone認証の利用 ~ Swiftによるオブジェクトストレージシステムの構築(9)

by You Yamagata 2013.05.13 (Last updated 2013

記事を読む

Rally-Actions

OpenStack Rally入門

RallyはOpenStackのプロジェクトの一つです。OpenStackのベンチマークツールと簡単

記事を読む

no image

Swift 1.11.0 CHANGELOG の翻訳

by You Yamagata 2013.1.23(Swift関連の記事の一覧は インデッ

記事を読む

no image

Ceph Index

分散ストレージCeph紹介 インデックス Ceph "ブロックアクセス可能な分散ストレージ"

記事を読む

01.all

CentOS7 RDO Juno with Ceph

ご無沙汰しています。 先日のブログではCentOS7/RDOで OpenStack Juno環境を

記事を読む

519RhQeJZML._SL500_AA300_

OpenStack Swift 書籍の出版のお知らせ

by You Yamagata 2014.04.02山縣です。 この度、インプレスR&D社よ

記事を読む

no image

ビットアイル総合研究所は、クラウド技術に関する調査&研究を通して、社会と会社に寄与していくことを目的に、ビットアイル・エクイニクスの企業内研究所として2011年8月に設立されました。

blog-ocata
Jujuで Ocataを含む様々なバージョンのOpenStack をデプロイする方法

祝OpenStack Ocata リリース!! ということで、早速デプ

newton
Juju Manual Cloud で OpenStack 環境構築

本当にご無沙汰しております。 この投稿はOpenStack Adve

top
HACK! THE Juju/MAAS

6/8~6/10まで幕張メッセで開催されたInterop 2016。皆

dpdk
OpenStack OVS VXLAN ネットワークの高速化

少し前の話になりますが、3月2日に開催された 日本仮想化技術株式会社様

no image
OpenStack DBaas (Trove) を動かした話

本記事はOpenStack Advent Calendar 2015 

→もっと見る

PAGE TOP ↑