Fazer referência a grupos / classes no painel do Puppet no manifesto do meu site

2

Estou usando o Painel de Marionetes como meu ENC e não sei como fazer referência ou usar as classificações de classe e grupo de /etc/puppet/manifests/site.pp .

Eu tenho dois grupos definidos no painel: CentOS6 e SLES11 . Como deve ser meu site.pp se eu quiser incluir uma determinada lista de módulos no grupo CentOS6 e uma determinada lista de módulos no grupo SLES11 ?

Estou tentando fazer algo assim:

# /etc/puppet/manifests/site.pp

node basenode {
  include hosts
  include ssh::server
  include ssh::client
  include authentication
  include sudo
  include syslog
  include mail
}

node 'CentOS6' inherits basenode {
  include profile
}

node 'SLES11' inherits basenode {
  include usrmounts
}

Eu tenho instruções de caso específicas do sistema operacional em meus módulos, mas existem alguns módulos que serão aplicados somente a uma determinada distro. Então, suponho que tenho duas perguntas:

  1. Esta é a melhor maneira de aplicar módulos / recursos de uma maneira específica do SO? Ou o acima faz você querer vomitar?
  2. Independentemente do nº 1, ainda estou curioso sobre como fazer referência a classes, grupos e nós do Painel nos meus manifestos. Li o documento External Nodes , mas não estou vendo como eles correspondem aos manifestos.

Obrigado a todos.

    
por Banjer 08.06.2012 / 17:11

2 respostas

2

OK, vejo como isso funciona. O Painel de fantoches substitui site.pp , se você definir o painel como seu Classificador de nó externo (ENC) . Bem, isso não é totalmente verdade, pois você pode usar os dois:

ENCs can co-exist with standard node definitions in site.pp, and the classes declared in each source are effectively merged.

Pelo que entendi, os nomes Classes = do painel de seus módulos de fantoches. E você pode criar Grupos para agrupar classes para aplicar a um grupo de nós. Eu configurei um grupo CentOS6 com todos os meus servidores CentOS 6 e por meu antigo site.pp na minha pergunta original, ele tem todas as Classes (módulos) que eu quero que meus servidores CentOS 6 tenham aplicado em seu catálogo. A adição de nós e classes a grupos pode ser feita através do painel.

Outro exemplo:

site.pp :

node default {
  include iptables
  include selinux 
  include dns 
  include test
}

Convertendo o site.pp para o Puppet Dashboard (captura de tela):

    
por 08.06.2012 / 20:52
2

Você está no caminho certo com o Classificador de Nó Externo. É um pouco difícil enrolar a cabeça, mas, se você trabalhar, nunca olhará para trás e não recomendo fazê-lo com força suficiente. Eu fui para a sala de IRC de marionetes quando tive problemas e eles me ajudaram a conseguir o meu trabalho.

  1. A aplicação de diferentes módulos baseados em SO é adequada. Eu corro um ambiente de 300+ nós com BSD e RHEL e nós fazemos isso. Em vez de ter o sistema operacional como um nó, temos como classe própria porque. Então, ao invés de "node OS herda basenode", nós temos o ENC repassando algo assim:

    node web-prod-007 {
      $node_environment="production"
      include web_server_class # this then inherits basenode
      include centos6::server # 
      include logging::rsyslog 
    }
    

    ... etc

como você faz isso depende de como você quer que sua herança funcione, se você quiser modificar as coisas no basenode dependendo do sistema operacional, então ter o sistema operacional herdado basenode é o caminho certo a seguir.

TLDR, o que você está fazendo é bom, e veja os ENC porque eles facilitam a vida.

EDIT: 2. Eu não uso o Dashboard, então eu não sei.

    
por 08.06.2012 / 17:40