Faça módulos conversarem entre si

1

Atualmente, estou trabalhando em um perfil para bloquear um servidor, certificando-se de que os serviços e os usuários estejam desativados. Por exemplo, o Apache.

Isso gera problemas quando outro perfil deseja gerenciar o recurso, porque então eu terei dois recursos do Serviço [apache].

Agora eu poderia usar algo como define, mas meu método preferido seria de alguma forma o profile :: apache poderia falar com profile :: lockdown e dizer para deixar o apache sozinho.

    
por Bas Grolleman 16.10.2017 / 10:50

1 resposta

1

Eu acho que você precisa usar o hiera para arquivar o que quiser.

class profiles::apache {
  class { '::apache': }
}

Agora, se minha classe profiles::apache for usada para 1000 nós e eu quiser parar o serviço em um servidor em particular, no hiera eu posso usar algo assim.

exemplo de configuração hiera 3 hiera.yaml

---
:backends:
  - yaml
  - json
:yaml:
  :datadir: "/etc/puppetlabs/code/environments/%{::environment}/hieradata"
:json:
  :datadir: "/etc/puppetlabs/code/environments/%{::environment}/hieradata"
:hierarchy:
  - "nodes/%{::trusted.certname}"
  - "virtual/%{::virtual}"
  - "common"

Agora, em /etc/puppetlabs/code/environments/production/hieradata/nodes/servername.domain.local.yaml insira este apache::service_ensure: stopped

Com hiera você pode manipular o parâmetro das classes por nós ou outra coisa

    
por 16.10.2017 / 11:28

Tags