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

2014年3月26日(水)
古賀 政純

以下に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:」行に記述されているパスワードを入力してログインして下さい。

日本ヒューレット・パッカード株式会社 プリセールス統括本部 ソリューションセンター OSS・Linux担当 シニアITスペシャリスト

兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバーのSE及びスーパーコンピューターの並列計算プログラミング講師を担当。科学技術計算サーバーのSI経験も持つ。2005年、大手製造業向けLinuxサーバー提案で日本HP社長賞受賞。2006年、米国HPからLinux技術の伝道師に与えられる「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。日本HPプリセールスMVPを4度受賞。現在は、Linux、FreeBSD、Hadoop等のOSSを駆使したスケールアウト型サーバー基盤のプリセールスSE、技術検証、技術文書執筆を担当。日本HPのオープンソース・Linuxテクノロジーエバンジェリストとして講演活動も行っている。Red Hat Certified Engineer、Red Hat Certified Virtualization Administrator、Novell Certified Linux Professional、EXIN Cloud Computing Foundation Certificate、HP Accredited Systems Engineer Cloud Architect、Red Hat Certified System Administrator in Red Hat OpenStack、Cloudera Certified Administrator for Apache Hadoop認定技術者。HP公式ブログ執筆者。趣味はレーシングカートとビリヤード

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています