knife-cloudstackを使ってみよう [1]
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
knife-cloudstackとは
knife-cloudstackとは、ChefのコマンドラインインターフェイスであるKnifeコマンドのCloudStack用プラグインです。KnifeコマンドからCloudStack APIを通してCloudStackの操作が可能となります。
knife-cloudstackのインストール
knife-cloudstackはRubyGemsからインストールすることができます。事前にruby関連のインストールが必要となりますので、適宜準備してください。Chef 0.10も同時にインストールされるので、Chef 0.9など他のChefが入っていないホストで実行することをお勧めします。
root@ubuntu:~# gem1.8 install knife-cloudstack Building native extensions. This could take a while... Building native extensions. This could take a while... [Version 0.7.8] test suite cleanup (eliminated some race conditions related to queue.message_count) Successfully installed mixlib-config-1.1.2 Successfully installed mixlib-cli-1.2.2 Successfully installed mixlib-log-1.3.0 Successfully installed mixlib-authentication-1.1.4 Successfully installed mixlib-shellout-1.0.0 Successfully installed systemu-2.5.1 Successfully installed json-1.6.1 Successfully installed yajl-ruby-1.1.0 Successfully installed ipaddress-0.8.0 Successfully installed ohai-0.6.12 Successfully installed mime-types-1.18 Successfully installed rest-client-1.6.7 Successfully installed bunny-0.7.9 Successfully installed polyglot-0.3.3 Successfully installed treetop-1.4.10 Successfully installed net-ssh-2.2.2 Successfully installed net-ssh-gateway-1.1.0 Successfully installed net-ssh-multi-1.1 Successfully installed highline-1.6.12 Successfully installed erubis-2.7.0 Successfully installed moneta-0.6.0 Successfully installed uuidtools-2.1.2 Successfully installed chef-0.10.10 Successfully installed knife-cloudstack-0.0.12 24 gems installed : root@ubuntu:~#
操作の簡略化のため、一般的なパスにシンボリックリンクを張っておきます。
root@ubuntu:~# ln -s /var/lib/gems/1.8/bin/knife /usr/local/bin root@ubuntu:~#
knife-cloudstackの動作確認
knifeコマンドにcsサブコマンドを与えて実行すると、利用可能なサブコマンドの一覧が表示されます。FATALエラーが表示されていますが無視してかまいません。
cf@ubuntu:~$ knife cs FATAL: Cannot find sub command for: 'cs' Available cs subcommands: (for details, knife SUB-COMMAND --help) ** CS COMMANDS ** knife cs server delete SERVER_NAME [SERVER_NAME ...] (options) knife cs service list (options) knife cs stack create JSON_FILE (options) knife cs stack delete JSON_FILE (options) knife cs zone list (options) knife cs server reboot SERVER_NAME [SERVER_NAME ...] (options) knife cs server create [SERVER_NAME] (options) knife cs template list (options) knife cs server start SERVER_NAME [SERVER_NAME ...] (options) knife cs network list (options) knife cs server list (options) knife cs hosts knife cs server stop SERVER_NAME [SERVER_NAME ...] (options) cf@ubuntu:~$
knife-cloudstackから操作したいCloudStackのAPI情報を取得しておいてください。APIのURI、APIキー、秘密キーの3つが必要になります。それらをKnifeコマンドの設定ファイルに記載します。
cf@ubuntu:~$ mkdir .chef cf@ubuntu:~$ cat > .chef/knife.rb knife[ :cloudstack_url ] = 'http://xxx.xxx.xxx.xxx:8080/client/api' knife[ :cloudstack_api_key ] = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' knife[ :cloudstack_secret_key ] = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' cf@ubuntu:~$
ネットワーク一覧を取得してみます。
cf@ubuntu:~$ knife cs network list Name Type Default Shared Gateway Netmask All Mighty Shared 172.16.114.0 255.255.255.0 Monitoring Network Shared 172.16.103.1 255.255.255.0 cf@ubuntu:~$
このように、Knifeコマンドを通してCloudStackの情報が取得できました。