Puppet - Qualquer maneira de copiar arquivos de configuração personalizados predefinidos para software em clientes do mestre de marionetes (host)?

3

Eu tenho me divertido muito codificando com o que eu já experimentei até agora, e até agora parece que pode fazer a maior parte do que eu preciso fazer.

Uma coisa que não estou encontrando na documentação (com algumas pesquisas) é como (se for possível) ter arquivos de configuração pré-construídos para usar nos servidores. Por exemplo:

Eu uso o fantoche para instalar o httpd. Agora nós temos o apache no cliente. Bem, agora o httpd.conf precisa de alguma customização e configurações específicas. Eu tenho o httpd.conf que eu preciso usar no mestre de marionetes. Como faço para obtê-lo do mestre de marionetes para o cliente?

    
por Joshua Enfield 26.06.2010 / 22:03

3 respostas

5

Eu fui no canal de IRC para o fantoche, e descobri que isso pode ser feito com o atributo de origem.

file { "/etc/firewall.sh":
    owner => root,
    group => root,
    mode => 550,
    source => "puppet:///files/iptables.sh"
}

a localização dos arquivos é definida em /etc/puppet/fileserver.conf - a configuração é simples.

A tag de conteúdo em vez da fonte pode ser usada para colocar uma string literal no arquivo.

    
por 26.06.2010 / 23:47
3

Se eu fosse você, usaria o formato puppet:///modules/<module name>/iptables.sh . Dessa forma, tudo está confinado ao módulo e você não precisa de um fileserver.conf. O puppet:///modules/* está livre.

    
por 30.09.2010 / 23:10
0

Usar arquivos estáticos é um bom começo. Usar modelos é ainda melhor e mais flexível a longo prazo.

link

$hostname = 'your.host.com'
$portnum  = 8080

file { '/etc/lighttpd/lighttpd.conf':
   ensure => present,
  content => template('lighttpd/lighttpd.conf.erb'),
    owner => 'root',
    group => 'root',
     mode => 0644,
}

Isso combinado com um modelo .erb cria o arquivo de configuração desejado usando as variáveis $ hostname e $ portnum.

$HTTP["host"] =~ "^<%= hostname %>" {
    proxy.server = (
        "" => (
            (
                "host" => "127.0.0.1",
                "port" => <%= portnum %>
            )
    ...
    
por 27.06.2012 / 01:09