Ocorreu um problema ao usar hiera na configuração sem master e obter valores definidos para classes

4

Estou executando uma configuração de fantoches sem mestre que aplica as alterações de marionetes da seguinte maneira.

puppet apply /tmp/puppet/manifests/site.pp --modulepath=/tmp/puppet/modules --hiera_config=/tmp/puppet/hiera.yaml

Eu tenho tentado trabalhar no hiera para lidar com os diferentes tipos de nós que temos e, como ponto de partida, estamos tentando usar um fato personalizado que é definido nos nós. Este fato é nodetype e neste exemplo é definido como um valor de diskless.

O facter no nó reconhece esse fato.

# facter -y | grep nodetype
nodetype: diskless

E hiera.yaml contém o seguinte

---
:backends:
  - yaml
:yaml:
  :datadir: /tmp/puppet/data
:hierarchy:
  - node/%{::nodetype}

E em /tmp/puppet/data/node/diskless.yaml existe

---
cluster: blues

Embora depois de fazer isso eu tente checar se hiera está definindo as variáveis conforme necessário, mas não parece funcionar.

hiera -y diskless.yaml cluster
nil

Existe uma maneira melhor de depurar o problema. Tenho certeza de que é algo simples, mas seria decepcionante se o hiera não funcionasse (ou não pudesse) neste caso de uso.

Felicidades

Editar 1:

Depuração adicional

hiera cluster '::nodetype=diskless' -d
DEBUG: Fri Oct 31 16:54:01 -0400 2014: Hiera YAML backend starting
DEBUG: Fri Oct 31 16:54:01 -0400 2014: Looking up cluster in YAML backend
DEBUG: Fri Oct 31 16:54:01 -0400 2014: Looking for data source defaults
DEBUG: Fri Oct 31 16:54:01 -0400 2014: Cannot find datafile /var/lib/hiera/defaults.yaml, skipping
DEBUG: Fri Oct 31 16:54:01 -0400 2014: Looking for data source global
DEBUG: Fri Oct 31 16:54:01 -0400 2014: Cannot find datafile /var/lib/hiera/global.yaml, skipping
nil

Editar 2:

Aparece definindo o sinalizador --hiera-config não faz nada e é necessário criar um link simbólico /etc/hiera.yaml para a configuração hiera.yaml que você deseja usar.

Editar 3: Após o symlinking /etc/hiera.yaml para /tmp/puppet/hiera.yaml, fui capaz de pesquisar variáveis hiera, mas não consegui usá-las em manifestos de puppet da maneira esperada. Em vez disso eu tive que chamar hiera assim tão diretamente

$networking_config    = hiera('networking::network::networking_config','no')

Terrivelmente confuso

    
por Wilshire 29.10.2014 / 21:03

1 resposta

5

Tente isto:

hiera cluster ':: nodetype = diskless'

Veja: link

    
por 30.10.2014 / 00:46