humangas's blog

自分用のメモなので雑です。

入門Chef Solo:12-ファイルやディレクトリを扱いたい - Cookbook File, Directory

入門Chef Solo - Infrastructure as Code

入門Chef Solo - Infrastructure as Code

Cookbook File

Cookbook Fileを使用して、クックブックに同梱したファイルを転送し任意のパスへ配置できる。
標準リソースのFileリソースはファイルを一から作成する場合のResourceで、利用頻度は低い。

Templateとの使い分け

  • Template: 変数を使う場合
  • Cookbook File: 静的なファイルを扱う場合

サンプルコード

cookbook_file "/tmp/supervisor-3.0a12-2.el6.noarch.rpm" do
    mode 00644
end

転送元:files/default/supervisor-3.0a12-2.el6.noarch.rpm

オプション

下記のようなオプションがある(一部)

  • mode
  • owner
  • group
  • path
  • source
  • checksum

checksum

SHA-256のチェックサム

チェックサム生成のコマンド

$ shasum -a 256 <filename>

Directory

ディレクトリ操作を行う。
TemplateやCookbook Fileで扱うファイルを転送先となるディレクトリは、明示的に作成しておく必要がある。そこでDirectory Resourceを使用する。

ディレクトリ作成のサンプルコード

directory '/etc/td-agent/' do
    owner   'td-agent'
    group   'td-agent'
    mode    '0755'
    action  :create
end

action

アクションは:createもしくは:delete

パッケージをファイルからインストール

  • yumを使わずにrpmパッケージをインストールするときに、Cookbook FileとPackageを組み合わせてインストールのレシピを作ることができる
  • rpmをファイルでインストールする場合、そのrpmが依存するパッケージをChefが解決する
  • Redhat系ならyumレポジトリから取ってきてインストールしてくれる