2

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

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

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

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

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

它抛出一个错误:

错误:无法删除现有文件

错误:/Stage[main]/Misc/File[/webroot]/ensure:从目录更改为链接失败:无法删除现有文件

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

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

4

1 回答 1

2

Try adding a replace:

class misc {
  file { '/webroot':
   ensure  => 'link',
   target  => '/home',
   force   => true,     
   replace => true,
  }
}
于 2013-03-07T17:51:10.487 回答