スケールアウト型OSSクラウド基盤に最適なUbuntu Serverをひも解く 8

[実践編] MaaSとJujuによるOSS配備、Ubuntu Serverの運用・管理(後編)(2ページ目)

以下にMaaSとJujuの構築手順を示します。MaaSサーバーとは別のサーバーにJujuブートストラップノードを構築する点に注意して下さい。

[Jujuの構築手順]

  1. MaaSサーバーを1台構築する
  2. MaaSサーバーに管理対象サーバーを1台登録する
  3. MaaSサーバーにjuju-coreをインストールする
  4. MaaSサーバー上でjuju bootstrapを実行する(管理対象サーバーがPXEブートされる)
  5. 管理対象サーバーにOSとJujuが配備され、Jujuブート・ストラップノードになる
  6. jujuコマンドを使い、Jujuブート・ストラップノードにJuju GUIをインストール
  7. Juju GUIにクライアントからWebブラウザでアクセスする

MaaSサーバーにJujuの管理用コマンドをインストールするため、リポジトリを追加し、パッケージリストを更新します。

# add-apt-repository ppa:juju/stable -y
# cat /etc/apt/sources.list.d/juju-stable-precise.list
deb http://ppa.launchpad.net/juju/stable/ubuntu precise main
deb-src http://ppa.launchpad.net/juju/stable/ubuntu precise main
# apt-get update

Jujuをインストールします。パッケージ名として、juju-coreを指定します。

# apt-get install juju-core -y
# dpkg -l |grep juju
ii  juju-core 1.16.6-0ubuntu1~ubuntu12.04.1~juju1 Juju is devops distilled - client

Jujuの設定ファイルの雛型を生成します。

# juju generate-config

上記のコマンドによって、~/.juju/environments.yamlが生成されます。environments.yamファイルを編集します。

# vi ~/.juju/environments.yaml
...
default: maas	  ←ベアメタル配備のmaasを指定
...
  maas:
    type: maas
    maas-server: 'http://172.16.12.1/MAAS/' ←MaaSサーバーのURLを指定
    maas-oauth: 'HMRP9emyLw6x6MnT7z:bJDpxXEdj2wbDxNmUF:NRVqCF2jhwQ8yByRtRrVC7d3YCmyDRxL' ←MaaSのWebインタフェースからMaaS Keyをコピーペースト
    admin-secret: e84ec394ac3c2cd83a6879fe0cd4187e ←Juju GUIのパスワード
    default-series: precise
    authorized-keys-path: ~/.ssh/authorized_keys ←公開鍵のファイル名を指定
...

雛型のenvironments.yamlファイルの「default:」の行には、「amazon」が指定されていますが、物理マシンへのベアメタル配備環境を標準の環境とする場合は、「maas」を記述します。jujuコマンドでオプションを付与することにより、Amazon Web ServiceやHP Cloudなどの配備先を切り替えることが可能ですが、今回は、「maas」のみを使用します。

次に、ファイルの下部の「maas-server:」の行には、MaaSサーバーのURLを指定します。「maas-oauth:」の行には、MaaS Keyを指定します。MaaS Keyは、MaaSサーバーのWeb管理画面にある管理者アカウントの「Preferences」のページで「Generate MaaS Key」をクリックすると生成できますので、マウス操作によりコピーして張り付けて下さい。「admin-secret:」の行は、JujuのGUI画面にログインするときのパスワードになります。

「authorized-keys-path:」の行には、公開鍵のファイルをフルパスで記述します。Jujuブート・ストラップノードとなる物理サーバーは、MaaSサーバーのWeb管理画面上で「Status」を「Ready」状態にしておきます。また、IPMIの設定を事前に行っておく必要があります。

HP ProLiantサーバーの場合、iLO4管理チップのIPアドレス、管理者ユーザー名、パスワードをMaaSサーバーのWeb管理画面で適切に設定されているかを確認して下さい。MaaSサーバー上にインストールしたjujuコマンドによりJujuブート・ストラップノードの構築を開始します。

# juju bootstrap --show-log

上記コマンドが正常に終了したら、jujuブート・ストラップノードとなる管理対象サーバーの電源がMaaSサーバーによって自動的に投入され、Ubuntu Serverのインストールが開始し、Jujuブート・ストラップノードの構築が始まります。

Jujuブート・ストラップノードの構築が終了したら、jujuコマンドを使用するMaaSサーバー上の/etc/hostsファイルに、Jujuブート・ストラップノードのIPアドレスとホスト名の対応を記述しておきます。IPアドレスとホスト名の対応はMaaSサーバーのWeb管理画面から確認してください。

# vi /etc/hosts
  ...
  172.16.44.3   6bh8q.master # Juju Bootstrap Node
  ...

Jujuブート・ストラップノードの状態を、jujuコマンドをインストールしたMaaSサーバーから確認します。

# juju status --show-log
environment: maas
machines:
  "0":
    agent-state: started
    agent-version: 1.16.5
    dns-name: 6bh8q.master
    instance-id: /MAAS/api/1.0/nodes/node-c65e3c5a-9402-11e3-b009-5254000512c6/
    series: precise

JujuのGUIを利用するためには、「juju-gui」サービスを配備する必要があります。「juju-gui」はJujuブート・ストラップノード上に構築することができます。上記のコマンド出力例の場合、Jujuブート・ストラップノードは、「machines:」の一行下にある「"0":」で表されていますので、jujuコマンドに--toオプションを付与し、juju-guiの配布先ノードとして「0」を指定します。これにより、Jujuブート・ストラップノード上にJuju GUIサービスが配備されます。

# juju deploy juju-gui --to 0

Juju GUIが配備されているかを確認します。

# juju status
...
services:
  juju-gui:
    charm: cs:precise/juju-gui-83
    exposed: true
    units:
      juju-gui/0:
      agent-state: started
      agent-version: 1.16.5
      machine: "0"
      open-ports:
      - 80/tcp
      - 443/tcp
      public-address: 6bh8q.master

上記の「public-address」に示されるホスト名にWebブラウザでアクセスすると、Juju GUIのログイン画面が現れます。MaaSサーバーで設定したenvironments.yamlファイルの「admin-secret:」行に記述されているパスワードを入力してログインして下さい。

この記事のキーワード

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る