なんか頻繁に更新とかするとちょっと不思議な感じがしますね。
昨日書いたブログ1周年の感想はともかく、今回もRackspaceの作業記録ネタです。
今回の主役となるChefや、Puppetというソフトウェアは以前から聞いてましたが、正直あまりさわれていませんでした。
Chefについては色々な方が情報提供しているので、ここではChefを使ってRackspaceのCloudServersを操作するログだけ記録しておこうと思います。
なんかChefを使ってAWSって話は
誰かが?(汗)書くようです。
ちなみにChef0.10.0からknife-rackspaceというプラグインを使用する事になったみたいなので忘れずに入れて下さいね。
Chefってなんぞ!?という方は以下のリンクが参考になるのではないでしょうか。
ちなみに私のChefサーバはOpscodeのSaaSを使用させて頂いております。
ネットワーク構成を本番に近い形にも出来るし、何しろChefサーバを運用しなくて良いのは素敵ですもんね。
※アナタそういうサーバ運用するのがお仕事でしょっ!ていう突っ込みは割愛して下さいね(笑)
以下、作業記録です。
1)knife-rackspaceのインストール
Chefとknife-rackspaceをMacBookにインストールするのは簡単でしたよ。
$ sudo gem install chef
$ sudo gem intalll knife-rackspace
2)Cloud Serversをknifeコマンドで操作する為にAPIの設定
APIの情報を以下のように設定します。
$ vim .chef/knife.rb
18 # Rackspace
19 knife[:rackspace_api_key] = "**************************"
20 knife[:rackspace_api_username] = "okochang"
3)Rackspaceへの接続確認
使用出来るサーバイメージをリストで表示します
$ knife rackspace image list
ID Name
7319825 20101223develop-server
55 Arch 2010.05
187811 CentOS 5.4
51 CentOS 5.5
4 Debian 5.0 (lenny)
53 Fedora 13
71 Fedora 14
19 Gentoo 10.1
41 Oracle EL JeOS Release 5 Update 3
40 Oracle EL Server Release 5 Update 4
14 Red Hat Enterprise Linux 5.4
62 Red Hat Enterprise Linux 5.5
49 Ubuntu 10.04 LTS (lucid)
69 Ubuntu 10.10 (maverick)
10 Ubuntu 8.04.2 LTS (hardy)
14362 Ubuntu 9.10 (karmic)
23 Windows Server 2003 R2 SP2 x64
29 Windows Server 2003 R2 SP2 x86
28 Windows Server 2008 R2 x64
58 Windows Server 2008 R2 x64 - MSSQL2K8R2
24 Windows Server 2008 SP2 x64
57 Windows Server 2008 SP2 x64 - MSSQL2K8R2
31 Windows Server 2008 SP2 x86
56 Windows Server 2008 SP2 x86 - MSSQL2K8R2
指定可能なサーバのスペックの一覧表示します
$ knife rackspace flavor list
ID Name Architecture RAM Disk Cores
1 256 server 64-bit 256 10 GB 0.125
2 512 server 64-bit 512 20 GB 0.25
3 1GB server 64-bit 1024 40 GB 0.5
4 2GB server 64-bit 2048 80 GB 1.0
5 4GB server 64-bit 4096 160 GB 2.0
6 8GB server 64-bit 8192 320 GB 4.0
7 15.5GB server 64-bit 15872 620 GB 8
4)起動確認=>レシピ適用=>削除
Cloud Serversのサーバを起動し、apache2のレシピを適用します
$ knife rackspace server create -r 'recipe[chef-client], recipe[apache2]' --server-name server01 --node-name web01 --image 49 --flavor 1
起動したサーバは一覧で表示出来ます
$ knife rackspace server list
ID Name Public IP Private IP Flavor Image State
20026242 server01 50.57.83.233 10.182.1.186 256 Ubuntu 10.04 LTS (lucid) active
削除もknifeコマンドで実行出来ます
$ knife rackspace server delete 20026242
Instance ID: 20026242
Host ID: c78b66aaae9d2f3fca9b957a46e800b6
Name: server01
Flavor: 256 server
Image: Ubuntu 10.04 LTS (lucid)
Public DNS Name: 50-57-83-233.static.cloud-ips.com
Public IP Address: 50.57.83.233
Private IP Address: 10.182.1.186
Do you really want to delete this server? (Y/N) y
WARNING: Deleted server 20026242 named server01
以上のように管理画面にログインする事なくknifeコマンドから操作出来ます。
Chefに慣れた人にとっては良い運用の選択肢になりそうです。
以前このブログで書いた
cloudlbや
cloudsrversとかと組み合わせると、さらに面白そう!
Rackspaceのロードバランサは外部のサーバも分散先に登録出来ます。
Chef経由でバランシング対象のRackspaceのサーバとEC2インスタンスに同じレシピを適用するなんて事も出来ますね。
あー、Rackspaceのデータセンターが日本にも出来ないかなー。出来ないだろなー。
Rackspaceを使って動く素敵なサービスは日本でもたくさん使われてるのになー。