Não é possível executar o script no cron via manifesto

1

Estou tentando implantar um script para agentes e executar o script usando o cron a cada hora. Quando estou executando puppet agent -t , estou recebendo um erro:

Error 400 on SERVER: Invalid parameter path on Cron[homebackup] at /etc/puppet/modules/homebackup/manifests/init.pp:16 on node

No manifesto que escrevi no caminho: /etc/puppet/modules/homebackup/manifests/init.pp (localizado em /etc/puppet/modules/homebackup/script.sh no mestre de marionetes)

class homebackup {
file { 'scriptfile':
  ensure => 'file',
  source => 'puppet:///modules/homebackup/script.sh',
  path => '/usr/local/bin/script.sh',
  owner => 'root',
  group => 'root',
  mode => 0755,
}

cron { 'homebackup':
  ensure => 'present',
  command => "/usr/local/bin/script.sh",
  user  => root,
  minute => 0,
  require => File['scriptfile'],
}
}

alguém poderia me ajudar a encontrar a falha?

Aqui está o manifesto fixo

class homebackup {
    file { 'scriptfile':
      ensure => 'file',
      source => 'puppet:///modules/homebackup/script.sh',
      path => '/usr/local/bin/script.sh',
      owner => 'root',
      group => 'root',
      mode => 0755,
    }

    cron { 'homebackup':
      ensure => 'present',
      command => "/usr/local/bin/script.sh",
      user  => root,
      hour => "23",
      minute => absent,
      require => File['scriptfile'],
    }
    }
    
por Todd Goodfellow 21.06.2015 / 20:57

1 resposta

2

O problema imediato é que o arquivo ( script.sh ) precisa estar no diretório files do módulo, ou seja, /etc/puppet/modules/homebackup/files/script.sh . Confusamente, a parte files do caminho não é parte do source .

Você também tem outro erro: O requisito de File AFAIK precisa se referir ao nome do recurso de arquivo , ou seja, deve ser literalmente require => File['script file'], .

O seu cron resource também não especifica uma propriedade command , que é o comando real a ser executado.

Algumas outras dicas:

  • Simplifique os recursos file (e referências a eles) usando path como o título (em vez de script file ). Isso traz o benefício adicional de você não precisar especificar a path property - o padrão é o título .
  • Use variáveis para qualquer referência a mais de uma vez, como o título do recurso file .
  • Use puppet-lint para identificar alguns problemas comuns.
por 21.06.2015 / 22:36