Chefを使用してEC2インスタンスを操作するチュートリアル:その1

記事タイトルとURLをコピーする

こんにちはインフラエンジニアの柳瀬です。 サーバシステムの管理や運用するツールとして、ChefやPuppetは様々なブログで紹介されているので、ご存知の方は多いと思いますが、先日リリースされたChef0.10.0からknife-ec2というプラグインを使用してEC2インスタンスを操作するようになったようです。
※Amazon EC2やRackspace、Openstackなどの各クラウド固有の機能がChef本体から切り離されたようです。 これを機に数回に分けてknife-ec2を使用するまでの手順を簡単にご紹介したいと思います。
今回はOpscodeへのユーザー登録とChefのインストールまでをご紹介します。 Chefについてはこちらのページでどんな事が出来るか説明がされておりますが、あまりご存じない方もいらっしゃると思いますので、必要となる用語を簡単にご説明したいと思います。

Opscode社

Chefの開発元です

■Chefサーバ

Chefクライアントからアクセスされ、ノードに適用されるレシピなど様々なものが保管されます(今回はOpscode社のSaaSが該当)

■Chefクライアント

Chefサーバにアクセスするツール群の総称です(knifeコマンド、ノード上で動作するchef-client、WebUIなども該当)

■ノード

Chefサーバから見た管理対象マシンです(今回はEC2インスタンスが該当)になります

■レシピ

Chefの基本的な設定であり、各ノードに適用されるシステムのあるべき姿を記述します。

■Knife

Chefサーバに登録される情報などを変更したりするCUIのコマンドラインで使うツールです ※ノードはChefクライアントにも含まれる為、ややこしいので注意して下さい。

【システム構成】

今回のテスト環境のネットワーク構成図は以下のようなシンプルなものとなっています。 Chefの動作を確認するにはChef-soloを使用する方法もありますが、最終的にはサーバ・クライアント構成で運用する事になると思いますので、OpscodeのSaaSを使い、システム構成のイメージがつきやすくしております。

  • Chefサーバ(Opscode社のSaaS)
  • Chefクライアント(ノートPC、EC2インスタンス)
  • ノード(EC2インスタンス)

1.OpscodeのSaaSに登録

それでは最初にOpscode社が提供するChefのSaaSに登録する手順です。 こちらのページの"Free Trial"から無料版に登録してみましょう。 いくつかの質問に回答し、受信したメールのURLからサインアップを完了させて下さい。

2.Organazationの作成と必要ファイルのダウンロード

サインアップが完了したら画面中央のExperience with Chef?のリンクにアクセスします。 名前を決定してしてFreeプランのOrganazationを作成します。 作成が完了すると"validation key"とKnife configuration file"を忘れずにダウンロードして下さい。 また、ユーザープロファイルページからprivate_keyを作成してダウンロードしておきます。

3.ノートPCにChefをインストール

ここからは自分のマシンのセットアップです。 以下の手順でChefを使用するのに必要なパッケージとChef本体をインストールしてます。

$ sudo apt-get install ruby-dev libopenssl-ruby rdoc ri irb build-essential
$ sudo apt-get install wget ssl-cert git-core libxslt1-dev
$ sudo gem install rubygems
$ source .bash_profile
$ sudo gem install chef
$ sudo gem install knife-ec2
$ chef-client -v
Chef: 0.10.2
$ knife ec2 --help
Available ec2 subcommands: (for details, knife SUB-COMMAND --help)


** EC2 COMMANDS **
knife ec2 instance data (options)
knife ec2 server list (options)
knife ec2 server create (options)
knife ec2 server delete SERVER [SERVER] (options)

4.クライアントの環境設定

Chefのインストールが完了したら、リポジトリのコピーと手順2でダウンロードしたファイルを設置します。

$ git clone git://github.com/opscode/chef-repo.git
$ mkdir ~/chef-repo/.chef
$ cp Downloads/sw-validator.pem chef-repo/.chef/
$ cp Downloads/hideaki_yanase.pem chef-repo/.chef/
$ cp Downloads/knife.rb chef-repo/.chef/

5.Opscodeへの接続確認

最後にOpscodeへ正常に接続出来るかテストしてみます。自分自身がクライアントリストに表示されたらOKです。

$ cd chef-repo/
$ knife client list
sw-validator

【次回予告】

knife-ec2を使ってインスタンスを起動してみましょう。

【参考URL】