我想在将它们上传到Chef服务器之前在本地测试我的Chef食谱。
我已经在我的计算机上设置了Vagrant,并将其上的几个目录同步到了流浪的客人vm。
/vagrant
目录。/home/vagrant/src/current
目录。要在本地模式下运行chef-client
,我正在执行以下操作。
ssh
- 进入它。
$ cd /vagrant
$ sudo chef-client -o 'recipe[cookbook-name::deploy]' -z
配方失败,出现以下错误。
Errno::EINVAL: Invalid argument @ rb_readlink - /home/vagrant/src/current
当我尝试在本地模式下在我的流浪盒上运行时,此配方失败。它在结构略有不同的服务器上不会失败。在服务器中,我们遵循https://docs.chef.io/resource_deploy.html中列出的结构,其中current
目录是releases
目录中某个版本的链接。
我想更好地理解这个错误,并获得有关如何使配方在本地模式下工作的建议。
答案 0 :(得分:0)
测试Chef配方的方法是使用Test Kitchen,它支持Vagrant作为驱动程序插件,但比Vagrant本身更为谨慎地处理文件同步。