Jef*_*rey 10 chef-infra vagrant
我正在使用chef来创建文件资源
file "somefile" do
action :create_if_missing
end
Run Code Online (Sandbox Code Playgroud)
我想把它放在用户的主目录中.我有两个问题:
node[:user]看起来是空的.有没有办法在非root用户(在本例中为vagrant)主目录中创建文件?
kop*_*zko 19
线程很旧,但我刚才遇到了这个问题.
您可以为用户创建属性,例如: default['mycookbook']['user']
然后在你的食谱中:
user = node['mycookbook']['user'] # user set in cookbook attrubute
# user = node['current_user'] # user running chef cookbook (on provisioned host)
home = node['etc']['passwd'][user]['dir'] # Chef DSL
# home = Dir.home(user) # It's Ruby
file "#{home}/somefile" do
action :create_if_missing
end
Run Code Online (Sandbox Code Playgroud)
这是因为厨师食谱是由root用户运行的。这个解决方法怎么样
if File.exists? "/vagrant"
user = "vagrant"
else
user = "deployer"
end
file "/home/#{user}/foo" do
..
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10836 次 |
| 最近记录: |