Я пытаюсь скопировать файлы, используя файловый ресурс. Мой код выглядит следующим образом:
node 'Node-002' {
file { "/root/helloworld.txt":
ensure => file,
owner => "root",
group => "root",
mode => "0644",
source => "puppet://modules/templates/${fqdn}/hosts.erb",
}
}
Но он не работает со следующей ошибкой
Error: /Stage[main]/Main/Node[Node-002]/File[/root/helloworld.txt]: Could not evaluate: Could not retrieve information from environment production source(s) puppet:///modules/templates/Node-002.example.com/hosts.erb
Расположение шаблона следующее:
ls -l /apps/wps/puppetlabs/code/environments/production/modules/templates/Node-002.example.com/hosts.erb
-rw-r--r-- 1 puppet puppet 462 Jul 20 02:13 /apps/wps/puppetlabs/code/environments/production/modules/templates/Node-002.wiley.com/hosts.erb
Даже если я дам полный путь в source
параметр, он не работает с той же ошибкой.
Я использую Puppet 4.5.4
Пожалуйста, предложите
Ваш модуль (ы) не соответствует стандартной структуре каталогов. С исходным URL-адресом puppet:///modules/foo/bar.txt
, Марионетка будет искать ${codedir}/environments/production/modules/foo/files/bar.txt
. Статические файлы должны быть в files
подкаталог в вашем модуле. Шаблоны должны быть в templates
подкаталог в вашем модуле и указанный в file
ресурс с content => template('foo/bar.erb')
. Кажется, есть некоторая путаница с тем, что вы используете шаблон ERB в качестве источника, который никак не обрабатывается.
Видеть https://docs.puppet.com/puppet/latest/reference/modules_fundamentals.html о том, как должны быть структурированы ваши модули.