エンタープライズ向け機能が充実してきたChefを使って高速かつ精度の高いサーバーインフラを構築/管理する方法について解説する連載。今回は、外部Cookbookを利用したリポジトリ設定や、yumによってApache、PHP、MySQLパッケージをインストールするRecipeの書き方と実行の仕方などについて解説します。
前回の「WordPress構築で学ぶ、サーバー構築作業をChefのCookbookとして記述するためのポイント」では手動構築によるWordPressのインストール手順や、Cookbookの構成、WordPress構築をChefのCookbookにしていくための方針について解説しました。今回はChefのCookbookを作成しながら、Chefの構成要素を理解していきましょう。
まず、前回解説した「構築環境の前提条件」と「Cookbookの作成方針」を再度記載しておきます。
【1】リポジトリ設定→外部Cookbookを利用
【2】Apache、PHP、MySQLのインストール→Resourceで定義
【3】WordPressのダウンロードと解凍→Resourceで定義
【4】バーチャルホスト設定→Templateを使用
【5】WordPress用MySQL設定→Templateを使用
このうち今回は【1】と【2】について作業を進めていきます。
外部(サードパーティ製)Cookbookとして、EPELやRemiのリポジトリをインストールできるCookbookが公開されているので、そちらを使用します。
最初に「yum-epel」「yum-remi」のCookbookをインストールします。
$ sudo knife cookbook site install yum-epel $ sudo knife cookbook site install yum-remi
ノードにKnife-Zeroを使用してChef-Zeroをセットアップします。
$ sudo bundle exec knife zero bootstrap node01 -x <ユーザー名> --sudo -P <パスワード> Connecting to node01 node01 Installing Chef Client... node01 --2015-05-11 22:58:13-- https://www.opscode.com/chef/install.sh node01 Resolving www.opscode.com... 166.78.227.233 node01 Connecting to www.opscode.com|166.78.227.233|:443... connected. node01 HTTP request sent, awaiting response... 200 OK <<<中略>>> node01 Preparing... ########################################### [100%] node01 1:chef ########################################### [100%] node01 Thank you for installing Chef! node01 Starting first Chef Client run... node01 Starting Chef Client, version 12.3.0 <<<中略>>> node01 Running handlers: node01 Running handlers complete node01 Chef Client finished, 0/0 resources updated in 1.63139453 seconds
セットアップが完了したら、ノードのrun_listに対して実行するCookbookを追加していきます。
今回はyum-epelとyum-remiの2つを実行させるために、「knife node run_list add」コマンドを2回実行します。
$ sudo knife node run_list add node01 'recipe[yum-epel]' node01: run_list: recipe[yum-epel] $ sudo knife node run_list add node01 'recipe[yum-remi]' node01: run_list: recipe[yum-epel] recipe[yum-remi]
ノードに対してrun_listに登録したCookbookを実行します。
$ sudo bundle exec knife zero chef_client 'name:node01' -x <ユーザー名> -P <パスワード> --sudo node01 Starting Chef Client, version 12.3.0 node01 resolving cookbooks for run list: ["yum-epel", "yum-remi"] node01 Synchronizing Cookbooks: node01 - yum-epel node01 - yum-remi <<<中略>>> node01 Recipe: yum-epel::default node01 * yum_repository[epel] action create node01 * template[/etc/yum.repos.d/epel.repo] action create <<<中略>>> node01 Recipe: yum-remi::default node01 * yum_repository[remi] action create node01 * template[/etc/yum.repos.d/remi.repo] action create <<<中略>>> node01 Running handlers: node01 Running handlers complete node01 Chef Client finished, **/** resources updated in **.******** seconds
インストールが成功したら、続いてパッケージのインストールを行います。
Copyright © ITmedia, Inc. All Rights Reserved.