如何从模块中获取puppet清单中的文件

Vik*_*rón 17 ruby-on-rails manifest puppet vagrant

我试图从puppet清单中的本地模块中获取文件(在独立模式下使用puppet):

file {
  '/home/repowt/.crontab':
    ensure => present,
    source => 'puppet:///modules/site/crontab';
}
Run Code Online (Sandbox Code Playgroud)

但我得到:

Could not evaluate: Could not retrieve information from source(s) ...
Run Code Online (Sandbox Code Playgroud)

该文件位于:

config/puppet/modules/site/files/crontab
Run Code Online (Sandbox Code Playgroud)

(puppet被称为via vagrant provision并且Vagrantfile指定module_path ='config/puppet/modules',并且显然可以,因为puppet从那里加载带有导入的模块.)

我也尝试过:

source => 'puppet:///site/crontab'
source => 'site/crontab'
source => 'config/puppet/modules/site/files/crontab'
source => '/modules/site/crontab'
Run Code Online (Sandbox Code Playgroud)

无济于事.我发现网上没有什么亮点,看起来很简单.感谢您的帮助.

小智 20

这里有几件事情.

首先,正如pwan所说,fileserver.conf需要正确设置.

请记住,/vagrant包含目录所在的Vagrantfile位置(因此包含所有内容),这对我来说意味着:

vm_config.vm.provision :puppet, :module_path => "modules", :options => ["--fileserverconfig=/vagrant/fileserver.conf", ]
Run Code Online (Sandbox Code Playgroud)

fileserver.conf指定/etc/puppet/files要使用.

虽然我可以指定一个不同的fileserver.conf,只是为了Vagrant,我想要的一切都和平时一样.

所以,我也装/etc/puppet/files

vm_config.vm.share_folder "files", "/etc/puppet/files", "files"
Run Code Online (Sandbox Code Playgroud)

哪些东西对我有用.


kno*_*opx 11

puppet:///modules/my_module/file 应该匹配 %vagrant_root%/modules/my_module/files/file


小智 6

我注意到Vagrant在目标VM上安装了它的dir副本(我使用的是基础http://dl.dropbox.com/u/15307300/vagrant-0.7-centos-64-base.box); 做一个"装载",看看你是否也有这个.

这允许我在我的Vagrant中创建一个目录,与清单/我称之为"files /"并行.然后我将配置源文件放在那里,例如,.../myvagrantproject/files/slapd.conf.它在VM上显示为/vagrant/files/slapd.conf

然后在文件源的puppet清单中,我将源列为绝对文件路径,而不是puppet服务器路径,如:

file { 'slapd.conf':
  name          => '/etc/openldap/slapd.conf',
  ensure        => present,
  source        => '/vagrant/files/slapd.conf',
  owner         => root,
  group         => ldap,
  mode          => 0640,
  require       => Package["ldapservers"],
}
Run Code Online (Sandbox Code Playgroud)

它发现它自己的vbox安装的远程文件系统没有问题.