Burattino: come funziona la gerarchia se si associa un ruolo?

Sto cercando di capire come funziona la gerarchia dei burattini.

Il hiera.yaml del mio server Puppet è così:

 [root@puppet puppet]# cat hiera.yaml :backends: - yaml :yaml: :datadir: '/etc/puppet/hieradata/%{::environment}' :hierarchy: - fqdns/%{::fqdn} - roles/%{::role} - domains/%{::domain} - common 

Ci sono moduli che voglio avere tutti i server, quindi li ho inseriti nel file common.yaml e ci sono moduli specifici per i ruoli che sono inclusi in each file role.yaml .

Quando un server che corrisponde a un ruolo in Puppet inizia, i moduli del file role.yaml vengono caricati per primo. La mia domanda è: una volta che un server si abbina a un ruolo … si fermerà lì? o continuerà nella gerarchia e carica i moduli anche sotto il common.yaml ?

Altrimenti, come posso assicurarmi che questo sia come comporterà?

Modifica # 1: Ecco un esempio di uno dei file role.yaml :

 [root@puppet roles]# cat dataorigin.yaml classs: - workspace jdk_enable: true jdk_ver: 1.6.0_41 component_ver: 1-1-5-17 tomcat_enable: true debug_mode: true fstab_params: mount1: mnt_src: "isilonnj01.eyedcny.local:/ifs/Peer39/do_share" mnt_dest: "/doshare" mnt_opts: "tcp,hard,intr,noatime" mnt_dest_parent: "" 

E il site.pp del server sembra così:

 hiera_include("classs", []) Package { allow_virtual => false, } node default { include stdlib } 

Modifica # 2: Ecco un esempio di un module motd:

 include stdlib class motd { file { "/etc/custom_motd.sh": path => '/etc/custom_motd.sh', ensure => present, owner => "root", group => "root", mode => "775", content => template('motd/custom_motd.sh.erb'), #require => Class['nagios_client'], } file_line { 'enable motd': ensure => present, line => '/etc/custom_motd.sh', path => '/etc/profile', require => File['/etc/custom_motd.sh'] } } 

Il motd module è configurato nel file common.yaml e nel file role.yaml esiste un module chiamato workspace. Come posso dire a Puppet di caricare il motd module dal file common.yaml ?

One Solution collect form web for “Burattino: come funziona la gerarchia se si associa un ruolo?”

Hiera è uno strumento per la ricerca di dati . Lei dà un nome chiave e cammina attraverso i suoi file di dati e restituisce la prima corrispondenza (che dovrebbe essere quella più specifica) che viene in su, attraversando verso il basso nella sua gerarchia.

Usandolo all'interno del burattino , hai più opzioni su cosa fare se c'è più di un valore per un tasto:

 hiera Standard priority lookup. Gets the most specific value for a given key. This can retrieve values of any data type (strings, arrayss, hashes) from Hiera. hiera_arrays Uses an arrays merge lookup. Gets all of the string or arrays values in the hierarchy for a given key, then flattens them into a single arrays of unique values. hiera_hash Uses a hash merge lookup. Expects every value in the hierarchy for a given key to be a hash, and merges the top-level keys in each hash into a single hash. Note that this does not do a deep-merge in the case of nested structures. 

Utilizzo di hiera come ENC per caricare i moduli funziona in questo modo (aggiunta di enfasi):

Si noti che la function hiera_include utilizza una ricerca di unione di arrays per recuperare l'arrays di classi; questo significa che each nodo otterrà each class dalla sua gerarchia.

Quindi, se hai seguito i documenti e ha utilizzato hiera_include , tutte le classi specificate in tutta la gerarchia per un nodo verranno caricate.

Nel tuo esempio, assumendo il role=dataorigin , e che common.yaml questo aspetto:

 --- classs: - a 

Il tuo sito.pp provoca l'assegnazione del module di workspace moduli, stdlib e a al nodo di query.

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.