[実践編] MaaSとJujuによるOSS配備、Ubuntu Serverの運用・管理(後編)
以下にMaaSとJujuの構築手順を示します。MaaSサーバーとは別のサーバーにJujuブートストラップノードを構築する点に注意して下さい。
[Jujuの構築手順]
- MaaSサーバーを1台構築する
- MaaSサーバーに管理対象サーバーを1台登録する
- MaaSサーバーにjuju-coreをインストールする
- MaaSサーバー上でjuju bootstrapを実行する(管理対象サーバーがPXEブートされる)
- 管理対象サーバーにOSとJujuが配備され、Jujuブート・ストラップノードになる
- jujuコマンドを使い、Jujuブート・ストラップノードにJuju GUIをインストール
- 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:」行に記述されているパスワードを入力してログインして下さい。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- [実践編] MaaSとJujuによるOSS配備、Ubuntu Serverの運用・管理(前編)
- [実践編] Ubuntu Serverをスケールアウト型サーバーに配備する(後編)
- Canonicalのマーク・シャトルワース氏、Jujuによるサービスの抽象化と流通を推進
- [入門編] Ubuntu Serverの基礎(前編)
- [入門編] Ubuntu Serverとその他のサーバーOSを比較する
- Icehouseで追加されたコンポーネント群とは
- JavaScript用パッケージマネージャYarnが公開、MySQL次期メジャーバージョン8.0登場、など
- [入門編] Ubuntu Serverの基礎(後編)
- 注目すべきDockerの周辺技術 PanamaxとKubernetes
- RHEL7やOpenStackなど最新技術が集結するRed Hat Summit 2014 現地レポート(後編)