2013年11月27日
今話題の「Chef」について調べてみた
とっても面倒そうで一度挫折した「Chef」を再度勉強しなさいと言われたので、
調べ直してみました。
新しい知識を覚えるのが面倒なのではなく、
便利で画期的なOSSなのですよ。
私が拒絶している理由は、「えー、またRubyなのー」というところです。
インストールなんて、rpmとyumと、ソースインストールで手いっぱいなのに、
「gem」なんてコマンドを使うし、yumでインストールしたrubyじゃ、Chefをダウンロードするのに
バージョンが足りないとか怒られるしね。
愚痴はさておきまして…。
Chefっていうのは、川越さんのことではなくて、
サーバの構築やシステム管理を自動化してくれるRuby製のOSSのシステム管理ツール
とでも言えばいいのでしょうか。
これだけは言えるのは、川越さんではないということだけですね。
HTTP(s)通信でのやり取りを前提としたサーバクライアント式のモデルで、クライアント側からサーバ情報を取得するPULL型です。サーバが示す理想像を、クライアントが自動的に真似するということ。
先生(サーバ)に対して、100人の生徒(クライアント)がいて、先生側で設定を行って、
グループ化(WEBサーバ、DBサーバ等)を行って、ふるまいをコントロールすることができるわけですね。はい、あなたたちは、赤組よ。はい、あなたたちは、青組よ。などなど。
つまり、手作業での一台一台の作業をなくし、複数台同時にコントロールできる。
手作業でのオペレーションミスを防止し、もし間違っても、一斉に直せるということですね。
そして、すごいのが、サーバのあるべき状態を「Cookbook」と呼ばれる設定に書き込んでおくことで、
複数のプラットフォームの差異を吸収する仕組みがある。
よって、CentOSやUbuntuといった利用するディストリビューションごとに、
インストールスクリプトや設定を書きなおす必要はなし。
違ったディストリビューションでも、ApacheならApacheの設定書き込んで、自動的にインストールさせる。みんな平等に動かせるってのがすごい。
「recipes」はシステムの設定内容を実際気に際したRubyスクリプトになる。
たとえば、Apacheのパッケージをインストールする際は、
service "httpd" do
action [ :enable, :start ]
end
の様に記載すると、httpdの設定が有効になってなければ有効に。起動してなければ起動する。
などを書き込むことができる。
気が向いたら、fluentd同様、インストールメモを残すかもしれない。
fluentdは翌日から検索対象となっていて、大したこと書いてないのにすでにヒットしてました。
やっぱり人気技術なんだなぁ。
調べ直してみました。
新しい知識を覚えるのが面倒なのではなく、
便利で画期的なOSSなのですよ。
私が拒絶している理由は、「えー、またRubyなのー」というところです。
インストールなんて、rpmとyumと、ソースインストールで手いっぱいなのに、
「gem」なんてコマンドを使うし、yumでインストールしたrubyじゃ、Chefをダウンロードするのに
バージョンが足りないとか怒られるしね。
愚痴はさておきまして…。
Chefっていうのは、川越さんのことではなくて、
サーバの構築やシステム管理を自動化してくれるRuby製のOSSのシステム管理ツール
とでも言えばいいのでしょうか。
これだけは言えるのは、川越さんではないということだけですね。
HTTP(s)通信でのやり取りを前提としたサーバクライアント式のモデルで、クライアント側からサーバ情報を取得するPULL型です。サーバが示す理想像を、クライアントが自動的に真似するということ。
先生(サーバ)に対して、100人の生徒(クライアント)がいて、先生側で設定を行って、
グループ化(WEBサーバ、DBサーバ等)を行って、ふるまいをコントロールすることができるわけですね。はい、あなたたちは、赤組よ。はい、あなたたちは、青組よ。などなど。
つまり、手作業での一台一台の作業をなくし、複数台同時にコントロールできる。
手作業でのオペレーションミスを防止し、もし間違っても、一斉に直せるということですね。
そして、すごいのが、サーバのあるべき状態を「Cookbook」と呼ばれる設定に書き込んでおくことで、
複数のプラットフォームの差異を吸収する仕組みがある。
よって、CentOSやUbuntuといった利用するディストリビューションごとに、
インストールスクリプトや設定を書きなおす必要はなし。
違ったディストリビューションでも、ApacheならApacheの設定書き込んで、自動的にインストールさせる。みんな平等に動かせるってのがすごい。
「recipes」はシステムの設定内容を実際気に際したRubyスクリプトになる。
たとえば、Apacheのパッケージをインストールする際は、
service "httpd" do
action [ :enable, :start ]
end
の様に記載すると、httpdの設定が有効になってなければ有効に。起動してなければ起動する。
などを書き込むことができる。
気が向いたら、fluentd同様、インストールメモを残すかもしれない。
fluentdは翌日から検索対象となっていて、大したこと書いてないのにすでにヒットしてました。
やっぱり人気技術なんだなぁ。