Como você usa uma variável em um manifesto de marionete?

3

Estou usando o Módulo WSUS com o Puppet Master no Centos 7.2. Meus servidores do Puppet Agent estão executando o Windows Server 2012.

Eu quero usar um manifesto com uma variável. No entanto, quando o servidor do Puppet Agent executa o agente de marionetes, ele exibe "erro 400, erro de sintaxe". Eu tentei re-escrever o manifesto e todas as variações que eu poderia pensar. Eu continuo recebendo algum erro.

Aqui está um exemplo de um manifesto:

class excellent {
    class { 'wsus_client':
       $cool = 'Saturday'
    server_url => 'http://acme.com',
    auto_update_option  => 'Scheduled'
    scheduled_install_day => $cool,
    scheduled_install_hour => 1,
}
}

Eu tentei atribuir a variável entre chaves {}. Eu tentei usar $ LOAD_PATH, --custom-dir e FACTERLIB. Mas eu não consegui descobrir como usar qualquer um desses três.

Eu quero mudar a variável em um lugar e usá-la dentro do escopo de sua classe pai. O que devo fazer?

    
por Kiran 15.09.2016 / 01:47

2 respostas

7

Você já tentou dessa maneira?

class excellent {
  $cool = 'Saturday'

  class { 'wsus_client':
    server_url => 'http://acme.com',
    auto_update_option  => 'Scheduled'
    scheduled_install_day => $cool,
    scheduled_install_hour => 1,
  }
}

Ou, desta forma

class excellent (
  $cool = 'Saturday'
){
  class { 'wsus_client':
    server_url => 'http://acme.com',
    auto_update_option  => 'Scheduled'
    scheduled_install_day => $cool,
    scheduled_install_hour => 1,
  }
}
    
por 15.09.2016 / 01:52
1

Atualmente, você parece estar tentando atribuir um valor a uma variável dentro de declaração de classe . Sua atribuição de variável precisa ser separada.

$cool = 'Saturday'

Sua declaração de classe deve ser assim.

class {'namevar':
  a => 'a',
  b => 'b',
  c => 'c'
}
    
por 15.09.2016 / 01:54