検索
連載

ChefのKnifeでCloudStackを操作する方法CloudStackによるプライベートクラウド構築術(8)(3/3 ページ)

knife-cloudstackを用意してコマンドラインでCloudStackを操作してみよう。基本コマンドのリファレンスも紹介する

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

knife-cloudstackでインスタンスを作成する

 前項ではknife-cloudstackを用いてCloudStackの情報を取得したり、既に存在しているインスタンスの操作を行いました。ここからは新規にインスタンスの作成を行います。

 なお、knife-cloudstackでインスタンスを作成する場合、CloudStackはアドバンスモードでネットワークが構成されていることが推奨されています。knife-cloudstack 0.0.12とベーシックモードの組み合わせの場合、CloudStack 2では動作しません。CloudStack 3ではパッチを当てる必要があります*。

* ネットワーク構成の問題 github上での議論「This doesn't seem to work with Cloudstack3's basic mode」を参照してください。


 また、Chefサーバと連携し、インスタンス上にChefクライアント環境を作成し、指定のChefレシピを実行できます。

オプション 説明
-U CloudStackのAPIエンドポイントURIを指定します(設定ファイルに記載がある場合、省略可)
-A CloudStackのAPI鍵を指定します(設定ファイルに記載がある場合、省略可)
-K CloudStackの秘密鍵を指定します(設定ファイルに記載がある場合、省略可)
-S 作成するインスタンスのサービスオファリングを指定します
-T 作成するインスタンスのテンプレートを指定します
-x 作成するインスタンスにsshでログインするためのユーザー名を指定します
-P 作成するインスタンスにsshでログインするためのパスワードを指定します
-d 作成するインスタンス上でブートストラップするChef環境の対象ディストリビューションを指定します。bootstrap*にあるファイルを指定します
-s ChefサーバのURIを指定します
-k Chef APIのクライアント鍵を指定します
-r 作成するインスタンス上で実行するChefレシピを指定します。なお、テンプレートは指定のユーザー名とパスワードでsshログインできるように設定して、サービスオファリングなどとあわせて、あらかじめCloudStack上に準備しておく必要があります。Chefサーバと指定のCookbooksの準備、Chef APIクライアント鍵の取得なども必要です

* bootstrap https://github.com/opscode/chef/tree/master/chef/lib/chef/knife/bootstrap

 ここでは、下表の設定でインスタンスを作成して、Chefクライアント環境を用意し、Apache2のレシピを実行してみます、

項目 内容
作成するインスタンス名 knife-0912-1
サービスオファリング Medium Instance
テンプレート Ubuntu 12.04
sshログインユーザー名 ubuntu
sshログインパスワード ubuntu
ディストリビューション ubuntu12.04-gems
ChefサーバURI http://192.168.122.10:4000
Chef APIクライアント鍵 /home/ubuntu/.chef/validator.pem
Chefレシピ recipe[apache2]

$ knife cs server create knife-0912-1 -S 'Medium Instance' \
 -T 'Ubuntu 12.04' \
 -x 'ubuntu' \
 -P 'ubuntu' \
 -d 'ubuntu12.04-gems' \
 -s 'http://192.168.122.10:4000' \
 -k '/home/ubuntu/.chef/validator.pem' \
 -r 'recipe[apache2]'

* コマンド中の記号「¥」はバックスラッシュに読み替えてください。


 途中、作成したインスタンス上でsudoを実行するためのパスワードの手動入力が求められますが、それ以外はインスタンスの作成、Chefクライアント環境の作成、Chefサーバとの通信および環境設定は自動で行われます。

 Waiting for server.......................................................................................................
 Name: knife-0912-1
 Public IP: 192.168.122.162
 Waiting for sshd.................Bootstrapping Chef on 192.168.122.162
 192.168.122.162 knife sudo password:
 Enter your password: (←パスワードの手動入力が求められます)
 192.168.122.162
 0% [Working]162
 Ign http://jp.archive.ubuntu.com precise InRelease
 192.168.122.162
 10% [ヘッダの待機中です]
 Ign http://jp.archive.ubuntu.com precise-updates InRelease
        (省略)
 192.168.122.162 [2012-09-12T19:19:40+09:00] INFO: *** Chef 10.12.0 ***
 192.168.122.162
 192.168.122.162 [2012-09-12T19:19:40+09:00] INFO: Client key /etc/chef/client.pem is not present - registering
 192.168.122.162
 192.168.122.162 [2012-09-12T19:19:40+09:00] INFO: HTTP Request Returned 404 Not Found: Cannot load node ubuntu-1204.example.jp
 192.168.122.162
 192.168.122.162 [2012-09-12T19:19:40+09:00] INFO: Setting the run_list to ["recipe[apache2]"] from JSON
 192.168.122.162
 192.168.122.162 [2012-09-12T19:19:40+09:00] INFO: Run List is [recipe[apache2]]
 192.168.122.162
 192.168.122.162 [2012-09-12T19:19:40+09:00] INFO: Run List expands to [apache2]
 192.168.122.162
 192.168.122.162 [2012-09-12T19:19:40+09:00] INFO: Starting Chef Run for ubuntu-1204.example.jp
        (省略)
 192.168.122.162 [2012-09-12T19:19:59+09:00] INFO: Chef Run complete in 19.09386 seconds
 192.168.122.162
 192.168.122.162 [2012-09-12T19:19:59+09:00] INFO: Running report handlers
 192.168.122.162
 192.168.122.162 [2012-09-12T19:19:59+09:00] INFO: Report handlers complete
 192.168.122.162
 Name: knife-0912-1
 Public IP: 192.168.122.162
 Environment: _default
 Run List: recipe[apache2]

 インスタンスの作成とChefの実行が完了したので、この例では、先ほど作成したインスタンスのApacheに対してcurlでアクセスしてみます。

$ curl 192.168.122.162
 <html><body><h1>It works!</h1>
 <p>This is the default web page for this server.</p>
 <p>The web server software is running but no content has been added, yet.</p>
 </body></html>

 Apacheの初期ページが返ってきているので、正しくアクセスできていることが分かります。


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る