0
私はwebappを展開するシェフの料理本を持っています。作成して所有する必要のあるフォルダとファイルがあります。www-data:www-data
です。シェフは配備時にファイル所有者を上書きしますか?避けられますか?
deploy "#{app_dir}" do
repository tmp_dir
user "root"
group "root"
environment app[:environment]
symlink_before_migrate({})
end
そして、このようなbefore_symlink.rb
スクリプトで行われ、これらのファイルとフォルダの作成やアクセス権セット:私は私のdeploy.rb
レシピにこのようなシェフのdeploy
コマンドを使用して、それをやっているアプリケーションをデプロイする場合:
execute "ensure correct owner of storage folder" do
command "chown -R www-data:www-data #{release_path}/storage"
end
私は、デバッグしてきたと私は、これはチェックしました:
chown
が実行され、ユーザーはexis ts、シェフのログで見ることができます。- before_symlinkの最後に
sleep
コマンドを実行してからマシンにsshを実行すると、が所有するstorage
フォルダに表示されます。 deploy.rb
にdeployコマンドの直後にsleep
コマンドを実行してから、マシンにsshを実行すると、リリースフォルダはcurrent
フォルダにリンクされ、すべてのファイルとフォルダはroot:root
によって所有され、許可エラーが発生します。
デプロイメントの最後に、展開されたすべてのファイルの所有者をシェルフが展開するユーザーに上書きしているようです。これは本当ですか?所有者のファイルとフォルダをbefore_symlink.rb
に設定したままにする方法はありますか?
オーナー/グループが 'www-data:www-data'の場合、なぜリソースを' root:root'に割り当てるのですか? 'deploy'リソースに直接正しいものを設定してください。 – Navarro