Чтобы перебрать объявления ресурсов (или более крупные блоки кода) в Puppet <4 без будущего синтаксического анализатора, нам нужно использовать хеши, определенный тип ресурса (если не перебирать внутренний тип) и <code>create_resources функция. Использование документировано здесь .
Для вашего конкретного случая код будет выглядеть так:
# hash of resources
$repos = {
'test_repo1' => { 'base_url' => 'example1.com',
'ensure' => present,
'gpgcheck' => true,
},
'test_repo2' => { 'base_url' => 'example2.com',
'ensure' => present,
'gpgcheck' => true,
},
}
# iterate over resource declarations
create_resources(yumrepo, $repos)
Если вы хотите перебрать более крупный блок ресурсов, то, используя в качестве примера определенный вами тип ресурса, мы изменили бы вышеупомянутое соответственно:
# defined resource type encapsulating code to iterate over
define add_repo($ensure, $base_url, $gpgcheck) {
yumrepo { $title:
ensure => $ensure,
baseurl => $base_url,
gpgcheck => $gpgcheck,
enabled => true,
}
}
# iterate over resource declarations
create_resources(add_repo, $repos)