タイトルの通り、chefのremote_directoryで配置したディレクトリ配下のファイルに実行権限をつけたかったのですが、コマンドでchmod
するのはイケてない気がしたので別の方法を探しました。
ざっくり言うと
-
chef
のremote_directory
で配置したディレクトリ配下のファイルに実行権限を付けたい。 - 特別な指定なしで配置するとファイル権限は
644
となる。 -
mode
ではディレクトリの権限だけが変わる。 -
bash > code
でchmod
することで実現できるが・・・。
構成とやりたいこと
階層
chef-repo
├─ files
│ └─ var
│ └─ www
│ ├─ hoge.sh
│ └─ fuga.sh
├─ recipe
│ └─ default.rb
-
remote_directory
で/var/www
を配置する。 -
hoge.sh
とfuga.sh
に実行権限を付けて(権限を744
にして)サーバに配置したい。
方法
chefのrecipeにて files_mode を指定することでファイル権限が変更できる。
以下に一例を挙げる。
この場合、/var/www
ディレクトリの権限は755
、それ配下のファイル権限は744
となる。
default.rb
remote_directory "/var/www" do
source "/var/www"
owner 'alice'
mode '0755'
files_mode '0744'
files_owner 'bob'
end
最後に
file_mode
の他にもfile_owner
やfiles_group
などを指定することで、
ディレクトリ配下のファイルの所有者等を設定することも出来る。
参考サイト:CHEF Documents