Como usar o Hiera para atribuir módulos a nós no Puppet?

1

Decidi mudar de um único nó padrão.pp para um back-end do Hiera para gerenciar nós no Puppet e atribuir módulos a nós.

Usamos nomes de host como tal:

nyc-apache-prod-01
was-mysql-tst-01

Esta é a nossa estrutura de diretórios hiera.yaml e hierdata:

# cat hiera.yaml 
:backends:
    - yaml

:hierarchy:
    - environment/tst/%{::hostname}
    - environment/tst
    - %{::osfamily}
    - common

:logger: console

:yaml:
    :datadir: '/etc/puppet/hieradata'

# find hieradata
hieradata
hieradata/RedHat.yaml
hieradata/OracleRAC.yaml
hieradata/common.yaml
hieradata/environment
hieradata/environment/dev
hieradata/environment/tst.yaml
hieradata/environment/acc
hieradata/environment/dev.yaml
hieradata/environment/acc.yaml
hieradata/environment/tst
hieradata/environment/tst/nyc-ks-tst-02.yaml
hieradata/environment/tst/nyc-ks-tst-01.yaml
hieradata/environment/prd
hieradata/environment/prd.yaml

O problema é que os ambientes precisam ser definidos como environment = tst no /etc/puppet/puppet.conf em cada nó individual. Eu poderia escrever um módulo para fazer isso com base no nome do host do servidor, mas não tenho certeza se essa é a melhor maneira de organizar servidores em ambientes separados.

  • Qual é a melhor maneira de ter diferentes módulos Puppet para servidores diferentes?
  • E qual é a melhor maneira de adicionar módulos específicos a um grupo de servidores?
  • por exemplo. Eu tenho 10 servidores web Apache ... Eu gostaria de ter todos esses nós apache, não importa se eles são tst / acc / dev / prd para ter os módulos do apache.

O que eu quero evitar é adicionar uma lista de classes na lista de classes para cada servidor individual. Esta foi a razão pela qual estávamos nos movendo do único nó.pp para um back-end Hiera, em primeiro lugar.

    
por ujjain 31.05.2013 / 15:16

1 resposta

0

Você pode querer atribuir uma função aos servidores e usá-la para fornecer pacotes.

Por exemplo; em /etc/facter/facts.d você coloca um arquivo que define um fato de função. Você poderia usar isso como um nível de hierarquia Hiera para atribuir módulos aos servidores.

Nunca tentei eu mesmo, mas acho que poderia funcionar ..:)

    
por 31.05.2013 / 22:48

Tags