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がインストールされていることを検証します。