Descobri que preciso de certos recursos, como repositórios yum ou autenticação AD, para serem configurados em um novo host antes que muitos outros recursos possam ser configurados em um host Linux. Entre nas fases do Puppet run .
class runstages::standard {
# declare additional run stage
stage { 'stage01': }
Stage['stage01'] -> Stage['main']
# assign classes to stages
class { 'yumrepos':
stage => 'stage01',
}->
class {'authentication': # Active Directory auth setup
stage => 'stage01',
}->
class {'hosts': # hosts file
stage => 'stage01',
}
}
Stage['main']
é o estágio de execução padrão. Se você não atribuir explicitamente uma classe de fantoches a um palco, ela será no palco principal.
No exemplo acima, criei um estágio personalizado chamado stage01
e atribuí classes a ele. Como você pode ver, stage01
é disparado antes do estágio main
. As ->
setas de encadeamento também garantem a ordem. Portanto, as três classes dentro stage01
são executadas em uma ordem específica. Como alternativa, eu poderia ter especificado três estágios de execução diferentes para cada classe, mas prefiro agrupar todos os três em um estágio de execução, para escalabilidade.
Em seguida, aplique a classe aos seus hosts por meio do seu Classificador de Nó Externo (ENC), por exemplo , Foreman , se você usar um, ou no manifesto do seu site. Com Foreman, eu tinha que remover as classes de fantoches , e de minha hostgroup (s), caso contrário você vai ter advertências declaração duplicada.runstages::standard
yumrepos
authentication
hosts