매니페스트를 통해 cron에서 스크립트를 실행할 수 없습니다.

매니페스트를 통해 cron에서 스크립트를 실행할 수 없습니다.

에이전트에 스크립트를 배포하고 cron을 사용하여 매시간 실행하려고 합니다. 실행하면 puppet agent -t오류가 발생합니다.

서버 오류 400: 노드의 /etc/puppet/modules/homebackup/manifests/init.pp:16에 있는 cron[homebackup]의 잘못된 매개변수 경로

매니페스트에서 다음 경로에 썼습니다. ( Puppet Master에 /etc/puppet/modules/homebackup/manifests/init.pp있음 )/etc/puppet/modules/homebackup/script.sh

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'],
}
}

누군가 내가 결점을 찾는 데 도움을 줄 수 있습니까?


고정된 목록입니다

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'],
    }
    }

답변1

당면한 문제는 파일( ) 이 모듈 아래의 디렉터리 script.sh에 있어야 한다는 것입니다. 즉, 혼란스럽게도 경로의 일부는 다음과 같습니다.files/etc/puppet/modules/homebackup/files/script.shfiles아니요URI의 일부입니다 source.

또 다른 오류가 있습니다. FileAFAIK 참조가 필요합니다.이름~의파일 리소스즉, 리터럴이어야 합니다 require => File['script file'],.

당신의cron자원command또한 실행될 실제 명령인 지정된 속성도 없습니다 .

기타 팁:

  • filepath자원(및 자원에 대한 참조)을 단순화하기 위해 제목(대신)으로 사용합니다 script file. 여기에는 속성을 지정할 필요조차 없다는 추가 이점이 있습니다 path.제목이 기본값입니다.
  • 변수 사용아무것file리소스 제목 과 같이 여러 번 참조합니다 .
  • 사용꼭두각시 린트자주 묻는 질문(FAQ)을 알아보세요.

관련 정보