puppet - 使用 puppet 对 vagrant 共享文件夹进行符号链接(symbolic link)

标签 puppet vagrant

我需要使用 vagrant 在旧服务器上重新创 build 置,我们在主目录中提供站点。无法在 vagrant 中将共享文件夹设置为/home,因为这会删除 vagrant 用户。因此,我想创建一个共享文件夹,它实际上是主目录的符号链接(symbolic link)。

如果我在 Vagrantfile 中创建这样的共享目录:

config.vm.share_folder "v-www", "/webroot", "/Users/me/sites/vagrant"

然后尝试使用 puppet 创建一个符号链接(symbolic link)来覆盖此目录,如下所示:

class misc {
  file { '/webroot':
   ensure => 'link',
   target => '/home',
   force => true,     
  }
}

它抛出一个错误:

Error: Could not remove existing file

Error: /Stage[main]/Misc/File[/webroot]/ensure: change from directory to link failed: Could not remove existing file

当我登录到盒子并手动尝试此操作时,这也会失败,因为我实际上无法删除 webroot - 我认为这是因为它创建为某种 nfs 共享或类似的东西。

有什么想法可以解决这个问题吗?

最佳答案

尝试添加替换:

class misc {
  file { '/webroot':
   ensure  => 'link',
   target  => '/home',
   force   => true,     
   replace => true,
  }
}

关于puppet - 使用 puppet 对 vagrant 共享文件夹进行符号链接(symbolic link),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15274343/

相关文章:

ubuntu - 从主机推送文件后,可以在 lxc 容器中找到文件

java - RobotFramework + SwingLibrary : Tests don't work over SSH

Puppet 无法从模块复制文件

mongodb - 未知函数选择位于/tmp/vagrant-puppet/modules-84c36838170137b342ad08a194e8c35b/mongodb/manifests/params.pp :6 on node - Vagrant

puppet - 希拉如何运作?

apache - 无法连接到一台计算机上的 Vagrant Apache

ruby - 在 Vagrant 配置 Bash 脚本中运行 Ruby 文件

puppet - 如何在 Puppet 2.7 中将数组转换为逗号分隔的字符串

windows-services - 如何使用puppet安装/卸载Windows服务?

windows - VirtualBox 重启后重新连接来自 Vagrant 的同步文件夹