fbpx

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の情報が取得できました。

Author

Chef・Docker・Mirantis製品などの技術要素に加えて、会議の進め方・文章の書き方などの業務改善にも取り組んでいます。「Chef活用ガイド」共著のほか、Debian Official Developerもやっています。

Daisuke Higuchiの記事一覧

新規CTA