Chef-files-and-packages
提供:Dev Guides
シェフ-ファイルとパッケージ
Chefでは、構成ファイルの作成とパッケージの移動が重要なコンポーネントです。 Chefが同じことを管理する方法は複数あります。 Chefがファイルとソフトウェアパッケージの処理でサポートする方法は複数あります。
サードパーティリポジトリからのパッケージのインストール
- ステップ1 *-クックブックのデフォルトのレシピを編集します。
vipin@laptop:~/chef-repo $ subl cookbooks/test_cookbook/recipes/default.rb
include_recipe "apt"
apt_repository "s3tools" do
uri "http://s3tools.org/repo/deb-all"
components ["stable/"]
key "http://s3tools.org/repo/deb-all/stable/s3tools.key"
action :add
end
package "s3cmd"
- ステップ2 *-メタデータを編集して、aptクックブックへの依存関係を追加します。
vipin@laptop:~/chef-repo $ subl cookbooks/my_cookbook/metadata.rb
...
depends "apt"
- ステップ3 *-変更したクックブックをChefサーバーにアップロードします。
- ステップ4 *-インストールしようとしているパッケージがまだインストールされていないことを検証します。
- ステップ5 *-デフォルトのレポを検証します。
- ステップ6 *-ノードでChef-Clientを実行します。
- ステップ7 *-必要なパッケージがインストールされていることを検証します。
ソースからソフトウェアをインストールする
特定のプラットフォームのパッケージとして利用できないソフトウェアをインストールする必要がある場合は、自分でコンパイルする必要があります。 Chefでは、スクリプトリソースを使用してこれを行うことができます。
- ステップ1 *-デフォルトのレシピを編集します。
vipin@laptop:~/chef-repo $ subl cookbooks/my_cookbook/recipes/
default.rb
version = "1.3.9"
bash "install_nginx_from_source" do
cwd Chef::Config['file_cache_path']
code ≪-EOH
wget http://nginx.org/download/nginx-#{version}.tar.gz
tar zxf nginx-#{version}.tar.gz &&
cd nginx-#{version} &&
./configure && make && make install
EOH
- ステップ2 *-変更したクックブックをChefサーバーにアップロードします。
- ステップ3 *-ノードでChef-Clientを実行します。
- ステップ4 *-nginxがインストールされていることを検証します。