Я новичок в марионетке и столкнулся с некоторыми проблемами в качестве темы, некоторое время гуглил, но не смог найти подходящий ответ. Мои проблемы таковы:
Я определил глобальные переменные $ puppetserver в /etc/puppet/manifests/site.pp, как показано ниже:
case $domain {
/domain2/:{
$puppetserver = "puppetserver2"
include migrate
}
default:{
$puppetserver = "puppetserver3"
}
}
в определении узла серверов в domain2 в manifest / labs / domain2 / nodes.pp
node 'server1.domain2.com' {
$puppetserver = "puppetserver3"
}
модуль миграции используется для марионеточной миграции, полученной из Интернета, как показано ниже:
в модулях / миграции / манифестах / config.pp
class migrate::config {
if $puppetserver == undef {
fail('You must define the targeted Puppet master to perform the migration')
}
augeas { 'puppet.conf.migrate':
context => '/files/etc/puppet/puppet.conf/main',
changes => [
"set server $puppetserver",
]
}
}
Поскольку узел server1.domain2.com может соответствовать параметру domain2 в site.pp, поэтому он применяет модуль миграции, он должен получить puppetserver3 для $ puppetserver, определенный в блоке узла, а затем быть обновлен в '/ etc / puppet / puppet.conf 'от Augeas, но фактический результат: он обновляется как puppetserver2, который был определен в site.pp. Я не могу понять, почему не работает переопределение. Не могли бы вы помочь проверить, что не так?
И в качестве теста:
Когда я попытался переместить модуль 'include migrate' из site.pp в блок node 'server1.domain2.com' {} файла nodes.pp, он мог работать должным образом.