вот мой манифест, также извиняюсь за форматирование. В самом низу ошибка. Как я могу реорганизовать это, чтобы оно работало? Я знаю, что он говорит мне, что /etc/yum.repos.d используется более одного раза, но мне нужно использовать его более одного раза, чтобы выполнить то, что мне нужно сделать, а именно удалить каталог /etc/yum.repos.d и добавить его обратно с шаблоном из моего локального репо. Любая помощь будет принята с благодарностью.
class profile::base {
#the base profile should include component modules that will be on all nodes
#Remove Directory
#file {'Remove_Directory':
# ensure => absent,
# path => '/etc/yum.repos.d',
# recurse => true,
# purge => true,
# force => true,
# }
#Add Directory
file {'Add_Directory':
ensure => directory,
path => '/etc/yum.repos.d',
recurse => true,
purge => true,
force => true,
}
#Copy Repo Template in directory
file { 'Copy_Template':
path => '/etc/yum.repos.d',
ensure => file,
content => template('profile/local-repos.repo.epp'),
}
}
Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Evaluation Error: Error while evaluating a Resource Statement, Evaluation Error: Error while evaluating a Resource Statement, Cannot alias File[Copy_Template] to ["/etc/yum.repos.d"] at (file: /etc/puppetlabs/code/environments/bastion/site/profile/manifests/base.pp, line: 24); resource ["File", "/etc/yum.repos.d"] already declared (file: /etc/puppetlabs/code/environments/bastion/site/profile/manifests/base.pp, line: 15) (file: /etc/puppetlabs/code/environments/bastion/site/profile/manifests/base.pp, line: 24, column: 1) on node sshtest.mmps.mcrc.cspm.marines.usmc.mil
Думаю, вы хотите сделать что-то вроде следующего:
Убедитесь, что каталог существует, но содержит только управляемые файлы:
file { '/etc/yum.repos.d':
ensure => 'directory',
purge => true,
recurse => true,
force => true,
[...]
}
Добавьте в этот каталог управляемый файл:
file { '/etc/yum.repos.d/your-repo-file.repo':
ensure => 'present',
content => template('your-template'),
[...]
}
Вы можете добиться того, что пытаетесь сделать, с помощью собственного ресурса yumrepo.
Во-первых, удалите все неуправляемые репозитории yum. (Я считаю, что это то, что вы пытаетесь сделать с файловым ресурсом Add_Directory.)
resources { 'yumrepo':
purge => true,
}
Затем вы можете определить свои локальные репозитории.
yumrepo { 'myrepo1':
...
}
yumrepo { 'myrepo2':
...
}