我有一个厨师脚本正在做
directory '/home/ubuntu/s3' do
action :create
end
execute 'copy from s3' do
command "aws s3 cp s3://my-assets /home/ubuntu/s3/ --recursive"
end
...
我注意到在将一个新文件复制到我的 s3 存储桶后,运行这个 chef 配方后它不在我的服务器上...所以我通过 ssh 进入服务器并 rm -rf s3 目录..重新运行我的 chef 脚本,后来当我试图访问 s3 目录中的某些内容时失败了,提示“没有文件或目录”。
我通过 ssh 重新登录并发现,在我删除该目录后,chef 从未重新创建该目录...那么......我该如何告诉 chef 重新做那些它认为已经完成但不需要做的事情呢?
答案1
食谱里面的资源不一定按顺序排列。
尝试:
directory '/home/ubuntu/s3' do
action :create
end
execute 'copy from s3' do
command "aws s3 cp s3://my-assets /home/ubuntu/s3/ --recursive"
only_if { ::Dir.exist?(/home/ubuntu/s3) }
end
或者:
目录'/home/ubuntu/s3' 动作:創建.. 结尾 执行'从 s3 复制' 命令“aws s3 cp s3://my-assets /home/ubuntu/s3/ --recursive”。 订阅:创建,“目录[/home/ubuntu/s3]” 结尾