SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

インフラ構成管理ツールを使いこなす!コードではじめるサーバ構築

Chefで3分クッキング! Webサーバ構築のレシピをRubyで書いてみよう

インフラ構成管理ツールを使いこなす! コードではじめるサーバ構築 第3回

  • X ポスト
  • このエントリーをはてなブックマークに追加

Chefのインストールと設定

 それでは、さっそくChefのインストールと設定を行います。

Chefのインストール

 今回は、開発環境の構築を行うので、Chef ClientをローカルPCにインストールします。

 インストールモジュールは以下のサイトからダウンロードできます。

 ダウンロードサイトから、OSとChefのバージョンを選択します。執筆時点での最新版は、12.0.3-1です。ダウンロードしたmsiファイルを実行して、Chef Clientをインストールしてください。

Chefのダウンロード
Chefのダウンロード

 インストールが完了したら、環境変数を反映させるため一旦パソコンを再起動します。パソコンが起動したらChefを使ってインフラを構築するためのもとになるフォルダを作成します。筆者の環境では、Eドライブに「chef-sample」というフォルダを作成し、その中で作業を行っています。Chefはコマンドプロンプトを使って実行します。次のようにバージョンを確認するコマンドを実行し、12.0.0が表示されれば、インストールは完了です。Chef Clientをインストールすると、Ruby 2.0.0もインストールされます。

リスト1 Chef Clientの動作確認
E:¥> mkdir chef-sample
E:¥> cd chef-sample
E:¥chef-sample>chef-solo --version
Chef: 12.0.3

 つぎに、Chefを操作するためknifeコマンドの初期設定を行います。Chef ServerのURLやユーザ名や秘密鍵のパスなどを聞かれますが、すべてデフォルトのままで[Enter]キーを押下してください。

リスト2 knifeの初期設定
E:¥chef-sample>knife configure
Please enter the chef server URL: [https://xxxxxxxxx:443]
Please enter an existing username or clientname for the API: [xxxxxx]
Please enter the validation clientname: [chef-validator]
Please enter the location of the validation key: [/etc/chef-server/chef-validator.pem]
Please enter the path to a chef repository (or leave blank):
*****
~中略~

 これで、Knifeコマンドを使うための設定が完了しました。設定内容は、/(ホームディレクトリ)/.chef/knife.rbに書き込まれます。この初期設定は、インストール後1度だけ設定すれば、Knifeコマンドが使えるようになります。

WebサーバをインストールするCookBookの作成

 Chefのインストールが出来たので、次はインフラを構築するためのCookBookを作成していきます。

CookBookのひな形作成

 Webサーバを構築するためのCookBookを作っていきます。CookBookを作るときは、「knife cookbook create」コマンドを使います。これはChefで使うファイルやフォルダのひな型を自動生成するコマンドです。コマンド書式は以下の通りです。

リスト3 CookBookのコマンド書式
knife cookbook create [CookBookの名前] [オプション]

 たとえば、httpserverというフォルダの配下にapacheという名前のCookBookを指定するには次のコマンドを実行します。

リスト4 CookBookの作成
E:¥chef-sample>knife cookbook create apache -o httpserver

 Ruby on RailsでWebアプリケーションを開発したことのある方であれば、「Scaffold機能」でひな形を作成しているようなものだと理解していただけると良いかと思います。

 このコマンドを実行すると、以下のフォルダ/ファイルが生成されます。

リスト5 CookBookのフォルダ構成
httpserver
└─apache
    ├─attributes
    ├─definitions
    ├─files
    ├─libraries
    ├─providers
    ├─recipes
    ├─resources
    └─templates

 カレーを作るときは、分量や作り方などを記したレシピをもとに、ニンジンやじゃがいもなどの材料、調味料などを使って料理をします。Chefでのインフラの環境構築も、手順書(レシピ)をもとに、アプリケーションの実行ファイルやライブラリ、設定ファイルなど配置しながら構築します。

 ここで生成されたフォルダ群は、料理でいうところの冷蔵庫のような役割で、Chefは、この生成されたフォルダの中に格納したファイルをもとに環境を構築します。

 生成されたフォルダの役割は以下のとおりです。構築する環境に応じて必要なフォルダのみを使います。使わないフォルダは削除しても構いません。

CookBookのフォルダ構成
フォルダ名 説明
attributes システムで使う変数を定義したファイル
definitions リソースを作成するための設定ファイル
files プロビジョン時に展開したいファイル
libraries Chefの機能拡張のときに使う
providers リソースへの処理を実行するための設定ファイル
recipes レシピを格納
resources レシピ内で使われるリソースを定義するための設定ファイル
templates ミドルウエアの各種設定ファイルなどのテンプレートファイル

次のページ
おわりに

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
インフラ構成管理ツールを使いこなす!コードではじめるサーバ構築連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 阿佐 志保(アサ シホ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8416 2015/02/04 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング