製品紹介タグ:Chefファンブライト山下です。最近、サーバーの構成状態を管理できるツール「Chef」を使い始めています。概要説明を含めたご紹介です。クラウド」などのキーワードの中で注目されているツールで、特にIT会社で利用されるシーンが増えています。「Chef」をうまく使うと、サーバーの「あるべき」構成状態をプログラムで管理できるようになります。以下のような事が実現できます。新規でサーバーを構築する際に、手順書化されるような作業を自動化できる既存のサーバー構成の変更作業を自動化できる既存のサーバー管理をChefで行う事によって、構成情報を管理できる具体的には、以下のような作業を、プログラムで定義し、実行する事ができます。OSのアカウントやグループを作成するディレクトリを作成するパッケージをインストールする設定ファイルを配置するサービスの起動設定をする上記載はあくまで一例です。実際には、さらに色々な事が出来ます。ちなみに、「Chef」という名称は、料理人(シェフ)を表現しています。仕組みでは、料理本の「Cookbook」や、料理レシピにあたる「Recipes」等の名称があります。親しみやすい名称ですので、頭も整理しやすくなります。利用環境は以下のような感じです。構築対象OSはCentOSです。基本的に、右側(青色)の「Chef作業端末」から作業を行います。管理対象ノード」で、基本的なCentOSのインストールを行っておきます。あとは、「Chef作業端末」から自動認証でSSHログインできるように設定を行っておきます。あとは、「Chef作業端末」で「レシピ」や「テンプレート」などのファイルを用意します。この「レシピ」というのはRubyのコードです。サーバーにインストールしたいrpmパッケージを定義したり、配置したい設定ファイルを指定したり、起動させたいサーバーや停止したいサーバーを定義したりします。そんなに難しいものではないと思います。Nginxを再起動します。設定ファイルのテンプレートを用意します。以下のようなファイル(nginx.conf.erb)を指定の場所に配置しておきます。}}このテンプレートファイルを元に、Chef実行時に、Nginx設定ファイルとして対象ノードに配布されます。あとは、Chef管理対象ノードを定義したJSONファイルを用意します。以下のようなファイルです。]}このJSONファイルで、レシピ「nginx」を指定しています。ポート番号「80」を指定していますが、この値が先ほどの「Nagix設定ファイルのテンプレート」で書かれている以下の場所に埋め込まれます。solo)を実行すると、コードに従ってインフラの設定が行われるわけです。人が手順書を見ながら実施するような作業が自動的に実施できるわけです。実行コマンドは以下になります。(対象ノード)また、Chefの導入メリットは自動化だけではありません。「Chefでレシピを何度実行してもレシピのとおりに実行される」=「サーバーの構成状態をレシピ通りに管理できる」という事が実現できます。このメリットは、構成情報の管理方法を今までのやり方から変更するなどの業務プロセス改革が伴うと考えられます。既存のやり方に大きな課題認識がある場合に、メリットと感じられると思われます。使ったサーバー構築自動化の概要となります。私自身もこれからChefを使いこなせるように取り組んでいく事になりますが、とても面白いツールです。多くのサーバーを構築し管理するITサービスプロパイダーやアプリ開発会社などで、有効なツールだと思います。ご利用を検討されると良いかと思います。