에이전트에 스크립트를 배포하고 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.sh
files
아니요URI의 일부입니다 source
.
또 다른 오류가 있습니다. File
AFAIK 참조가 필요합니다.이름~의파일 리소스즉, 리터럴이어야 합니다 require => File['script file'],
.
당신의cron
자원command
또한 실행될 실제 명령인 지정된 속성도 없습니다 .
기타 팁:
file
path
자원(및 자원에 대한 참조)을 단순화하기 위해 제목(대신)으로 사용합니다script file
. 여기에는 속성을 지정할 필요조차 없다는 추가 이점이 있습니다path
.제목이 기본값입니다.- 변수 사용아무것
file
리소스 제목 과 같이 여러 번 참조합니다 . - 사용꼭두각시 린트자주 묻는 질문(FAQ)을 알아보세요.