如何在Chef中进行符号或硬链接

时间:2016-10-14 09:07:57

标签: chef

有两个食谱“sshkey_generation”和“dbaas_json_creation”。

sshkey_generation有类似的内容:

file '/tmp/keys/ssh_public.pub' do
content public_key
end

我们在目录中创建公钥文件,并且工作正常。

配方“dbaas_json_creation”有类似的内容:

 vmPublicKeyText = File.read("/scratch/keys/ssh_public.pub")
 puts vmPublicKeyText

现在在通过运行列表执行两个配方时,然后得到如下错误:

No such file or directory @ rb_sysopen - /scratch/keys/ssh_public.pub

使用runlist第二个配方首先执行并查找取决于第一个配方的目录。需要确认如何进行符号链接或硬链接,正如我在“dbaas_json_creation”中尝试下面的代码但仍然是同样的问题。

 link "/scratch/json/fcubs-dbcs-create.json" do
 to "/scratch/keys/ssh_public.pub"
 link_type :hard
 end

任何建议???

2 个答案:

答案 0 :(得分:0)

这可能是编译与收敛问题。有关详细信息,请参阅https://coderanger.net/two-pass

答案 1 :(得分:0)

据我所知,您正在/tmp目录下创建该文件,稍后您将尝试访问/scratch目录。

然后你试图链接一个不存在的目录(/ scratch)。

尝试修改第一个食谱/tmp/keys/ssh_public.pub/scratch/keys/ssh_public.pub,反之亦然。