배경
신청하고 싶습니다이것common
내 설정에 대한 모든 구체적인 정보를 포함하는 수업을 갖고 싶다는 생각입니다 .
/etc/puppet/modules/common/manifests/init.pp
그래서 나는
class common { include common::data }
class common::data { $ntpServerList = [ 'ntp51.ex.com','ntp3.ex.com' ] }
그리고 설치됨이것ntp 모듈을 사용하고 다음과 같은 노드를 만들었습니다.
node testip {
include myconfig::ntpp
}
문제
/etc/puppet/modules/myconfig/manifests/init.pp
포함
class myconfig::ntpp {
include common
class {'ntp':
server_list => $ntpServerList
# server_list => ['ntp.ex.com'] # this works
}
}
$ntpServerList
나는 그것이 가능할 것이라고 기대했지만 그렇지 않습니다. 오류는 다음과 같습니다
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed to parse template ntp/ntp.conf.erb:
Filepath: /usr/lib/ruby/site_ruby/1.8/puppet/parser/templatewrapper.rb
Line: 64
Detail: Could not find value for 'server_list' at /etc/puppet/modules/ntp/templates/ntp.conf.erb:25
at /etc/puppet/modules/ntp/manifests/init.pp:183 on node testip
질문
내 수업에 무슨 문제가 있는지 알아낼 수 있는 사람이 있나요 myconfig::ntpp
?
답변1
변수를 완전히 한정해야 합니다. $common::data::ntpServerList
.
현재로서는 코드가 존재하지 않는 ntpServerList
로컬 범위( )에서 호출된 변수를 찾고 있으므로 역시 존재하지 않는 $myconfig::ntpp::ntpServerList
최상위 범위( )로 돌아갑니다 .$::ntpServerList
보다여기상세 사항은.