Eu sou um novato no fantoche e conheci alguns assuntos como assunto, pesquisei por algum tempo, mas falhei com uma resposta correspondente. Mys questões é como:
Eu defini variáveis globais $ puppetserver em /etc/puppet/manifests/site.pp conforme abaixo:
case $domain {
/domain2/:{
$puppetserver = "puppetserver2"
include migrate
}
default:{
$puppetserver = "puppetserver3"
}
}
na definição do nó dos servidores no domínio2 em manifestos / labs / domain2 / nodes.pp
node 'server1.domain2.com' {
$puppetserver = "puppetserver3"
}
o módulo de migração é usado para a migração de fantoches, obtido da internet como abaixo:
em modules / migrate / manifests / 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",
]
}
}
Como o nó 'server1.domain2.com' pode coincidir com a configuração do domínio2 no site.pp, para que ele aplique o módulo migrate, ele deve obter o 'puppetserver3' para $ puppetserver definido no bloco do nó e ser atualizado em ' /etc/puppet/puppet.conf 'pelo Augeas, mas o resultado real é: ele é atualizado como puppetserver2, que foi definido em site.pp. Não consigo entender por que a substituição não está funcionando. Você pode ajudar a verificar o que está errado?
E como teste:
Quando tentei mover o módulo 'include migrate' do site.pp para o nó 'server1.domain2.com' {} block of nodes.pp, pode funcionar como esperado.
Tags puppet