chef部署资源,以本地模式运行,失败并显示错误 - Errno :: EINVAL:无效参数@ rb_readlink

时间:2018-03-07 14:29:49

标签: vagrant chef

我想在将它们上传到Chef服务器之前在本地测试我的Chef食谱。

我已经在我的计算机上设置了Vagrant,并将其上的几个目录同步到了流浪的客人vm。

  1. 包含Chef cookbook的项目将同步到Vagrant guest虚拟机中的/vagrant目录。
  2. 我要部署的项目已同步到来宾vm中的/home/vagrant/src/current目录。
  3. 要在本地模式下运行chef-client,我正在执行以下操作。

    1. 启动流浪盒并ssh - 进入它。
    2. 在来宾vm中运行以下命令。 $ cd /vagrant $ sudo chef-client -o 'recipe[cookbook-name::deploy]' -z
    3. 配方失败,出现以下错误。 Errno::EINVAL: Invalid argument @ rb_readlink - /home/vagrant/src/current

      当我尝试在本地模式下在我的流浪盒上运行时,此配方失败。它在结构略有不同的服务器上不会失败。在服务器中,我们遵循https://docs.chef.io/resource_deploy.html中列出的结构,其中current目录是releases目录中某个版本的链接。

      我想更好地理解这个错误,并获得有关如何使配方在本地模式下工作的建议。

1 个答案:

答案 0 :(得分:0)

测试Chef配方的方法是使用Test Kitchen,它支持Vagrant作为驱动程序插件,但比Vagrant本身更为谨慎地处理文件同步。