$::osfamily
마스터가 없는 Puppet 설정이 있고 이식성을 기반으로 패키지 이름 과 같은 일부 정보를 간단히 추가하고 싶습니다 . 히에라가 이런거에 맞게 디자인된거 같은데 실제로 어떻게 하는지 모르겠네요동일한 소스 저장소 내의 Puppet 매니페스트에서 소스 저장소의 Hiera 데이터 사용수정하지 마세요아무것존재하다 /etc
. 기본적으로 모든 문서는 다른 저장소를 사용할 때마다 수동으로 수정 /etc/puppetlabs/code/hiera.yaml
하거나 수정 하고 싶다고 가정하는 것 같습니다 . /etc/puppetlabs/puppet/puppet.conf
아니면 제가 Sheila를 완전히 오해하고 있는 걸까요?
필요한 경우 puppet.conf를 저장소에 추가하고 실행할 때마다 참조할 수 있지만 puppet apply
어떻게 참조합니까?현재 디렉터리루트로hiera_config
?
답변1
예, 소유되지 않은 설정으로 Hiera 데이터를 사용할 수 있습니다. hiera 구성에서 --hiera_config를 지정하면 hiera 데이터를 찾을 위치를 지정할 수 있습니다.
예:
nkts@trololo:/tmp/puppet$ puppet apply -t --modulepath=./modules/ --hiera_config=./hiera.conf manifests/a.pp
Notice: Compiled catalog for trololo.lan in environment production in 0.31 seconds
Info: Applying configuration version '1449108414'
Notice: test: bar
Notice: /Stage[main]/A/Notify[test: bar]/message: defined 'message' as 'test: bar'
Notice: Applied catalog in 0.02 seconds
nkts@trololo:/tmp/puppet$ cat hiera.conf
---
:backends: yaml
:yaml:
:datadir: /tmp/puppet/data
:hierarchy: common
:logger: console
nkts@trololo:/tmp/puppet$ cat data/common.yaml
a::foo: bar
nkts@trololo:/tmp/puppet$ cat manifests/a.pp
class { "a":
}
nkts@trololo:/tmp/puppet$ cat modules/a/manifests/init.pp
class a (
$foo = "default msg"
){
notify { "test: $foo":
}
}
nkts@trololo:/tmp/puppet$ rm data/common.yaml
nkts@trololo:/tmp/puppet$ puppet apply -t --modulepath=./modules/ --hiera_config=./hiera.conf manifests/a.pp
Notice: Compiled catalog for trololo.lan in environment production in 0.32 seconds
Info: Applying configuration version '1449108454'
Notice: test: default msg
Notice: /Stage[main]/A/Notify[test: default msg]/message: defined 'message' as 'test: default msg'
Notice: Applied catalog in 0.02 seconds
nkts@trololo:/tmp/puppet$