Puppet แแ แแก แแแแคแแแฃแ แแชแแแก แแแ แแแแก แกแแกแขแแแ. แแแ แแแแแแงแแแแแ แแแกแแแแซแแแแแก แกแแกแฃแ แแแ แแแแแแแ แแแแแจแ แแแกแแงแแแแแ แแ แแ แแแแแแแ แแแแแก แจแแกแแแแ แฉแฃแแแแแแ.
แแ แฃแแแ แฎแฃแ แฌแแแแ แแแขแแ แแแฃแจแแแ Puppet-แแแ. แแก แขแแฅแกแขแ แแ แกแแแแแแ แแ แแก แแคแแชแแแแฃแ แ แแแแฃแแแแขแแชแแแก แซแแ แแแแแ แแฃแแฅแขแแแแก แแแ แแแแแแ แแ แฎแแแแฎแแ แแแแแแแแฃแแ แแแแแแแแชแแ, แ แแช แแแแฌแงแแแแแแแแก แกแแจแฃแแแแแแก แแแกแชแแแก แกแฌแ แแคแแ แแแแแแ แแแฏแแแแแแก แแ แกแ.
แซแแ แแแแแ แแแคแแ แแแชแแ
Puppet-แแก แแแแ แแชแแฃแแ แกแแกแขแแแ แแ แแก แแแแแแข-แกแแ แแแ แ, แแฃแแชแ แแก แแกแแแ แแฎแแ แก แฃแญแแ แก แฃแกแแ แแแ แฃแ แแฃแจแแแแแก แจแแแฆแฃแแฃแแ แคแฃแแฅแชแแแแแ แแแแ.
แแแฅแแแแแแแก pull แแแแแแ แแแแแแงแแแแแ: แแแแฃแแแกแฎแแแแแ, แงแแแแ แแแฎแแแแ แกแแแแจแ แแ แแฎแแ แแแแแแขแแแ แแแฃแแแแจแแ แแแแแแ แกแแ แแแ แก แแแแคแแแฃแ แแชแแแกแแแแก แแ แแงแแแแแแ แแแก. แแฃ แแฅแแแ แแฃแจแแแแแแ Ansible-แแแ, แแแจแแ แแกแแแ แแงแแแแแแ แกแฎแแแแแกแฎแแ push-แแแแแแก: แแแแแแแกแขแ แแขแแ แ แแฌแงแแแก แแแแคแแแฃแ แแชแแแก แแแแแงแแแแแแก แแ แแชแแกแก, แแแแแ แแแแแแขแแแ แแ แแคแแ แก แแแแแแงแแแแแแ.
แฅแกแแแฃแ แ แแแแฃแแแแแชแแแก แแ แแก แแแแแแงแแแแแ แแ แแฎแ แแแ TLS แแแจแแคแแ แ: แกแแ แแแ แก แแ แแแแแแขแก แแฅแแ แกแแแฃแแแ แ แแแ แแแ แแแกแแฆแแแแแ แแ แจแแกแแแแแแกแ แกแแ แแแคแแแแขแแแ. แ แแแแ แช แฌแแกแ, แกแแ แแแ แ แแแกแชแแแก แกแแ แแแคแแแแขแแแก แแแแแแขแแแแกแแแแก, แแแแ แแ แแ แแแชแแแจแ แจแแกแแซแแแแแแแ แแแ แ CA-แก แแแแแงแแแแแ.
แแแแแคแแกแขแแแแก แจแแกแแแแแ
แแแฏแแแแแแก แขแแ แแแแแแแแแแจแ แแแ แแแแแขแฃแ แกแแ แแแ แแ แแแแแแจแแ แแแ แแแแแซแแแ (แแแแแซแแแ). แแแแแซแแแแก แแแแคแแแฃแ แแชแแ แแแฌแแ แแแแ แแแแแคแแกแขแแแจแ แกแแแชแแแแฃแ แแ แแแ แแแแ แแแแก แแแแแ - Puppet DSL.
Puppet DSL แแ แแก แแแแแแ แแชแแฃแแ แแแ. แแแ แแฆแฌแแ แก แแแแแซแแก แกแแกแฃแ แแแ แแแแแแแ แแแแแก แแแแแแแแฃแแแฃแ แ แ แแกแฃแ แกแแแแก แแแแแแ แแชแแแแแก แกแแฎแแ, แแแแแแแแแ:
- แคแแแแ แแ แกแแแแแก แแ แแแก แแฅแแก แแแแแ แแขแฃแแ แจแแแแแ แกแ.
- แแแแแขแ แแแแแแขแแแแแฃแแแ.
- แแแแกแแฎแฃแ แแแ แแแแฌแงแ.
แ แแกแฃแ แกแแแ แจแแแซแแแแ แแงแแก แแ แแแแแแแแแ แแแแแแจแแ แแแฃแแ:
- แแ แกแแแแแก แแแแแแแแแแฃแแแแแแ, แแกแแแ แแแแแแแแก แแฎแแแแแ แ แแกแฃแ แกแแแแก แแแแแงแแแแแแก แแแแแแแแแแ แแแแแ.
แแแแแแแแแ, โแฏแแ แแแแแแกแขแแแแ แแ แแแแแขแ, แจแแแแแ แจแแชแแแแแ แแแแคแแแฃแ แแชแแแก แคแแแแ, แจแแแแแ แแแแฌแงแแ แกแแ แแแกแโ. - แแ แแก แจแแขแงแแแแแแแแแ - แแฃ แ แแกแฃแ แกแ แจแแแชแแแแ, แแก แแแแแแแแก แจแแขแงแแแแแแแแแก แแแกแแ แแแแแฌแแ แแ แ แแกแฃแ แกแแแแ.
แแแแแแแแแ, แแฃ แแแแคแแแฃแ แแชแแแก แคแแแแ แแชแแแแแ, แจแแแแซแแแแ แแแขแแแแขแฃแ แแ แแแแแขแแแ แแแ แกแแ แแแกแ.
แแแ แแ แแแแกแ, Puppet DSL-แก แแฅแแก แคแฃแแฅแชแแแแ แแ แชแแแแแแแ, แแกแแแ แแแ แแแแแ แแแแชแฎแแแแแแแ แแ แกแแแแฅแขแแ แแแ. แแกแแแ แแฎแแ แแแญแแ แแแแ แกแฎแแแแแกแฎแแ แจแแแแแแแก แแแฅแแแแแแแแ - EPP แแ ERB.
แแแฏแแแ แแแฌแแ แแแแ แ แฃแแแจแ, แแแแขแแ แแแแ แ แแแแกแขแ แฃแฅแชแแ แแ แขแแ แแแแ แแฅแแแแ แแ แแก แแฆแแแฃแแ. Ruby แกแแจแฃแแแแแแก แแแซแแแแ แแแแคแแ แแแแแ Puppet - แแแแแแขแแ แ แแฃแแ แแแแแแ, แแฎแแแ แขแแแแก แ แแกแฃแ แกแแแ, แคแฃแแฅแชแแแแ.
แกแแแแ Puppet แแฃแจแแแแก, แกแแ แแแ แแก แแแแแแฃแแ แแแแแ แแขแฃแแ แแแแแซแแก แแแแแคแแกแขแแแ แจแแแแแแแแแ แแแ แแฅแขแแ แแแจแ. แแแ แแฅแขแแ แแ แแ แแก แ แแกแฃแ แกแแแแก แกแแ แแ แแแแ แฃแ แแแแ แแแแแแ แคแฃแแฅแชแแแแแก, แชแแแแแแแแก แแแแจแแแแแแแแก แแ แแแ แแแแแ แแแแชแฎแแแแแแแแก แแแคแแ แแแแแแก แแแแแแแแแก แจแแแแแ.
แกแแแขแแฅแกแ แแ แแแแแก แกแขแแแ
แแฅ แแแชแแแฃแแแ แแคแแชแแแแฃแ แ แแแแฃแแแแขแแชแแแก แกแแฅแชแแแแ, แ แแแแแแแช แแแแแฎแแแ แแแแ แแแแแแ แกแแแขแแฅแกแ, แแฃ แแแฌแแแแแฃแแ แแแแแแแแแแ แกแแแแแ แแกแ แแ แแ แแก:
แกแฎแแแแแกแฎแแ แแแแแ แแแ แแแแกแขแ แฃแฅแชแแแก แกแแแขแแฅแกแ. แ แแกแฃแ แกแแก แกแแแขแแฅแกแ. แกแแแขแแฅแกแ แแแแแซแแแแก แแฆแฌแแ แแกแแแแก.
แแ, แแแแแแแแ แแแแกแ, แแฃ แ แแแแ แแแแแแงแฃแ แแแ แแแแแคแแกแขแ:
# ะะพะผะผะตะฝัะฐัะธะธ ะฟะธััััั, ะบะฐะบ ะธ ะผะฝะพะณะพ ะณะดะต, ะฟะพัะปะต ัะตัััะบะธ.
#
# ะะฟะธัะฐะฝะธะต ะบะพะฝัะธะณััะฐัะธะธ ะฝะพะดั ะฝะฐัะธะฝะฐะตััั ั ะบะปััะตะฒะพะณะพ ัะปะพะฒะฐ node,
# ะทะฐ ะบะพัะพััะผ ัะปะตะดัะตั ัะตะปะตะบัะพั ะฝะพะดั โ ั
ะพััะฝะตะนะผ (ั ะดะพะผะตะฝะพะผ ะธะปะธ ะฑะตะท)
# ะธะปะธ ัะตะณัะปััะฝะพะต ะฒััะฐะถะตะฝะธะต ะดะปั ั
ะพััะฝะตะนะผะพะฒ, ะธะปะธ ะบะปััะตะฒะพะต ัะปะพะฒะพ default.
#
# ะะพัะปะต ััะพะณะพ ะฒ ัะธะณััะฝัั
ัะบะพะฑะบะฐั
ะพะฟะธััะฒะฐะตััั ัะพะฑััะฒะตะฝะฝะพ ะบะพะฝัะธะณััะฐัะธั ะฝะพะดั.
#
# ะะดะฝะฐ ะธ ัะฐ ะถะต ะฝะพะดะฐ ะผะพะถะตั ะฟะพะฟะฐััั ะฟะพะด ะฝะตัะบะพะปัะบะพ ัะตะปะตะบัะพัะพะฒ. ะัะพ ะฟัะธะพัะธัะตั
# ัะตะปะตะบัะพัะพะฒ ะฝะฐะฟะธัะฐะฝะพ ะฒ ััะฐััะต ะฟัะพ ัะธะฝัะฐะบัะธั ะพะฟะธัะฐะฝะธั ะฝะพะด.
node 'hostname', 'f.q.d.n', /regexp/ {
# ะะพะฝัะธะณััะฐัะธั ะฟะพ ัััะธ ัะฒะปัะตััั ะฟะตัะตัะธัะปะตะฝะธะตะผ ัะตััััะพะฒ ะธ ะธั
ะฟะฐัะฐะผะตััะพะฒ.
#
# ะฃ ะบะฐะถะดะพะณะพ ัะตััััะฐ ะตััั ัะธะฟ ะธ ะฝะฐะทะฒะฐะฝะธะต.
#
# ะะฝะธะผะฐะฝะธะต: ะฝะต ะผะพะถะตั ะฑััั ะดะฒัั
ัะตััััะพะฒ ะพะดะฝะพะณะพ ัะธะฟะฐ ั ะพะดะธะฝะฐะบะพะฒัะผะธ ะฝะฐะทะฒะฐะฝะธัะผะธ!
#
# ะะฟะธัะฐะฝะธะต ัะตััััะฐ ะฝะฐัะธะฝะฐะตััั ั ะตะณะพ ัะธะฟะฐ. ะขะธะฟ ะฟะธัะตััั ะฒ ะฝะธะถะฝะตะผ ัะตะณะธัััะต.
# ะัะพ ัะฐะทะฝัะต ัะธะฟั ัะตััััะพะฒ ะฝะฐะฟะธัะฐะฝะพ ะฝะธะถะต.
#
# ะะพัะปะต ัะธะฟะฐ ะฒ ัะธะณััะฝัั
ัะบะพะฑะบะฐั
ะฟะธัะตััั ะฝะฐะทะฒะฐะฝะธะต ัะตััััะฐ, ะฟะพัะพะผ ะดะฒะพะตัะพัะธะต,
# ะดะฐะปััะต ะธะดัั ะพะฟัะธะพะฝะฐะปัะฝะพะต ะฟะตัะตัะธัะปะตะฝะธะต ะฟะฐัะฐะผะตััะพะฒ ัะตััััะฐ ะธ ะธั
ะทะฝะฐัะตะฝะธะน.
# ะะฝะฐัะตะฝะธั ะฟะฐัะฐะผะตััะพะฒ ัะบะฐะทัะฒะฐัััั ัะตัะตะท ั.ะฝ. hash rocket (=>).
resource { 'title':
param1 => value1,
param2 => value2,
param3 => value3,
}
}
แจแแฌแแแ แแ แฎแแแแก แฌแงแแแขแแแ แแ แแ แแก แแแแแคแแกแขแแก แแฃแชแแแแแแแ แแแฌแแแ, แแแแ แแ แแ แกแแแแแก แ แแแแแแแแแ แแแฃแแ
- แแ แแแแแแงแแแแแ แแ แกแแแ แชแแแแ แจแแฌแแแ, แฉแแแแ แแแแ.
- แฎแแแฃแแ แแ แแแแขแแแ แแแแแงแแคแแแแ แแแขแแ แแแแแ; แแกแฎแแแแ แแแฌแแแแแแ แแ แแ แแก แแแแแงแแคแแแ แแแขแแ แแแแแ.
- แแซแแแแแแ แงแแแแแ แแแ แแแแขแ แแก แจแแแแแ, แแแแ แแแ แแแแขแ แแก แฉแแแแแแ. แแแแแแฃแแ แแแ แแแแขแ แ แชแแแแ แฎแแแจแแ. แแแแแแแแแแกแ แแแแแแแ แจแแแแฎแแแแแกแแแแก แแแ แแแแขแ แแแแก แแ แแ แแ แแแ แแแแขแ แแก แแแ แแจแ: แจแแแแซแแแแ แแแฌแแ แแ แแ แ แฎแแแแ แแ แแซแแแแก แแแ แแจแ (แ.แ.
resource { 'title': }
ะธresource { 'title': param => value }
). - แแแ แแแแขแ แแแแ แแกแ แแแ แฃแแแ แแงแแก แแแแแ แแแแแแ.
- แแแ แฌแแ แแฌแแ แแแ แ แแกแฃแ แกแแแแแ แฃแ แแแแ แแแแแก แแกแ แแแ.
แคแแแแแแแก แแแแแแแแแแแ แแแแ pappetserver-แแ
แแแแแขแแแแแ แแฎแกแแ-แแแแแแ แขแแแแกแแแแก แแ แจแแแแแแแแแแแแ "root directory" แแแแชแแคแชแแแก. root แแแ แแฅแขแแ แแ แแ แแก แแแ แแฅแขแแ แแ, แ แแแแแแช แจแแแชแแแก Puppet-แแก แแแแคแแแฃแ แแชแแแก แแแแแ แแขแฃแแ แแแแแซแแกแแแแก.
root แแแ แแฅแขแแ แแ แแแแกแฎแแแแแแแ Puppet-แแก แแแ แกแแแกแ แแ แแแแแงแแแแแฃแแ แแแ แแแแก แแแฎแแแแแ. แแแ แแแ แแ แแก แแแแคแแแฃแ แแชแแแก แแแแแฃแแแแแแแแ แแแแ แแแ, แ แแแแแแแช แแแแฎแแแ แชแแแแแฃแ แแแ แแฅแขแแ แแแจแ. แฉแแแฃแแแแ แแ แแแแแแงแแแแแ git-แแแ แแ แแแ, แแ แจแแแแฎแแแแแจแ แแแ แแแ แแฅแแแแแ git แขแแขแแแแแแ. แจแแกแแแแแแกแแ, แแแแแแฃแแ แแแแแซแ แแแแแแ แแแแก แแแ แแฃ แแ แแแ แแแแจแ. แแแแก แแแแคแแแฃแ แแชแแ แจแแกแแซแแแแแแแ แแแแแ แแแแแซแแ, แแ ENC-แจแ, แ แแแแช แจแแแแแ แกแขแแขแแแจแ แแแกแแฃแแ แแ.
- แแแกแแแ แแแ แกแแแจแ ("แซแแแแ แแแฏแแแ") แกแแแแแแกแ แแแ แแฅแขแแ แแ แแงแ
/etc/puppet
. แแแ แแแแก แแแแแงแแแแแ แแ แฉแแแแแแ - แแแแแแแแแ, แฉแแแ แแ แแแงแแแแแ แแแ แซแแแ แแแฏแแแแกแแแ แแ แแแ. แแฃ แแแ แแแ แแแแแแงแแแแแ, แแกแแแ แฉแแแฃแแแแ แแ แแแแฎแแแ/etc/puppet/environments
, root แแแ แแฅแขแแ แแ แแฅแแแแ แแแ แแแแก แแแ แแฅแขแแ แแ. แแฃ แแแ แแแ แแ แแ แแก แแแแแงแแแแแฃแแ, root แแแ แแฅแขแแ แแ แแฅแแแแ แกแแแแแแกแ แแแ แแฅแขแแ แแ. - แแแแแฎแ แแแ แกแแแแแ แแแฌแงแแแฃแแ (โแแฎแแแ แแแฏแแแโ) แแแ แแแแก แแแแแงแแแแแ แแแฎแแ แกแแแแแแแแฃแแ แแ แกแแแแแแกแ แแแ แแฅแขแแ แแ แแแแแแแแ
/etc/puppetlabs/code
. แจแแกแแแแแแกแแ, แแแ แแแ แแแแฎแแแ/etc/puppetlabs/code/environments
, root แแแ แแฅแขแแ แแ แแ แแก แแแ แแแแก แแแ แแฅแขแแ แแ.
root แแแ แแฅแขแแ แแแจแ แฃแแแ แแงแแก แฅแแแแแ แแฅแขแแ แแ manifests
, แ แแแแแแช แจแแแชแแแก แแแแแซแแแแก แแฆแฌแแ แแก แแ แ แแ แแแข แแแแแคแแกแขแก. แแแ แแ แแแแกแ, แฃแแแ แแ แกแแแแแแแก แฅแแแแแ แแฅแขแแ แแ modules
, แ แแแแแแช แจแแแชแแแก แแแแฃแแแแก. แ แ แแแแฃแแแแแ แชแแขแ แแแแแแแแแแแ แแแขแงแแแ. แแแ แแ แแแแกแ, แซแแแ แแแฏแแแแก แจแแแซแแแแ แฐแฅแแแแแก แฅแแแแแ แแฅแขแแ แแแช files
, แ แแแแแแช แจแแแชแแแก แกแฎแแแแแกแฎแแ แคแแแแแแก, แ แแแแแแกแแช แแแแแแแ แแแ แแแแแซแแแจแ. แแฎแแ Puppet-แจแ แงแแแแ แคแแแแ แแแแแแกแแแฃแแแ แแแแฃแแแแจแ.
Manifest แคแแแแแแก แแฅแแ แแแคแแ แแแแแ .pp
.
แ แแแแแแแแ แกแแแ แซแแแ แแแแแแแแ
แแแแแซแแกแ แแ แแแกแแ แแ แกแแแฃแแ แ แแกแฃแ แกแแก แแฆแฌแแ แ
แแแแแซแแ server1.testdomain
แฃแแแ แจแแแฅแแแแก แคแแแแ /etc/issue
แจแแแแแ แกแแ Debian GNU/Linux n l
. แคแแแแ แฃแแแ แแแฃแแแแแแแก แแแแฎแแแ แแแแแก แแ แฏแแฃแคแก root
, แฌแแแแแแก แฃแคแแแแแแ แฃแแแ แแงแแก 644
.
แฉแแแ แแฌแแ แ แแแแแคแแกแขแก:
node 'server1.testdomain' { # ะฑะปะพะบ ะบะพะฝัะธะณััะฐัะธะธ, ะพัะฝะพัััะธะนัั ะบ ะฝะพะดะต server1.testdomain
file { '/etc/issue': # ะพะฟะธััะฒะฐะตะผ ัะฐะนะป /etc/issue
ensure => present, # ััะพั ัะฐะนะป ะดะพะปะถะตะฝ ัััะตััะฒะพะฒะฐัั
content => 'Debian GNU/Linux n l', # ั ะฝะตะณะพ ะดะพะปะถะฝะพ ะฑััั ัะฐะบะพะต ัะพะดะตัะถะธะผะพะต
owner => root, # ะฟะพะปัะทะพะฒะฐัะตะปั-ะฒะปะฐะดะตะปะตั
group => root, # ะณััะฟะฟะฐ-ะฒะปะฐะดะตะปะตั
mode => '0644', # ะฟัะฐะฒะฐ ะฝะฐ ัะฐะนะป. ะะฝะธ ะทะฐะดะฐะฝั ะฒ ะฒะธะดะต ัััะพะบะธ (ะฒ ะบะฐะฒััะบะฐั
), ะฟะพัะพะผั ััะพ ะธะฝะฐัะต ัะธัะปะพ ั 0 ะฒ ะฝะฐัะฐะปะต ะฑัะดะตั ะฒะพัะฟัะธะฝััะพ ะบะฐะบ ะทะฐะฟะธัะฐะฝะฝะพะต ะฒ ะฒะพััะผะตัะธัะฝะพะน ัะธััะตะผะต, ะธ ะฒัั ะฟะพะนะดัั ะฝะต ัะฐะบ, ะบะฐะบ ะทะฐะดัะผะฐะฝะพ
}
}
แฃแ แแแแ แแแแแแ แ แแกแฃแ แกแแแก แจแแ แแก แแแแแซแแ
แแแแแซแแ server2.testdomain
nginx แฃแแแ แแงแแก แแแจแแแแฃแแ, แแฃแจแแแแก แแแ แ แแแแแแแแแฃแแ แแแแคแแแฃแ แแชแแแ.
แแแแแ แแแแฎแกแแแ แแ แแแแแแ:
- แกแแญแแ แแ แแแแแขแแก แแแงแแแแแ
nginx
. - แแฃแชแแแแแแแแ แแแแคแแแฃแ แแชแแแก แคแแแแแแแก แแแแแ แแแ แกแแ แแแ แแแแ.
- แกแแญแแ แแ แกแแ แแแกแแก แแแจแแแแ
nginx
. - แแฃ แแแแคแแแฃแ แแชแแ แแแแแฎแแแแฃแแแ, แกแแ แแแกแ แฃแแแ แแแแแขแแแ แแแ.
แฉแแแ แแฌแแ แ แแแแแคแแกแขแก:
node 'server2.testdomain' { # ะฑะปะพะบ ะบะพะฝัะธะณััะฐัะธะธ, ะพัะฝะพัััะธะนัั ะบ ะฝะพะดะต server2.testdomain
package { 'nginx': # ะพะฟะธััะฒะฐะตะผ ะฟะฐะบะตั nginx
ensure => installed, # ะพะฝ ะดะพะปะถะตะฝ ะฑััั ัััะฐะฝะพะฒะปะตะฝ
}
# ะััะผะฐั ัััะตะปะบะฐ (->) ะณะพะฒะพัะธั ะพ ัะพะผ, ััะพ ัะตัััั ะฝะธะถะต ะดะพะปะถะตะฝ
# ัะพะทะดะฐะฒะฐัััั ะฟะพัะปะต ัะตััััะฐ, ะพะฟะธัะฐะฝะฝะพะณะพ ะฒััะต.
# ะขะฐะบะธะต ะทะฐะฒะธัะธะผะพััะธ ััะฐะฝะทะธัะธะฒะฝั.
-> file { '/etc/nginx': # ะพะฟะธััะฒะฐะตะผ ัะฐะนะป /etc/nginx
ensure => directory, # ััะพ ะดะพะปะถะฝะฐ ะฑััั ะดะธัะตะบัะพัะธั
source => 'puppet:///modules/example/nginx-conf', # ะตั ัะพะดะตัะถะธะผะพะต ะฝัะถะฝะพ ะฑัะฐัั ั ะฟะฐะฟะฟะตั-ัะตัะฒะตัะฐ ะฟะพ ัะบะฐะทะฐะฝะฝะพะผั ะฐะดัะตัั
recurse => true, # ะบะพะฟะธัะพะฒะฐัั ัะฐะนะปั ัะตะบัััะธะฒะฝะพ
purge => true, # ะฝัะถะฝะพ ัะดะฐะปััั ะปะธัะฝะธะต ัะฐะนะปั (ัะต, ะบะพัะพััั
ะฝะตั ะฒ ะธััะพัะฝะธะบะต)
force => true, # ัะดะฐะปััั ะปะธัะฝะธะต ะดะธัะตะบัะพัะธะธ
}
# ะะพะปะฝะธััะฐั ัััะตะปะบะฐ (~>) ะณะพะฒะพัะธั ะพ ัะพะผ, ััะพ ัะตัััั ะฝะธะถะต ะดะพะปะถะตะฝ
# ะฟะพะดะฟะธัะฐัััั ะฝะฐ ะธะทะผะตะฝะตะฝะธั ัะตััััะฐ, ะพะฟะธัะฐะฝะฝะพะณะพ ะฒััะต.
# ะะพะปะฝะธััะฐั ัััะตะปะบะฐ ะฒะบะปััะฐะตั ะฒ ัะตะฑั ะฟััะผัั (->).
~> service { 'nginx': # ะพะฟะธััะฒะฐะตะผ ัะตัะฒะธั nginx
ensure => running, # ะพะฝ ะดะพะปะถะตะฝ ะฑััั ะทะฐะฟััะตะฝ
enable => true, # ะตะณะพ ะฝัะถะฝะพ ะทะฐะฟััะบะฐัั ะฐะฒัะพะผะฐัะธัะตัะบะธ ะฟัะธ ััะฐััะต ัะธััะตะผั
}
# ะะพะณะดะฐ ัะตัััั ัะธะฟะฐ service ะฟะพะปััะฐะตั ัะฒะตะดะพะผะปะตะฝะธะต,
# ัะพะพัะฒะตัััะฒัััะธะน ัะตัะฒะธั ะฟะตัะตะทะฐะฟััะบะฐะตััั.
}
แแแแกแแแแแก, แ แแ แแก แแแฃแจแแแก, แแญแแ แแแแแ แแแแฎแแแแแแ แจแแแแแแ แคแแแแแก แแแแแแแแแแแ แแแแ แแแ แแแแแขแฃแ แกแแ แแแ แแ:
/etc/puppetlabs/code/environments/production/ # (ััะพ ะดะปั ะฝะพะฒะพะณะพ ะะฐะฟะฟะตัะฐ, ะดะปั ััะฐัะพะณะพ ะบะพัะฝะตะฒะพะน ะดะธัะตะบัะพัะธะตะน ะฑัะดะตั /etc/puppet)
โโโ manifests/
โ โโโ site.pp
โโโ modules/
โโโ example/
โโโ files/
โโโ nginx-conf/
โโโ nginx.conf
โโโ mime.types
โโโ conf.d/
โโโ some.conf
แ แแกแฃแ แกแแแแก แขแแแแแ
แแฎแแ แแแญแแ แแแ แ แแกแฃแ แกแแแแก แขแแแแแแก แกแ แฃแแ แกแแ แจแแแแซแแแแ แแฎแแแแ แแฅ
แคแแแแ
แแแ แแแแก แคแแแแแแก, แแแขแแแแแแแก, แกแแแแแแฃแ แแแฃแแแแก, แแแ แจแแแแแ แกแก แแ แฌแแแแแแก แฃแคแแแแแแก.
แแแ แแแแขแ แแแ:
- แ แแกแฃแ แกแแก แกแแฎแแแ - แคแแแแแก แแแ (แกแฃแ แแแแแกแแแแแ )
- แแแ - แคแแแแแก แแแ (แแฃ แกแแฎแแแ แแ แแ แแก แแแแแแแแฃแแ)
- แฃแแ แฃแแแแแงแแก - แคแแแแแก แขแแแ:
absent
- แฌแแจแแแ แคแแแแpresent
โ แฃแแแ แแงแแก แแแแแกแแแแ แ แขแแแแก แคแแแแ (แแฃ แคแแแแ แแ แแ แแก, แจแแแฅแแแแแ แฉแแแฃแแแแ แแแ แคแแแแ)file
- แฉแแแฃแแแแ แแแ แคแแแแdirectory
- แแแ แแฅแขแแ แแlink
- แกแแแแแแแ
- แจแแแแแ แกแ โ แคแแแแแก แจแแแแแแกแ (แแแแแแแแแ แแฎแแแแ แฉแแแฃแแแแ แแแ แคแแแแแแแกแแแแก, แแ แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก แแ แแแ แฌแงแแ แ แแ แกแแแแแแ)
- แฌแงแแ แ โ แแแฃแแ แแ แแแแแแแ, แกแแแแแแแช แแกแฃแ แ แคแแแแแก แจแแแแแ แกแแก แแแแแ แแแ (แแ แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก แแ แแแ แจแแแแแ แกแ แแ แกแแแแแแ). แจแแแซแแแแ แแแแแแแแฃแแ แแงแแก แ แแแแ แช URI แกแฅแแแแ
puppet:
(แจแแแแแ แแแแแงแแแแแฃแแ แแฅแแแแ แคแแแแแแ แแแ แแแแแขแฃแแ แกแแ แแแ แแแแ) แแ แกแฅแแแแhttp:
(แแแแแ แแแฅแแก, แแแกแแแแแแ, แ แ แแแฎแแแแ แแ แจแแแแฎแแแแแจแ) แแ แแฃแแแแช แแแแแ แแแแfile:
แแ แ แแแแ แช แแแกแแแฃแขแฃแ แ แแแ แกแฅแแแแก แแแ แแจแ (แแแจแแ แแแแแงแแแแแฃแแ แแฅแแแแ แคแแแแ แแแแแแแแ แแแ FS-แแแ แแแแแซแแ) - แกแแแแแแ - แกแแแแช แฃแแแ แแงแแก แแแแแแแแฃแแ แกแแแแแแแ (แแ แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก แแ แแแ แจแแแแแ แกแ แแ แฌแงแแ แ)
- แแคแแแแแแ - แแแแฎแแแ แแแแแ, แ แแแแแแช แฃแแแ แคแแแแแแก แคแแแแก
- แฏแแฃแคแ - แฏแแฃแคแ, แ แแแแแกแแช แคแแแแ แฃแแแ แแแแแฃแแแแแแแแแก
- แ แแแแแ - แคแแแแแก แแแแแ แแแแแ (แกแขแ แแฅแแแแก แกแแฎแแ)
- แฃแแฃแชแแแ - แฉแแ แแแแก แ แแแฃแ แกแแฃแ แแแ แแฅแขแแ แแแจแ แแแแฃแจแแแแแแก
- แแแแแฏแแ - แกแแจแฃแแแแแแก แแแซแแแแ แฌแแจแแแแ แคแแแแแแ, แ แแแแแแแช แแ แแ แแก แแฆแฌแแ แแแ Puppet-แจแ
- แแแซแฃแแแแก - แกแแจแฃแแแแแแก แแแซแแแแ แฌแแจแแแแ แแแ แแฅแขแแ แแแแแ, แ แแแแแแแช แแ แแ แแก แแฆแฌแแ แแแ Puppet-แจแ
แแแแแขแ
แแงแแแแแก แแ แจแแแก แแแแแขแแแก. แจแแฃแซแแแ แจแแขแงแแแแแแแแแแก แแแแฃแจแแแแแ - แฎแแแแฎแแ แแแแแแกแขแแแแ แแแก แแแแแขแก, แแฃ แแแแแแแแฃแแแ แแแ แแแแขแ แ reinstall_on_refresh.
แแแ แแแแขแ แแแ:
- แ แแกแฃแ แกแแก แกแแฎแแแ - แแแแแขแแก แกแแฎแแแ (แกแฃแ แแแแแกแแแแแ )
- แกแแฎแแแ - แแแแแขแแก แกแแฎแแแ (แแฃ แกแแฎแแแจแ แแ แแ แแก แแแแแแแแฃแแ)
- แแ แแแแแแแ แ - แแแแแกแแงแแแแแแแ แแแแแขแแก แแแแแฏแแ แ
- แฃแแ แฃแแแแแงแแก - แแแแแขแแก แกแแกแฃแ แแแแ แแแแแแแ แแแแ:
present
,installed
- แแแแแกแขแแแแ แแแฃแแ แแแแแกแแแแ แ แแแ แกแแlatest
- แแแแแกแขแแแแ แแแฃแแแ แฃแแฎแแแกแ แแแ แกแแabsent
- แฌแแจแแแแแ (apt-get remove
)purged
- แฌแแจแแแแแ แแแแคแแแฃแ แแชแแแก แคแแแแแแแแ แแ แแแ (apt-get purge
)held
- แแแแแขแแก แแแ แกแแ แแแแแแแแแแ (apt-mark hold
)ะปัะฑะฐั ะดััะณะฐั ัััะพะบะฐ
โ แแแแแแแแฃแแ แแแ แกแแ แแแแแกแขแแแแ แแแฃแแแ
- reinstall_on_refresh - แแฃ
true
, แจแแแแแ แจแแขแงแแแแแแแแก แแแฆแแแแกแแแแแแ แแแแแขแ แฎแแแแฎแแ แแแแแกแขแแแแ แแแแ. แกแแกแแ แแแแแแ แฌแงแแ แแแ แแแคแฃแซแแแแฃแแ แแแกแขแ แแแฃแชแแแแแกแแแแก, แกแแแแช แจแแกแแซแแแ แกแแญแแ แ แแแฎแแแก แแแแแขแแแแก แฎแแแแฎแแแ แแจแแแแแ build-แแก แแแ แแแแขแ แแแแก แจแแชแแแแกแแก. แแแแฃแแแกแฎแแแแfalse
.
แแแแกแแฎแฃแ แแแ
แแแ แแแแก แกแแ แแแกแแแก. แจแแฃแซแแแ แจแแขแงแแแแแแแแแแก แแแแฃแจแแแแแ - แแแแแแฎแแแแก แกแแ แแแกแก.
แแแ แแแแขแ แแแ:
- แ แแกแฃแ แกแแก แกแแฎแแแ โ แกแแแแ แแแแ แกแแ แแแกแ (แแ แแกแแแแแแแแฃแแ)
- แกแแฎแแแ โ แกแแ แแแกแ, แ แแแแแก แแแ แแแแช แกแแญแแ แแ (แแฃ แกแแฎแแแจแ แแ แแ แแก แแแแแแแแฃแแ)
- แฃแแ แฃแแแแแงแแก - แกแแ แแแกแแก แกแแกแฃแ แแแแ แแแแแแแ แแแแ:
running
- แแแแฌแงแstopped
- แแแฉแแ แแ
- แกแแจแฃแแแแแแก โ แแแแแขแ แแแแแก แกแแ แแแกแแก แแแฌแงแแแแก แจแแกแแซแแแแแแแแก:
true
โ แฉแแ แแฃแแแ autorun (systemctl enable
)mask
- แแแแแชแแฃแแ (systemctl mask
)false
- แแแขแแแแขแฃแ แ แแแจแแแแ แแแแแ แแฃแแแ (systemctl disable
)
- แแแแแขแแแ แแแ - แแ แซแแแแแ แกแแ แแแกแแก แแแแแขแแแ แแแแกแแแแก
- แกแขแแขแฃแกแ - แแ แซแแแแแ แแแแกแแฎแฃแ แแแแก แกแขแแขแฃแกแแก แจแแกแแแแฌแแแแแแ
- แฐแแ แแกแขแแ แขแ โ แแแฃแแแแแ, แแฎแแ แก แฃแญแแ แก แแฃ แแ แ แกแแ แแแกแแก initscript แแแแแขแแแ แแแแก. แแฃ
false
แแ แแแ แแแแขแ แ แแแแแแแแฃแแแ แแแแแขแแแ แแแ - แแแแแแงแแแแแ แแ แแแ แแแแขแ แแก แแแแจแแแแแแแ. แแฃfalse
แแ แแแ แแแแขแ แ แแแแแขแแแ แแแ แแ แแ แแก แแแแแแแแฃแแ - แกแแ แแแกแ แจแแฉแแ แแแฃแแแ แแ แแแแฌแงแ แแแแแขแแแ แแแ (แแแแ แแ systemd แแงแแแแแก แแ แซแแแแแแกsystemctl restart
). - แแฅแแก แกแขแแขแฃแกแ โ แแแฃแแแแแ, แแฎแแ แก แฃแญแแ แก แแฃ แแ แ แกแแ แแแกแแก initscript แแ แซแแแแแแก
status
. แแฃfalse
, แจแแแแแ แแแแแแงแแแแแ แแแ แแแแขแ แแก แแแแจแแแแแแแ แกแขแแขแฃแกแ. แแแแฃแแแกแฎแแแแtrue
.
แแฆแแแกแ แฃแแแแแแ
แแฌแแ แแแแแก แแแ แ แแ แซแแแแแแแก. แแฃ แแ แแแฃแแแแแแ แแแ แแแแขแ แแแก แฅแแแแก, แแฎแแแแ แแฃ, แแฃ แแ แแ แแแแแฎแแแแแ, แแ แซแแแแแ แจแแกแ แฃแแแแแ แงแแแแ แฏแแ แแ Puppet-แแก แแแจแแแแแกแแก. แจแแฃแซแแแ แจแแขแงแแแแแแแแแแก แแแแฃแจแแแแแ - แแฌแแ แแแแแก แแ แซแแแแแแก.
แแแ แแแแขแ แแแ:
- แ แแกแฃแ แกแแก แกแแฎแแแ - แแ แซแแแแแ แฃแแแ แจแแกแ แฃแแแแก (แกแฃแ แแแแแกแแแแแ )
- แแ แซแแแแแ โ แจแแกแแกแ แฃแแแแแแ แแ แซแแแแแ (แแฃ แกแแฎแแแจแ แแ แแ แแก แแแแแแแแฃแแ)
- แแแ โ แแแแแแแแ, แ แแแแแแจแแช แฃแแแ แแแซแแแแ แจแแกแ แฃแแแแแแ แคแแแแ
- แแฎแแแแ แแฃ - แแฃ แแ แแแ แแแแขแ แจแ แแแแแแแแฃแแ แแ แซแแแแแ แแแกแ แฃแแแแฃแแแ แแฃแแแแแแ แแแแ แฃแแแแแก แแแแแ, แแแแแแ แ แแ แซแแแแแ แจแแกแ แฃแแแแแ
- แแฃ แแ โ แแฃ แแ แแแ แแแแขแ แจแ แแแแแแแแฃแแ แแ แซแแแแแ แแแกแ แฃแแแแฃแแแ แแ แแแฃแแแแแแ แแแแ แฃแแแแแก แแแแแ, แแแแแแ แ แแ แซแแแแแ แจแแกแ แฃแแแแแ
- แฅแแแแก โ แแฃ แแ แแแ แแแแขแ แจแ แแแแแแแแฃแแ แคแแแแ แแ แแ แกแแแแแก, แแแแแแ แ แแ แซแแแแแ แจแแกแ แฃแแแแแ
- แแแแแฎแแแแแ - แแฃ
true
, แแแจแแ แแ แซแแแแแ แจแแกแ แฃแแแแแ แแฎแแแแ แแแจแแ, แ แแแแกแแช แแก exec แแแแฆแแแก แจแแขแงแแแแแแแแก แกแฎแแ แ แแกแฃแ แกแแแแแแ - cwd โ แแแ แแฅแขแแ แแ, แกแแแแแแแช แแฌแแ แแแแแก แแ แซแแแแแแก
- แแแแฎแแแ แแแแแ - แแแแฎแแแ แแแแแ, แแแกแแแแแช แแแฃแจแแแ แแ แซแแแแแ
- แแ แแแแแแแ แ - แ แแแแ แแฌแแ แแแแ แแ แซแแแแแ:
- posix โ แแแแจแแแก แแ แแชแแกแ แฃแแ แแแแ แจแแฅแแแแแแ, แแฃแชแแแแแแแ แแแฃแแแแแ แแแ
- shell - แแ แซแแแแแ แแแจแแแแฃแแแ แญแฃแ แแจแ
/bin/sh
, แจแแแซแแแแ แแ แแงแแก แแแแแแแแฃแแ แแแ, แจแแแแซแแแแ แแแแแแงแแแแ แแแแแแแแ, แแแแแแ แแ แญแฃแ แแแก แกแฎแแ แแแฎแแกแแแแแแแแแ. แ แแแแ แช แฌแแกแ, แแแแแแแแแแแแ แแแขแแแแขแฃแ แแ, แแฃ แแ แแก แ แแแแ แกแแแชแแแแฃแ แ แกแแแแแแ (|
,;
,&&
,||
แแ แ.แจ.)
cron
แแแแแขแ แแแแแก cronjob-แแแก.
แแแ แแแแขแ แแแ:
- แ แแกแฃแ แกแแก แกแแฎแแแ - แแฎแแแแ แแแ แแแแฃแแ แกแแฎแแก แแแแแขแแคแแแแขแแ แ
- แฃแแ แฃแแแแแงแแก - แแแแ แแแแแแก แแแแแแแ แแแแ:
present
- แจแแฅแแแ แแฃ แแ แแ แกแแแแแกabsent
- แฌแแจแแแ, แแฃ แแ แกแแแแแก
- แแ แซแแแแแ - แ แ แแ แซแแแแแ แแแฃแจแแ
- แแแ แแแแก - แ แแแแ แแแ แแแแจแ แฃแแแ แแแฃแจแแแ แแ แซแแแแแ (แแแ แแแแก แชแแแแแแแแก แกแแ แแ แแแแ แแแแจแแแแแแแแแ
=
) - แแแแฎแแแ แแแแแ - แ แแแแแ แแแแฎแแแ แแแแแกแแแ แแแฃแจแแแ แแ แซแแแแแ
- แฌแฃแแ, แกแแแแ, แแแแ แแก แแฆแ, แแแแก, แแแแก แแฆแ โ แ แแแแก แแแฃแจแแแ แแ แแแ. แแฃ แ แแแแแแแ แแขแ แแแฃแขแ แแ แแ แแก แแแแแแแแฃแแ, แแแกแ แแแแจแแแแแแแ แแ แแแขแแแจแ แแฅแแแแ
*
.
แแแฏแแแแจแ 6.0 cron แแแแฅแแก
แแแแแแแ แ แแกแฃแ แกแแแแก แจแแกแแฎแแ
แแแแฎแแแแแแ แ แแกแฃแ แกแแก แฃแแแแแแฃแ แแแแกแแแแก
แงแแแแแแ แแแแ แชแแแแแฃแแ แจแแชแแแแ, แ แแแแแกแแช แแฎแแแแแแ แแฃแแแแแแขแ แแแแแแ แแชแแ. แแก แจแแชแแแแ แฉแแแแแ, แ แแแแกแแช แแแ แแฅแขแแ แแแจแ แแแแแฉแแแแแ แแ แแ แแ แแแแแ แขแแแแก แแ แ แแ แแแขแ แ แแกแฃแ แกแ แแ แแ แแ แแแแแ แกแแฎแแแแ.
แแแแขแแ แแแแแ แแ แแฎแแ แแแแฌแแ : แแแแแคแแกแขแแแ แแ แแ แแ แแแแแ แแแแแซแแกแแแแก แแ แฃแแแ แจแแแชแแแแแก แแแแแ แขแแแแก แ แแกแฃแ แกแแแก แแแแแ แกแแแแฃแ แแ!
แแแแฏแแ แกแแญแแ แแ แแแแแขแแแแก แแแงแแแแแ แแแแแ แกแแฎแแแแ, แแแแ แแ แกแฎแแแแแกแฎแแ แแแแแขแแแแก แแแแแฏแแ แแแแ. แแ แจแแแแฎแแแแแจแ, แแฅแแแ แฃแแแ แแแแแแงแแแแ แแแ แแแแขแ แ name
แจแแชแแแแแก แแแแแแแ แแกแแชแแแแแแแ:
package { 'ruby-mysql':
ensure => installed,
name => 'mysql',
provider => 'gem',
}
package { 'python-mysql':
ensure => installed,
name => 'mysql',
provider => 'pip',
}
แ แแกแฃแ แกแแแแก แกแฎแแ แขแแแแแก แแฅแแ แแกแแแแกแ แแแ แแแแขแแแ, แ แแแ แแแแแแแ แแแชแแแแ แแฃแแแแ แแแ โ name
ั แแแแกแแฎแฃแ แแแ, command
ั แแฆแแแกแ แฃแแแแแแ, แแ แแกแ แจแแแแแ.
แแแขแแแแ แแแแขแ แแแ
แ แแกแฃแ แกแแก แแแแแแฃแ แขแแแก แแฅแแก แแแ แแแแฃแแ แกแแแชแแแแฃแ แ แแแ แแแแขแ แแแ, แแแฃแฎแแแแแแ แแแกแ แแฃแแแแแกแ.
แแแขแ แแแ แแแแขแ แแแแก แกแ แฃแแ แกแแ
แแแแแ แกแแ:
- แแแแแฎแแแก โ แแก แแแ แแแแขแ แ แแแฃแแแแแแก, แ แแแแ แ แแกแฃแ แกแแแแแ แแแแแแแแแแฃแแ แแก แ แแกแฃแ แกแ.
- แแแ แ - แแก แแแ แแแแขแ แ แแแแกแแแฆแแ แแแก แแฃ แ แแแแแ แ แแกแฃแ แกแแแแ แแแแแแแแแแฃแแ แแ แ แแกแฃแ แกแแ.
- แฎแแแแแฌแแ แ โ แแก แแแ แแแแขแ แ แแแแกแแแฆแแ แแแก, แแฃ แ แแแแแ แ แแกแฃแ แกแแแแแแ แแฆแแแก แจแแขแงแแแแแแแแแก แแก แ แแกแฃแ แกแ.
- แแชแแแแแก โ แแก แแแ แแแแขแ แ แแแแกแแแฆแแ แแแก, แ แแแแแ แ แแกแฃแ แกแแแ แแฆแแแแ แจแแขแงแแแแแแแแแก แแ แ แแกแฃแ แกแแแแ.
แงแแแแ แฉแแแแแแแแแ แแแขแแแแ แแแแขแ แ แแฆแแแก แแ แแ แ แ แแกแฃแ แก แแแฃแแก แแ แแแแแ แแขแฃแ แคแ แฉแฎแแแแแจแ แแแฃแแแแแก แแแกแแแก.
แแแฃแแแแ แ แแกแฃแ แกแแแแแ
แ แแกแฃแ แกแแก แแแฃแแ แฃแแ แแแแ แ แแกแฃแ แกแแก แฎแกแแแแแแ. แแกแแแ แซแแ แแแแแแ แแแแแแงแแแแแ แแแแแแแแแแฃแแแแแแแก แแฆแกแแแแจแแแแแ. แแ แแ แกแแแฃแ แ แแกแฃแ แกแแ แแแแแแแแ แแแแแแฌแแแแก แแแแแแแแชแแแก แจแแชแแแแแก.
แแแฃแแแก แกแแแขแแฅแกแ แแกแแแแ: แ แแกแฃแ แกแแก แขแแแ แแแแแ แฃแแ แแกแแแแแ (แแฃ แขแแแแก แกแแฎแแแ แจแแแชแแแก แแ แแแ แแ แฌแแ แขแแแก, แแแจแแ แกแแฎแแแแก แแแแแแฃแแ แแแฌแแแ แแ แฌแแ แขแแแก แจแแ แแก แแ แแก แแแแ แแกแแแแแ), แจแแแแแ แ แแกแฃแ แกแแก แกแแฎแแแ แแแแแ แแขแฃแ แคแ แฉแฎแแแแแจแ (แกแแฎแแแแก แจแแแแฎแแแแ แแ แแชแแแแแ!). แแ แฃแแแ แแงแแก แกแแแ แชแแแแ; แแแแแ แแขแฃแแ แคแ แฉแฎแแแแแ แแฌแแ แแแ แฃแจแฃแแแแ แขแแแแก แกแแฎแแแแก แจแแแแแ.
แแแแแแแแ:
file { '/file1': ensure => present }
file { '/file2':
ensure => directory,
before => File['/file1'],
}
file { '/file3': ensure => absent }
File['/file1'] -> File['/file3']
แแแแแแแแแแฃแแแแแแ แแ แจแแขแงแแแแแแแแแ
แ แแแแ แช แฃแแแ แแฆแแแแจแแแ, แ แแกแฃแ แกแแแก แจแแ แแก แแแ แขแแแ แแแแแแแแแแฃแแแแ แแแ แแแแแแแแแ. แกแฎแแแแ แจแแ แแก, แคแ แแฎแแแแ แแงแแแแ แแแแแแแแแแฃแแแแแแแก แแแแแขแแแแกแแก - แจแแแแซแแแแ แจแแฅแแแแ แชแแแแฃแ แ แแแแแแแแแแฃแแแแแแ, แ แแช แแแแแแฌแแแแก แแแแแแแแชแแแก แจแแชแแแแแก.
แแแแแแแแแแฃแแแแแกแแแ แแแแกแฎแแแแแแแ, แจแแขแงแแแแแแแแแ แแ แแ แแก แแแ แแแแแแแแ. แจแแขแงแแแแแแแแแแกแแแแก แแแแแแงแแแแแ แจแแแแแแ แฌแแกแแแ:
- แแฃ แ แแกแฃแ แกแ แแแแฆแแแก แจแแขแงแแแแแแแแก, แแก แแแแแฎแแแแแ. แแแแแฎแแแแแก แแแฅแแแแแแแแ แแแแแแแแแแฃแแแ แ แแกแฃแ แกแแก แขแแแแ โ แแฆแแแกแ แฃแแแแแแ แแฌแแ แแแแแก แแ แซแแแแแแก, แแแแกแแฎแฃแ แแแ แแแแแแฎแแแแก แกแแ แแแกแก, แแแแแขแ แฎแแแแฎแแ แแงแแแแแก แแแแแขแก. แแฃ แ แแกแฃแ แกแก แแ แแฅแแก แแแแกแแแฆแแ แฃแแ แแแแแฎแแแแแก แแแฅแแแแแแ, แแแจแแ แแ แแคแแ แ แฎแแแแ.
- Puppet-แแก แแ แแ แแแจแแแแแก แแ แแก แ แแกแฃแ แกแ แแแแแฎแแแแแ แแ แ แฃแแแขแแก แแ แแฎแแ. แแก แจแแกแแซแแแแแแแ, แ แแแแแ แจแแขแงแแแแแแแแแ แแแแชแแแก แแแแแแแแแแฃแแแแแแก แแ แแแแแแแแแแฃแแแแแก แแ แแคแแแ แแ แจแแแชแแแก แชแแแแแแก.
- แแฃ Puppet แชแแแแก แ แแกแฃแ แกแแก แแแแแแแ แแแแแก, แ แแกแฃแ แกแ แแแแแแแแก แจแแขแงแแแแแแแแแก แแแกแแ แแแแแฌแแ แแ แงแแแแ แ แแกแฃแ แกแแ.
- แแฃ แ แแกแฃแ แกแ แแแแแฎแแแแฃแแแ, แแก แแแแแแแแก แจแแขแงแแแแแแแแแก แแแกแแ แแแแแฌแแ แแ แงแแแแ แ แแกแฃแ แกแแ.
แแแฃแแฃแกแขแแแแแ แแแ แแแแขแ แแแแก แแแแฃแจแแแแแ
แ แแแแ แช แฌแแกแ, แแฃ แ แแแแแแแ แ แแกแฃแ แกแแก แแแ แแแแขแ แก แแ แแฅแแก แแแแฃแแแกแฎแแแแ แแแแจแแแแแแแ แแ แแก แแแ แแแแขแ แ แแ แแ แแก แแแแแแแแฃแแ แแแแแคแแกแขแจแ, แแแจแแ Puppet แแ แจแแชแแแแก แแ แแแแกแแแแก แแแแแซแแก แจแแกแแแแแแกแ แ แแกแฃแ แกแแกแแแแก. แแแแแแแแแ, แแฃ แขแแแแก แ แแกแฃแ แกแ แคแแแแ แแแ แแแแขแ แ แแ แแ แแก แแแแแแแแฃแแ owner
, แแแจแแ Puppet แแ แจแแชแแแแก แจแแกแแแแแแกแ แคแแแแแก แแคแแแแแแก.
แแแแกแแแแก, แชแแแแแแแแก แแ แแแแแแ แขแแแแแแก แจแแกแแแแแ
แแแแฃแจแแแ, แแแแฅแแก แ แแแแแแแแ แแแแแซแ, แ แแแแแแกแแช แแฅแแ แแแแคแแแฃแ แแชแแแก แแ แแ แแ แแแแแ แแแฌแแแ, แแแแ แแ แแกแแแ แแ แแก แแแแกแฎแแแแแแแแ - แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ แฉแแแ แจแแแแแซแแแ แแฆแแฌแแ แแ แแก แงแแแแแคแแ แ แแ แ แแแแแจแ node {}
. แ แ แแฅแแ แฃแแแ, แจแแแแซแแแแ แฃแแ แแแแ แแแแแแแแ แแ แแแแคแแแฃแ แแชแแแก แแแแแขแฃแ แ แแแฌแแแแแ, แแแแ แแ แแแแแแแ แแก แชแฃแแ แแแแแกแแแแแแ - แแแแคแแแฃแ แแชแแ แแแ แแแแ แแ แแฃ แแแแคแแแฃแ แแชแแแก แแแแแ แแแฌแแแก แจแแชแแแแ, แแแแ แแแ แแแแแฌแแแ แแแแแแก แ แแแแฅแขแแ แแแ. แแแแแแ แแฃแแแ, แแแแแแแ แจแแชแแแแแก แแแจแแแแ แแ แแแแแแแ, DRY (แแ แแแแแแแ แ) แแ แแแชแแแ แแแแแแแแแแก แแแแแแแ.
แแ แแ แแแแแแแก แแแแแกแแญแ แแแแ แแ แกแแแแแก แแกแแแ แแแแแแแ, แ แแแแ แแชแแ แแแแกแ.
แแแแกแแแ
แแแ แแแ แ แแแจแ แกแแญแแ แแ แแแแกแแก แแฆแฌแแ แ. แแแแแ แแฆแฌแแ แ แแ แกแแ แแ แแแแขแแแก แ แแกแฃแ แกแแแก. แแแแกแ แแฆแฌแแ แแแแ แแแแแคแแกแขแแแจแ:
# ะะฟะธัะฐะฝะธะต ะบะปะฐััะฐ ะฝะฐัะธะฝะฐะตััั ั ะบะปััะตะฒะพะณะพ ัะปะพะฒะฐ class ะธ ะตะณะพ ะฝะฐะทะฒะฐะฝะธั.
# ะะฐะปััะต ะธะดัั ัะตะปะพ ะบะปะฐััะฐ ะฒ ัะธะณััะฝัั
ัะบะพะฑะบะฐั
.
class example_class {
...
}
แแแแก แจแแแแแ แแแแกแแก แแแแแงแแแแแ แจแแกแแซแแแแแแแ:
# ะฟะตัะฒัะน ะฒะฐัะธะฐะฝั ะธัะฟะพะปัะทะพะฒะฐะฝะธั โ ะฒ ััะธะปะต ัะตััััะฐ ั ัะธะฟะพะผ class
class { 'example_class': }
# ะฒัะพัะพะน ะฒะฐัะธะฐะฝั ะธัะฟะพะปัะทะพะฒะฐะฝะธั โ ั ะฟะพะผะพััั ััะฝะบัะธะธ include
include example_class
# ะฟัะพ ะพัะปะธัะธะต ััะธั
ะดะฒัั
ะฒะฐัะธะฐะฝัะพะฒ ะฑัะดะตั ัะฐััะบะฐะทะฐะฝะพ ะดะฐะปััะต
แแแแแแแแ แฌแแแ แแแแชแแแแแแ - แแแแแ แแแแแแแขแแแแ nginx-แแก แแแกแขแแแแชแแ แแ แแแแคแแแฃแ แแชแแ แแแแกแจแ:
class nginx_example {
package { 'nginx':
ensure => installed,
}
-> file { '/etc/nginx':
ensure => directory,
source => 'puppet:///modules/example/nginx-conf',
recure => true,
purge => true,
force => true,
}
~> service { 'nginx':
ensure => running,
enable => true,
}
}
node 'server2.testdomain' {
include nginx_example
}
แชแแแแแแแ
แฌแแแ แแแแแแแแแก แแแแกแ แกแแแ แแแ แแ แแ แแก แแแฅแแแแ, แ แแแแแ แแแก แงแแแแแแแแก แแแแฅแแก แแแแแ nginx แแแแคแแแฃแ แแชแแ. แแแแแ แแแแแแแแแ แแแ แแแแคแแแฃแ แแชแแแก แชแแแแแแกแแแ, แจแแแแแ แแก แแแแกแ แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก nginx-แแก แแแกแแงแแแแแแแ แแแแแกแแแแ แ แแแแคแแแฃแ แแชแแแ.
แแก แจแแแซแแแแ แแแแแแแแก
แงแฃแ แแแฆแแแ: Puppet-แจแ แชแแแแแแแ แฃแชแแแแแแ!
แแแ แแ แแแแกแ, แชแแแแแแก แฌแแแแแ แจแแกแแซแแแแแแแ แแฎแแแแ แแแก แจแแแแแ, แ แแช แแแแแชแฎแแแแแแ, แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ แชแแแแแแก แแแแจแแแแแแแ แแฅแแแแ undef
.
แชแแแแแแแแแ แแฃแจแแแแแก แแแแแแแแ:
# ัะพะทะดะฐะฝะธะต ะฟะตัะตะผะตะฝะฝัั
$variable = 'value'
$var2 = 1
$var3 = true
$var4 = undef
# ะธัะฟะพะปัะทะพะฒะฐะฝะธะต ะฟะตัะตะผะตะฝะฝัั
$var5 = $var6
file { '/tmp/text': content => $variable }
# ะธะฝัะตัะฟะพะปััะธั ะฟะตัะตะผะตะฝะฝัั
โ ัะฐัะบัััะธะต ะทะฝะฐัะตะฝะธั ะฟะตัะตะผะตะฝะฝัั
ะฒ ัััะพะบะฐั
. ะ ะฐะฑะพัะฐะตั ัะพะปัะบะพ ะฒ ะดะฒะพะนะฝัั
ะบะฐะฒััะบะฐั
!
$var6 = "Variable with name variable has value ${variable}"
แแแฏแแแแก แแฅแแก แกแแฎแแแแ แกแแแ แชแแแแ, แแ แชแแแแแแแก, แจแแกแแแแแแกแแ, แแฅแแ แฎแแแแแแแแแก แแแแ: แชแแแแแ แแแแแ แกแแฎแแแแ แจแแแซแแแแ แแแแแกแแแฆแแ แแก แกแฎแแแแแกแฎแแ แกแแฎแแแแแแก แกแแแ แชแแจแ. แชแแแแแแก แแแแจแแแแแแแแก แแแแฎแกแแแกแแก แชแแแแแ แแซแแแแแแ แแแแแแแแ แ แกแแฎแแแแ แกแแแ แชแแจแ, แจแแแแแ แแแแแแแแ แ แกแแฎแแแแ แกแแแ แชแแจแ แแ แ.แจ.
แกแแฎแแแแ แกแแแ แชแแก แแแแแแแแแแ:
- แแแแแแแฃแ แ - แแฅ แแแแแก แชแแแแแแแ แแแแกแแก แแ แแแแแซแแก แแฆแฌแแ แแแแแแก แแแ แแ;
- แแแแแซแแก แกแแฎแแแแ แกแแแ แชแ แแแแแซแแก แแฆแฌแแ แแจแ;
- แแแแกแแก แกแแฎแแแแ แกแแแ แชแ แแแแกแแก แแฆแฌแแ แแจแ.
แชแแแแแแ แฌแแแแแแกแแก แแแฃแ แแแแแแแแแก แแแแแแแ แแกแแชแแแแแแแ, แจแแแแซแแแแ แแแฃแแแแแ แกแแฎแแแแ แกแแแ แชแ แชแแแแแแก แกแแฎแแแจแ:
# ะฟะตัะตะผะตะฝะฝะฐั ะฑะตะท ะฟัะพัััะฐะฝััะฒะฐ ะธะผัะฝ
$var
# ะฟะตัะตะผะตะฝะฝะฐั ะฒ ะณะปะพะฑะฐะปัะฝะพะผ ะฟัะพัััะฐะฝััะฒะต ะธะผัะฝ
$::var
# ะฟะตัะตะผะตะฝะฝะฐั ะฒ ะฟัะพัััะฐะฝััะฒะต ะธะผัะฝ ะบะปะฐััะฐ
$classname::var
$::classname::var
แแแแแ แจแแแแแแฎแแแแ, แ แแ nginx แแแแคแแแฃแ แแชแแแก แแแ แชแแแแแจแแ $nginx_conf_source
. แจแแแแแ แแแแกแ แแกแ แแแแแแงแฃแ แแแ:
class nginx_example {
package { 'nginx':
ensure => installed,
}
-> file { '/etc/nginx':
ensure => directory,
source => $nginx_conf_source, # ะทะดะตัั ะธัะฟะพะปัะทัะตะผ ะฟะตัะตะผะตะฝะฝัั ะฒะผะตััะพ ัะธะบัะธัะพะฒะฐะฝะฝะพะน ัััะพะบะธ
recure => true,
purge => true,
force => true,
}
~> service { 'nginx':
ensure => running,
enable => true,
}
}
node 'server2.testdomain' {
$nginx_conf_source = 'puppet:///modules/example/nginx-conf'
include nginx_example
}
แแฃแแชแ, แแแชแแแฃแแ แแแแแแแแ แชแฃแแแ, แ แแแแแ แแ แกแแแแแก แแแ แแแแฃแแ โแกแแแแฃแแแ แชแแแแโ, แ แแ แกแแแฆแแช แแแแกแจแ แแแแแแงแแแแแ แชแแแแแ แแแ แแฃ แแ แกแแฎแแแแ. แแแแ แแ แฃแคแ แ แกแฌแแ แแ แแ แชแแแแแก แแแแแแ แคแแ แแแ แแแ - แแแแกแแแก แจแแแซแแแแ แฐแฅแแแแแ แแแ แแแแขแ แแแ.
แแแแกแแก แแแ แแแแขแ แแแ แแ แแก แชแแแแแแแ แแแแกแแก แกแแฎแแแแ แกแแแ แชแแจแ, แแกแแแ แแแแแแแแฃแแแ แแแแกแแก แกแแแแฃแ แจแ แแ แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก แ แแแแ แช แฉแแแฃแแแแ แแแ แชแแแแแแแ แแแแกแแก แกแฎแแฃแแจแ. แแแ แแแแขแ แแก แแแแจแแแแแแแแแ แแแแแแแแฃแแแ แแแแแคแแกแขแจแ แแแแกแแก แแแแแงแแแแแแกแแก.
แแแ แแแแขแ แ แจแแแซแแแแ แแแงแแแแแก แแแแฃแแแกแฎแแแ แแแแจแแแแแแแแแ. แแฃ แแแ แแแแขแ แก แแ แแฅแแก แแแแฃแแแกแฎแแแแ แแแแจแแแแแแแ แแ แแแแจแแแแแแแ แแ แแ แแก แแแงแแแแแฃแแ แแแแแงแแแแแแกแแก, แแก แแแแแแฌแแแแก แแแแแแแแชแแแก แจแแชแแแแแก.
แแแแแ แแแแแขแแ แแ แแแแกแแก แแแ แแแแขแ แแแแชแแ แแแแแ แแแงแแแแแแ แแแแแแแแแแแ แแ แแแแแแแขแแ แแ แ แแแ แแแแขแ แ: แแแ แแแแ, แกแแญแแ แ, แแ แแก แแแแคแแแฃแ แแชแแแก แแแ, แฎแแแ แแแแ แ, แกแฃแ แแแแแกแแแแแ , แแ แแก แแแแแขแแก แกแแฎแแแ nginx-แแ (แแแแแแแแแ, Debian-แจแ แแ แแก แแแแแขแแแ nginx
, nginx-light
, nginx-full
).
# ะฟะตัะตะผะตะฝะฝัะต ะพะฟะธััะฒะฐัััั ััะฐะทั ะฟะพัะปะต ะธะผะตะฝะธ ะบะปะฐััะฐ ะฒ ะบััะณะปัั
ัะบะพะฑะบะฐั
class nginx_example (
$conf_source,
$package_name = 'nginx-light', # ะฟะฐัะฐะผะตัั ัะพ ะทะฝะฐัะตะฝะธะตะผ ะฟะพ ัะผะพะปัะฐะฝะธั
) {
package { $package_name:
ensure => installed,
}
-> file { '/etc/nginx':
ensure => directory,
source => $conf_source,
recurse => true,
purge => true,
force => true,
}
~> service { 'nginx':
ensure => running,
enable => true,
}
}
node 'server2.testdomain' {
# ะตัะปะธ ะผั ั
ะพัะธะผ ะทะฐะดะฐัั ะฟะฐัะฐะผะตััั ะบะปะฐััะฐ, ััะฝะบัะธั include ะฝะต ะฟะพะดะพะนะดัั* โ ะฝัะถะฝะพ ะธัะฟะพะปัะทะพะฒะฐัั resource-style declaration
# *ะฝะฐ ัะฐะผะพะผ ะดะตะปะต ะฟะพะดะพะนะดัั, ะฝะพ ะฟัะพ ััะพ ัะฐััะบะฐะถั ะฒ ัะปะตะดัััะตะน ัะตัะธะธ. ะะปััะตะฒะพะต ัะปะพะฒะพ "Hiera".
class { 'nginx_example':
conf_source => 'puppet:///modules/example/nginx-conf', # ะทะฐะดะฐัะผ ะฟะฐัะฐะผะตััั ะบะปะฐััะฐ ัะพัะฝะพ ัะฐะบ ะถะต, ะบะฐะบ ะฟะฐัะฐะผะตััั ะดะปั ะดััะณะธั
ัะตััััะพะฒ
}
}
Puppet-แจแ แชแแแแแแแ แแแแญแแแแ. แญแแแ
แขแแแ แแฌแแ แแแ แแแ แแแแขแ แแก แกแแฎแแแแก แฌแแ:
class example (
String $param1,
Integer $param2,
Array $param3,
Hash $param4,
Hash[String, String] $param5,
) {
...
}
แแแแกแแแ: แแแแชแแแก classname vs class{'classname':}
แแแแแแฃแแ แแแแกแ แแ แแก แขแแแแก แ แแกแฃแ แกแ แแแแกแ. แ แแแแ แช แแแแแกแแแแ แ แกแฎแแ แขแแแแก แ แแกแฃแ แกแ, แแ แจแแแซแแแแ แแงแแก แแ แแ แแ แแแแแ แแแแกแแก แแ แ แแแกแขแแแชแแ แแ แแกแ แแ แแแแแ แแแแแซแแ.
แแฃ แชแแแแแแ แแแแกแแก แแแแแขแแแแก แแแแแ แแแแแซแจแ แแ แฏแแ แแแแแงแแแแแแ class { 'classname':}
(แแ แแแแแแ แ แแแแกแฎแแแแแแ, แแแแกแฎแแแแแแฃแแ แแ แแแแแขแฃแ แ แแแ แแแแขแ แแแแ), แแฅแแแแ แแแแแแแแชแแแก แจแแชแแแแ. แแแแ แแ แแฃ แแงแแแแแ แแแแกแก แ แแกแฃแ แกแแก แกแขแแแจแ, แจแแแแซแแแแ แแแฃแงแแแแแแแแ แแแแงแแแแ แแแกแ แงแแแแ แแแ แแแแขแ แ แแแแแคแแกแขแจแ.
แแฃแแชแ, แแฃ แแงแแแแแ include
, แแแจแแ แแแแกแแก แแแแแขแแแ แจแแกแแซแแแแแแแ แ แแแแแแฏแแ แแช แแกแฃแ แ. แคแแฅแขแแ แ แแ include
แแ แแก แแแแแแแขแแแขแฃแ แ แคแฃแแฅแชแแ, แ แแแแแแช แแแแฌแแแแก, แแแแแแขแ แแฃ แแ แ แแแแกแ แแแ แแฅแขแแ แแแจแ. แแฃ แแแแกแ แแ แแ แแก แแแ แแฅแขแแ แแแจแ, แแก แแแแขแแแก แแแก แแ แแฃ แฃแแแ แแ แกแแแแแก, แแ แแคแแ แก แแแแแแแก. แแแแ แแ แแแแแงแแแแแแก แจแแแแฎแแแแแจแ include
แแฅแแแ แแ แจแแแแซแแแแ แแแแกแแก แแแ แแแแขแ แแแแก แแแงแแแแแ แแแแกแแก แแแแแแ แแชแแแก แแ แแก - แงแแแแ แกแแญแแ แ แแแ แแแแขแ แ แฃแแแ แแงแแก แแแแแแแแฃแแ แแแ แ แแแแแชแแแแ แฌแงแแ แแจแ - Hiera แแ ENC. แแแ แจแแกแแฎแแ แแแแแแแแ แกแขแแขแแแจแ แแแกแแฃแแ แแแ.
แแแแกแแแฆแแ แแแก
แ แแแแ แช แฌแแแ แแแแแจแ แแแฅแแ, แแ แแ แแ แแแแแ แแแแกแ แแ แจแแแซแแแแ แแงแแก แแ แแแ แแแขแฏแแ แแแแแซแแ. แแฃแแชแ, แแแแแแ แ แจแแแแฎแแแแแจแ แแฅแแแ แฃแแแ แจแแแแซแแแ แแแแแแงแแแแ แแแแแก แแ แแ แแ แแแแแ แแแแแ แกแฎแแแแแกแฎแแ แแแ แแแแขแ แแ แแแแแ แแแแแซแแ. แกแฎแแ แกแแขแงแแแแแ แ แแ แแแฅแแแ, แกแแญแแ แแ แกแแแฃแแแ แ แ แแกแฃแ แกแแก แขแแแ.
แแแแแแแแแ, PHP แแแแฃแแแก แแแกแแงแแแแแแแ Avito-แจแ แแแแแแแแ แจแแแแแแก:
- แแแแแแกแขแแแแ แแ แแแแแขแ แแ แแแแฃแแแ.
- แแแแแ แจแแแฅแแแแ แแแแคแแแฃแ แแชแแแก แคแแแแ แแ แแแแฃแแแกแแแแก.
- แฉแแแ แแฅแแแแ แกแแแแแแแก แแแแคแแแฃแ แแชแแแกแแแ php-fpm-แแกแแแแก.
- แฉแแแ แแฅแแแแ แกแแแแแแฃแ แแแฃแแก php cli แแแแคแแแฃแ แแชแแแกแแแแก.
แแกแแ แจแแแแฎแแแแแแจแ, แแกแแแ แแแแแแแ, แ แแแแ แแชแแ $title
, แกแแแแช แแฌแแ แแแ แ แแกแฃแ แกแแก แกแแฎแแแ แแแกแ แแแแแแ แแชแแแกแแก. แแกแแแ, แ แแแแ แช แแแแกแแแแก แจแแแแฎแแแแแจแ, แฏแแ แแแแแแ แขแแแ แฃแแแ แแงแแก แแฆแฌแแ แแแ, แ แแก แจแแแแแแแช แแแกแ แแแแแงแแแแแ แจแแแซแแแแ.
แแแแแ แขแแแแแฃแแ แแแแแแแแ PHP แแแแฃแแแ:
define php74::module (
$php_module_name = $title,
$php_package_name = "php7.4-${title}",
$version = 'installed',
$priority = '20',
$data = "extension=${title}.son",
$php_module_path = '/etc/php/7.4/mods-available',
) {
package { $php_package_name:
ensure => $version,
install_options => ['-o', 'DPkg::NoTriggers=true'], # ััะธะณะณะตัั ะดะตะฑะธะฐะฝะพะฒัะบะธั
php-ะฟะฐะบะตัะพะฒ ัะฐะผะธ ัะพะทะดะฐัั ัะธะผะปะธะฝะบะธ ะธ ะฟะตัะตะทะฐะฟััะบะฐัั ัะตัะฒะธั php-fpm - ะฝะฐะผ ััะพ ะฝะต ะฝัะถะฝะพ, ัะฐะบ ะบะฐะบ ะธ ัะธะผะปะธะฝะบะฐะผะธ, ะธ ัะตัะฒะธัะพะผ ะผั ัะฟัะฐะฒะปัะตะผ ั ะฟะพะผะพััั Puppet
}
-> file { "${php_module_path}/${php_module_name}.ini":
ensure => $ensure,
content => $data,
}
file { "/etc/php/7.4/cli/conf.d/${priority}-${php_module_name}.ini":
ensure => link,
target => "${php_module_path}/${php_module_name}.ini",
}
file { "/etc/php/7.4/fpm/conf.d/${priority}-${php_module_name}.ini":
ensure => link,
target => "${php_module_path}/${php_module_name}.ini",
}
}
node server3.testdomain {
php74::module { 'sqlite3': }
php74::module { 'amqp': php_package_name => 'php-amqp' }
php74::module { 'msgpack': priority => '10' }
}
แแฃแแแแแแขแ แแแแแแ แแชแแแก แจแแชแแแแแก แแแญแแ แแก แฃแแแ แขแแแแกแ แแแ แแ แแก Define-แจแ. แแก แฎแแแแ แแ แจแแแแฎแแแแแจแ, แแฃ แแแแกแแแฆแแ แแแแก แแฅแแก แ แแกแฃแ แกแ แแฃแแแแแ แกแแฎแแแแ แแ แแ แแก แแ แแแแแแ แขแแแแก แแ แ แแ แแแขแ แจแแแแฎแแแแ แแแแแแ แ แแแแแซแแ.
แแแแกแแแ แแแแแก แแแชแแ แแแ แขแแแแ: แแแแแแ แขแแแแก แจแแแแแ แแ แกแแแฃแ แงแแแแ แ แแกแฃแ แกแก แฃแแแ แฐแฅแแแแแก แกแแฎแแแ แแแแก แแแฎแแแแแ $title
. แแแขแแ แแแขแแแ แแ แแก แ แแกแฃแ แกแแแแก แแ แแแแขแแแขแฃแ แ แแแแแขแแแ; แฃแแแ แขแแแแก แจแแแแฎแแแแแจแ, แกแแแแแ แแกแแ แแแแกแแแฆแแ แแแแก แงแแแแ แแแกแขแแแชแแแกแแแแก แกแแแ แแ แ แแกแฃแ แกแแแ แชแแแแ แแแแกแจแ แแแแแแแขแแแแ แแ แแก แแแแกแ แจแแแขแแแแ แแแแแแ แขแแแแจแ - แคแฃแแฅแชแแแจแ. include
แฃแซแแฃแ แ.
แแ แกแแแแแก แ แแกแฃแ แกแแแแก แแแแแขแแแแกแแก แแแแแขแแแชแแแก แแแฆแฌแแแแก แกแฎแแ แแแแแ, แแแ แซแแ แคแฃแแฅแชแแแแแก แแแแแงแแแแแ defined
ะธ ensure_resources
, แแแแ แแ แแแแก แจแแกแแฎแแ แแแแแแแแ แแแแแแแจแ แแแแแงแแแแแ.
แแแแแแแแแแฃแแแแแแ แแ แจแแขแงแแแแแแแแแ แแแแกแแแแกแ แแ แแแแแแ แขแแแแแแกแแแแก
แแแแกแแแ แแ แแแแแแ แขแแแแแ แแแแขแแแแ แจแแแแแ แฌแแกแแแก แแแแแแแแแแฃแแแแแแแกแ แแ แจแแขแงแแแแแแแแแแก แแแ แแแแจแ:
- แแแแแแแแแแฃแแแแ แแแแกแแ/define แแแแขแแแก แแแแแแแแแแฃแแแแแแก แแแแกแแก แงแแแแ แ แแกแฃแ แกแแ/define;
- แแแแกแแก/แแแแกแแแฆแแแก แแแแแแแแแแฃแแแแ แแแแขแแแก แแแแแแแแแแฃแแแแแแก แงแแแแ แแแแกแแก/แแแแกแแแฆแแแก แ แแกแฃแ แกแแแก;
- class/define แจแแขแงแแแแแแแ แแชแแแแแแก แแแแกแแก แงแแแแ แ แแกแฃแ แกแก/define;
- class/define แแแแแฌแแ แ แแแแแแฌแแ แก แแแแกแแก/define-แแก แงแแแแ แ แแกแฃแ แกแก.
แแแ แแแแแ แแแแชแฎแแแแแแแ แแ แกแแแแฅแขแแ แแแ
if
แแฅ แแแ แขแแแแ:
if ะะซะ ะะะะะะ1 {
...
} elsif ะะซะ ะะะะะะ2 {
...
} else {
...
}
แแฃ แแ
แแฃ แแ แแ แแก if แกแแแแ แแกแแแ แ: แแแแแก แแแแแ แจแแกแ แฃแแแแแ, แแฃ แแแแแแฅแแ แแชแแแ แแ.
unless ะะซะ ะะะะะะ {
...
}
แจแแแแฎแแแแแจแ
แแฅแแช แแ แแคแแ แแ แ แแฃแแ. แแแแจแแแแแแแแแแ แจแแแแซแแแแ แแแแแแงแแแแ แ แแแฃแแแ แฃแแ แแแแจแแแแแแแแแ (แกแขแ แแฅแแแแแ, แ แแชแฎแแแแ แแ แ.แจ.), แ แแแฃแแแ แฃแแ แแแแแแแแฅแแแแแแ แแ แแแแแชแแแแ แขแแแแแ.
case ะะซะ ะะะะะะ {
ะะะะงะะะะ1: { ... }
ะะะะงะะะะ2, ะะะะงะะะะ3: { ... }
default: { ... }
}
แกแแแแฅแขแแ แแแ
แกแแแแฅแขแแ แ แแ แแก แแแแก แแกแแแแกแ แแแแกแขแ แฃแฅแชแแ case
, แแแแ แแ แแแแแก แแแแแแก แจแแกแ แฃแแแแแก แแแชแแแแ, แแก แแแ แฃแแแแก แแแแจแแแแแแแแก.
$var = $othervar ? { 'val1' => 1, 'val2' => 2, default => 3 }
แแแแฃแแแแ
แ แแแแกแแช แแแแคแแแฃแ แแชแแ แแชแแ แแ, แแก แแแแแแแ แจแแแแแฎแแแ แแ แ แแแแแคแแกแขแจแ. แแแแ แแ แ แแช แฃแคแ แ แแแข แแแแคแแแฃแ แแชแแแก แแฆแแฌแแ แ, แแแ แฃแคแ แ แแแขแ แแแแกแ แแ แแแแแซแแ แแแแแคแแกแขแจแ, แแก แแแ แแแแ แแ แฃแฎแแ แฎแฃแแ แฎแแแแ แแฃแจแแแแ.
แแแ แแ แแแแกแ, แแ แกแแแแแก แแแแแก แฎแแแแฎแแแ แแแแแงแแแแแแก แแ แแแแแแ - แ แแแแกแแช แงแแแแ แแแแ แแ แ แแแแแคแแกแขแจแแ, แซแแแแแ แแ แแแแแก แกแฎแแแแแแ แแแแแแ แแแ. แแ แแ แ แแ แแแแแแแก แแแแแกแแญแ แแแแ, Puppet-แก แแฅแแก แแ แแแฃแแ, แ แแแแแกแแช แแฌแแแแแ แแแแฃแแแแ.
แแแแฃแแแแ - แแก แแ แแก แแแแกแแแแก แแแแแแแฅแขแ, แแแแแแ แขแแแแแ แแ แกแฎแแ แแแฏแแแแแแก แแ แแแฃแแแแ, แ แแแแแแแช แแแแแแแกแแแฃแแแ แชแแแแ แแแ แแฅแขแแ แแแจแ. แกแฎแแ แกแแขแงแแแแแ แ แแ แแแฅแแแ, แแแแฃแแ แแ แแก แแแ แแแแแขแฃแแ แแแแแแแก แแแแแฃแแแแแแแแ แแแฌแแแ. แแแแแแแแแ, แจแแแซแแแแ แแงแแก nginx-แแแ แแฃแจแแแแแก แแแแฃแแ แแ แแแกแจแ แแงแแก แแก, แ แแช แแ แแฎแแแแ แแก แแ แแก แกแแญแแ แ nginx-แแแ แแฃแจแแแแแกแแแแก, แแ แจแแแซแแแแ แแงแแก PHP-แแแ แแฃแจแแแแแก แแแแฃแแ แแ แ.แจ.
แแแแฃแแแแ แแแ แกแแแ แแแฃแแแ แแ แแกแแแ แแฎแแ แแแญแแ แแแแ แแแแฃแแแแแก แแ แแแแแแแแ แแแแแแแแแแฃแแแแแแ. แแ แกแแแแแก แแแแฃแแแแแก แฆแแ แกแแชแแแ -
แแแ แแแแแขแฃแ แกแแ แแแ แแ แแแแฃแแแแ แแแแแแแแแฃแแแ root แแแ แแฅแขแแ แแแก แแแแฃแแแแแก แฅแแแแแ แแฅแขแแ แแแจแ. แแแแแแฃแแ แแแแฃแแแก แจแแแแแ แแ แแก แกแขแแแแแ แขแฃแแ แแแ แแฅแขแแ แแ แกแฅแแแ - แแแแแคแแกแขแแแ, แคแแแแแแ, แจแแแแแแแแ, lib แแ แ.แจ.
แคแแแแแก แกแขแ แฃแฅแขแฃแ แ แแแแฃแแจแ
แแแแฃแแแก แคแแกแแ แจแแแซแแแแ แจแแแชแแแแแก แจแแแแแ แกแแฅแแฆแแแแแแแก แแฆแฌแแ แแแ แกแแฎแแแแแแ:
manifests
- แจแแแชแแแก แแแแแคแแกแขแแแกfiles
- แจแแแชแแแก แคแแแแแแกtemplates
- แจแแแชแแแก แจแแแแแแแแกlib
- แจแแแชแแแก Ruby แแแแก
แแก แแ แแ แแก แแแ แแฅแขแแ แแแแแกแ แแ แคแแแแแแแก แกแ แฃแแ แกแแ, แแแแ แแ แแ แกแขแแขแแแกแแแแก แแ แแ แแแกแแแแก แกแแแแแ แแกแแ.
แ แแกแฃแ แกแแแแก แกแแฎแแแแแ แแ แคแแแแแแแก แกแแฎแแแแแ แแแแฃแแจแ
แ แแกแฃแ แกแแแ (แแแแกแแแ, แแแแแแ แขแแแแแ) แแแแฃแแจแ แแ แจแแแซแแแแ แแแกแแฎแแแแแก แแกแ, แ แแแแ แช แแกแฃแ แ. แแแ แแ แแแแกแ, แแ แกแแแแแก แแแ แแแแแ แ แแแแแฌแแ แ แ แแกแฃแ แกแแก แกแแฎแแแกแ แแ แคแแแแแก แกแแฎแแแก แจแแ แแก, แ แแแแแจแแช Puppet แแซแแแก แแ แ แแกแฃแ แกแแก แแฆแฌแแ แแก. แแฃ แแฅแแแ แแแแ แฆแแแแ แแแกแแฎแแแแแแก แฌแแกแแแก, แแแจแแ Puppet แฃแแ แแแแ แแแ แแแแแแก แ แแกแฃแ แกแแก แแฆแฌแแ แแก แแ แแแแฆแแแ แแแแแแแแชแแแก แจแแชแแแแแก.
แฌแแกแแแ แแแ แขแแแแ:
- แแแแฃแแแก แงแแแแ แ แแกแฃแ แกแ แฃแแแ แแงแแก แแแแฃแแแก แกแแฎแแแแ แกแแแ แชแแจแ. แแฃ แแแแฃแแ แแแแแซแแฎแแแฃแแแ
foo
, แแแจแแ แแแกแจแ แแ แกแแแฃแแ แงแแแแ แ แแกแฃแ แกแ แฃแแแ แแงแแก แแแกแแฎแแแแแฃแแfoo::<anything>
, แแ แฃแแ แแแแfoo
. - แ แแกแฃแ แกแ แแแแฃแแแก แกแแฎแแแแ แฃแแแ แแงแแก แคแแแแจแ
init.pp
. - แกแฎแแ แ แแกแฃแ แกแแแแกแแแแก, แคแแแแแก แแแกแแฎแแแแแแก แกแฅแแแ แจแแแแแแแ:
- แแแแฃแแแก แกแแฎแแแแก แแ แแคแแฅแกแ แแแฃแฅแแแแฃแแแ
- แงแแแแ แแ แแแแ แแ แฌแแ แขแแแ, แแกแแแแก แแ แกแแแแแแก แจแแแแฎแแแแแจแ, แจแแแชแแแแแ แจแขแ แแฎแแแแ
- แแแแแขแแแฃแแแ แแแคแแ แแแแแ
.pp
แแแแแแกแขแ แแ แแแแก แแแแแแแแแ แแแแแแแแแ. แแแฅแแแ, แแฌแแ แแแแฃแแก nginx
. แแแ แจแแแชแแแก แจแแแแแ แ แแกแฃแ แกแแแก:
- แแแแกแ
nginx
แแฆแฌแแ แแแแ แแแแแคแแกแขแจแinit.pp
; - แแแแกแ
nginx::service
แแฆแฌแแ แแแแ แแแแแคแแกแขแจแservice.pp
; - แแแแกแแแฆแแ แ
nginx::server
แแฆแฌแแ แแแแ แแแแแคแแกแขแจแserver.pp
; - แแแแกแแแฆแแ แ
nginx::server::location
แแฆแฌแแ แแแแ แแแแแคแแกแขแจแserver/location.pp
.
Templates
แ แ แแฅแแ แฃแแแ, แแฅแแแ แแแแแแ แแชแแ, แ แ แแ แแก แจแแแแแแแแ; แแ แแแ แแแขแแแฃแ แแ แแ แแฆแแฌแแ แแฅ. แแแแ แแ แงแแแแแ แจแแแแฎแแแแแกแแแแก แแแแขแแแแ
แ แแแแ แแแแแแแงแแแแ แจแแแแแแแแ: แจแแแแแแแก แแแแจแแแแแแแ แจแแแซแแแแ แแแคแแ แแแแแแก แคแฃแแฅแชแแแก แแแแแงแแแแแแ template
, แ แแแแแกแแช แแแแแแแก แแแ แจแแแแแแแกแแแ. แขแแแแก แ แแกแฃแ แกแแแแกแแแแก แคแแแแ แแแแแแงแแแแแ แแแ แแแแขแ แแแ แแ แแแ content
. แแแแแแแแแ, แแกแ:
file { '/tmp/example': content => template('modulename/templatename.erb')
แแแแแแแก แแแฎแแ <modulename>/<filename>
แแฃแแแกแฎแแแแก แคแแแแก <rootdir>/modules/<modulename>/templates/<filename>
.
แแแ แแ แแแแกแ, แแ แกแแแแแก แคแฃแแฅแชแแ inline_template
- แแก แแฆแแแก แจแแแแแแแก แขแแฅแกแขแก แจแแงแแแแแก แกแแฎแแ แแ แแ แ แคแแแแแก แกแแฎแแแก.
แจแแแแแแแแจแ แจแแแแซแแแแ แแแแแแงแแแแ แแแฏแแแแแแก แงแแแแ แชแแแแแ แแแแแแแแ แ แแแกแจแขแแแจแ.
แแแฏแแแ แแฎแแ แก แฃแญแแ แก แจแแแแแแแแก ERB แแ EPP แคแแ แแแขแจแ:
แแแแแแ ERB-แแก แจแแกแแฎแแ
แกแแแแแขแ แแแ แกแขแ แฃแฅแขแฃแ แแแ:
<%= ะะซะ ะะะะะะ %>
- แฉแแแแ แแแแแฎแแขแแแก แแแแจแแแแแแแ<% ะะซะ ะะะะะะ %>
โ แแแแแแแแแแ แแแแแฎแแขแแแก แแแแจแแแแแแแ (แแแกแ แฉแแกแแแก แแแ แแจแ). แแแ แแแแแ แแแแชแฎแแแแแแแ (แแฃ) แแ แแแ แงแฃแแแแ (แแแแแแฃแแ) แฉแแแฃแแแแ แแ แแแแแก แแฅ.<%# ะะะะะะะขะะ ะะ %>
ERB-แจแ แแแแแแแแฅแแแแแแ แแฌแแ แแแ Ruby-แจแ (ERB แ แแแแฃแ แแ แแ แแก Embedded Ruby).
แแแแแคแแกแขแแก แชแแแแแแแแ แฌแแแแแแกแแแแก, แแฅแแแ แฃแแแ แแแแแแขแแ @
แชแแแแแแก แกแแฎแแแแ. แแแแกแแแแแก, แ แแ แแแแแฆแแ แฎแแแแก แฌแงแแแขแ, แ แแแแแแช แแแแแฉแแแแแ แกแแแแแขแ แแแ แแแแกแขแ แฃแฅแชแแแก แจแแแแแ, แแฅแแแ แฃแแแ แแแแแแงแแแแ แแแฎแฃแ แแแก แขแแแ -%>
.
แจแแแแแแแก แแแแแงแแแแแแก แแแแแแแแ
แแแฅแแแ, แแฌแแ แแแแฃแแก ZooKeeper-แแก แแแกแแแแแขแ แแแแแแแ. แแแแกแ, แ แแแแแแช แแแกแฃแฎแแกแแแแแแแแ แแแแคแแแฃแ แแชแแแก แจแแกแแฅแแแแแแ, แแกแ แแแแแแงแฃแ แแแ:
class zookeeper::configure (
Array[String] $nodes,
Integer $port_client,
Integer $port_quorum,
Integer $port_leader,
Hash[String, Any] $properties,
String $datadir,
) {
file { '/etc/zookeeper/conf/zoo.cfg':
ensure => present,
content => template('zookeeper/zoo.cfg.erb'),
}
}
แแ แจแแกแแแแแแกแ แจแแแแแแ zoo.cfg.erb
- แฒแกแ:
<% if @nodes.length > 0 -%>
<% @nodes.each do |node, id| -%>
server.<%= id %>=<%= node %>:<%= @port_leader %>:<%= @port_quorum %>;<%= @port_client %>
<% end -%>
<% end -%>
dataDir=<%= @datadir %>
<% @properties.each do |k, v| -%>
<%= k %>=<%= v %>
<% end -%>
แคแแฅแขแแแ แแ แฉแแจแแแแแฃแแ แชแแแแแแแ
แฎแจแแ แแ แแแแคแแแฃแ แแชแแแก แแแแแ แแขแฃแแ แแแฌแแแ แแแแแแแแแแฃแแแ แแแแแ, แแฃ แ แ แฎแแแแ แแแแแแแ แแแแแซแแ. แแแแแแแแแ, แแแแกแแ แแแฎแแแแแ, แแฃ แ แ แแ แแก Debian แแแแแจแแแแ, แแฅแแแ แฃแแแ แแแแแแกแขแแแแ แแ แแแแแขแแก แแ แแ แแ แกแฎแแ แแแ แกแแ. แแ แงแแแแแคแ แแก แแแแขแ แแแ แจแแแแซแแแแ แฎแแแแ, แแแแแฌแแ แ แแแแแแแแ, แแฃ แแแแแซแแแ แแชแแแแแ. แแแแ แแ แแก แแ แแ แแก แกแแ แแแแฃแแ แแแแแแแ; แแแขแแแแขแแแแชแแ แแแแ แแ แฃแแแแแกแแ.
แแแแแซแแแแก แจแแกแแฎแแ แแแคแแ แแแชแแแก แแแกแแฆแแแแ แแแฏแแแแก แแฅแแก แแแฅแแแแแแ, แ แแแแแกแแช แคแแฅแขแแแ แแฌแแแแแ. แคแแฅแขแแแ - แแก แแ แแก แแแคแแ แแแชแแ แแแแแซแแก แจแแกแแฎแแ, แ แแแแแแช แฎแแแแแกแแฌแแแแแแ แแแแแคแแกแขแแแจแ แฉแแแฃแแแแ แแแ แชแแแแแแแแก แกแแฎแแ แแแแแแแฃแ แกแแฎแแแแ แกแแแ แชแแจแ. แแแแแแแแแ, แฐแแกแขแแก แกแแฎแแแ, แแแแ แแชแแฃแแ แกแแกแขแแแแก แแแ แกแแ, แแ แแชแแกแแ แแก แแ แฅแแขแแฅแขแฃแ แ, แแแแฎแแแ แแแแแแ แกแแ, แฅแกแแแแก แแแขแแ แคแแแกแแแแก แกแแ แแ แแแแ แแแกแแแแ แแแแ แแ แแ แแแแแ แกแฎแแ. แคแแฅแขแแแ แฎแแแแแกแแฌแแแแแแ แแแแแคแแกแขแแแกแ แแ แจแแแแแแแแจแ, แ แแแแ แช แฉแแแฃแแแแ แแแ แชแแแแแแแ.
แคแแฅแขแแแแแ แแฃแจแแแแแก แแแแแแแแ:
notify { "Running OS ${facts['os']['name']} version ${facts['os']['release']['full']}": }
# ัะตัััั ัะธะฟะฐ notify ะฟัะพััะพ ะฒัะฒะพะดะธั ัะพะพะฑัะตะฝะธะต ะฒ ะปะพะณ
แคแแ แแแแฃแ แแ แ แแ แแแฅแแแ, แคแแฅแขแก แแฅแแก แกแแฎแแแ (แกแขแ แแฅแแแ) แแ แแแแจแแแแแแแ (แฎแแแแแกแแฌแแแแแแ แกแฎแแแแแกแฎแแ แขแแแแแ: แกแขแ แแฅแแแแแ, แแแกแแแแแ, แแแฅแกแแแแแแแ). แญแแแ
แแแแ แแชแแแก แแ แแก แแแ แแแแแขแฃแแ แแแแแขแ แฏแแ แแแแแแ แแแก แงแแแแ แฎแแแแแกแแฌแแแแ แคแแฅแขแแแแก แจแแแแ แแแแแแแก pappetserver-แแแ แแแแแซแจแ, แ แแก แจแแแแแแแช แแก แแฌแงแแแก แแแ แแ แแแแแแแแก แจแแแ แแแแแฃแ แคแแฅแขแแแก แกแแ แแแ แแ; แแแแก แจแแแแแ แกแแ แแแ แ แแฌแงแแแก แแแขแแแแแแก แจแแแแแแแก.
แคแแฅแขแแแ แจแแกแ แฃแแแแแแ แคแแแแแแแก แกแแฎแแ
แแกแแแ แคแแฅแขแแแ แแแแแแกแแแฃแแแ แแแ แแฅแขแแ แแแจแ แแแแฃแแแแจแ facts.d
. แ แ แแฅแแ แฃแแแ, แคแแแแแแ แฃแแแ แแงแแก แจแแกแ แฃแแแแแแ. แแแจแแแแแกแแก แแแ แฃแแแ แแแแฌแแแแ แแแคแแ แแแชแแ แกแขแแแแแ แขแฃแ แแแแแกแแแแแแ YAML แแ key=value แคแแ แแแขแจแ.
แแ แแแแแแแฌแงแแแ, แ แแ แคแแฅแขแแแ แแฎแแแ แงแแแแ แแแแแซแก, แ แแแแแกแแช แแแแแขแ แแแแแก poppet แกแแ แแแ แ, แ แแแแแแแแแช แแแแแแแแแฃแแแ แแฅแแแแ แแแแฃแแ. แแแแขแแ, แกแแ แแแขแจแ แแแ แฌแแฃแแแแ, แ แแ แกแแกแขแแแแก แแฅแแก แงแแแแ แแ แแแ แแแ แแ แคแแแแ, แ แแแแแแช แแฃแชแแแแแแแแ แแฅแแแแ แคแแฅแขแแก แแฃแจแแแแแกแแแแก.
#!/bin/sh
echo "testfact=success"
#!/bin/sh
echo '{"testyamlfact":"success"}'
แแแแแก แคแแฅแขแแแ
แแกแแแ แคแแฅแขแแแ แแแแแแกแแแฃแแแ แแแ แแฅแขแแ แแแจแ แแแแฃแแแแจแ lib/facter
.
# ะฒัั ะฝะฐัะธะฝะฐะตััั ั ะฒัะทะพะฒะฐ ััะฝะบัะธะธ Facter.add ั ะธะผะตะฝะตะผ ัะฐะบัะฐ ะธ ะฑะปะพะบะพะผ ะบะพะดะฐ
Facter.add('ladvd') do
# ะฒ ะฑะปะพะบะฐั
confine ะพะฟะธััะฒะฐัััั ััะปะพะฒะธั ะฟัะธะผะตะฝะธะผะพััะธ ัะฐะบัะฐ โ ะบะพะด ะฒะฝัััะธ ะฑะปะพะบะฐ ะดะพะปะถะตะฝ ะฒะตัะฝััั true, ะธะฝะฐัะต ะทะฝะฐัะตะฝะธะต ัะฐะบัะฐ ะฝะต ะฒััะธัะปัะตััั ะธ ะฝะต ะฒะพะทะฒัะฐัะฐะตััั
confine do
Facter::Core::Execution.which('ladvdc') # ะฟัะพะฒะตัะธะผ, ััะพ ะฒ PATH ะตััั ัะฐะบะพะน ะธัะฟะพะปะฝัะตะผัะน ัะฐะนะป
end
confine do
File.socket?('/var/run/ladvd.sock') # ะฟัะพะฒะตัะธะผ, ััะพ ะตััั ัะฐะบะพะน UNIX-domain socket
end
# ะฒ ะฑะปะพะบะต setcode ะฟัะพะธัั
ะพะดะธั ัะพะฑััะฒะตะฝะฝะพ ะฒััะธัะปะตะฝะธะต ะทะฝะฐัะตะฝะธั ัะฐะบัะฐ
setcode do
hash = {}
if (out = Facter::Core::Execution.execute('ladvdc -b'))
out.split.each do |l|
line = l.split('=')
next if line.length != 2
name, value = line
hash[name.strip.downcase.tr(' ', '_')] = value.strip.chomp(''').reverse.chomp(''').reverse
end
end
hash # ะทะฝะฐัะตะฝะธะต ะฟะพัะปะตะดะฝะตะณะพ ะฒััะฐะถะตะฝะธั ะฒ ะฑะปะพะบะต setcode ัะฒะปัะตััั ะทะฝะฐัะตะฝะธะตะผ ัะฐะบัะฐ
end
end
แขแแฅแกแขแแก แคแแฅแขแแแ
แแกแแแ แคแแฅแขแแแ แแแแแแแกแแแฃแแแ แแแ แแฅแขแแ แแแจแ แแ แกแแแฃแ แแแแแซแแแแ /etc/facter/facts.d
แซแแแ แแแฏแแแแจแ แแ /etc/puppetlabs/facts.d
แแฎแแ แแแฏแแแแจแ.
examplefact=examplevalue
---
examplefact2: examplevalue2
anotherfact: anothervalue
แคแแฅแขแแแแแ แแแฎแแแแ แ
แคแแฅแขแแแแแ แแแแฎแแแแแแก แแ แ แแแ แแ แกแแแแแก:
- แแแฅแกแแแแแแก แแแจแแแแแแ
$facts
:$facts['fqdn']
; - แคแแฅแขแแก แกแแฎแแแแก แแแแแงแแแแแ แชแแแแแแก แกแแฎแแแแ:
$fqdn
.
แฃแแฏแแแแกแแ แแแแแแงแแแแ แแแฅแกแแแแแ $facts
, แแ แแแแแ แฃแแแแแกแ, แแแฃแแแแแ แแแแแแแฃแ แ แกแแฎแแแแแแก แกแแแ แชแ ($::facts
).
แฉแแแแแขแแแแแฃแแ แชแแแแแแแ
แแแ แแ แคแแฅแขแแแแกแ, แแ แแก แแกแแแ
- แกแแแแ แคแแฅแขแแแ - แชแแแแแแแ, แ แแแแแแแช แแฆแแแฃแแแ แแแแแแขแแก แกแแ แแแคแแแแขแแแแ (แ แแแแแ แกแแ แแแคแแแแขแ แฉแแแฃแแแแ แแ แแแแชแแแ poppet แกแแ แแแ แแ, แแแแแขแก แแ แจแแฃแซแแแ แฃแแ แแแแ แแแแฆแแก แแ แจแแชแแแแแก แแแกแ แกแแ แขแแคแแแแขแ, แแแแขแแ แชแแแแแแแ "แกแแแแ"): แกแแ แแแคแแแแขแแก แกแแฎแแแ, แกแแฎแแแ แฐแแกแขแ แแ แแแแแแ, แแแคแแ แแแแแแแ แกแแ แขแแคแแแแขแแกแแแ.
- แกแแ แแแ แแก แคแแฅแขแแแ โ แกแแ แแแ แแก แจแแกแแฎแแ แแแคแแ แแแชแแแกแแแ แแแแแแจแแ แแแฃแแ แชแแแแแแแ โ แแแ แกแแ, แกแแฎแแแ, แกแแ แแแ แแก IP แแแกแแแแ แแ, แแแ แแแ.
- แแแแแขแแก แคแแฅแขแแแ - แชแแแแแแแ แแแแแขแแแฃแแแ แฃแจแฃแแแแ แแแ แแแแแขแฃแแ แแแแแขแแก แแแแ แแ แแ แ แคแแฅแขแแ แแแแก แแแฎแแแแแ - แกแแ แขแแคแแแแขแแก แกแแฎแแแ, แแแแแขแแก แแแ แกแแ, แแแ แแแแแขแฃแแ แแแ แกแแ.
- แกแแแแแแกแขแ แ แชแแแแแแแ - Pappetmaster แชแแแแแแแ (sic!). แแก แแแแฎแแแแแแ แแแแแแ, แ แแช แจแแแแแ แกแแ แแแ แแก แคแแฅแขแแแ, แแแฃแก แแแแคแแแฃแ แแชแแแก แแแ แแแแขแ แแก แแแแจแแแแแแแแแ แฎแแแแแกแแฌแแแแแแ.
- แจแแแแแแแแแ แชแแแแแแแ - แจแแแแแแแแแ แชแแแแแแแ, แ แแแแแแแช แแแแกแฎแแแแแแแ แแแแแแฃแ แกแแแฆแแ แแแจแ: แแแแแแแแ แ แแแแฃแแแก แกแแฎแแแ แแ แแแแฃแแแก แกแแฎแแแ, แ แแแแแจแแช แฌแแแแแ แแฅแแ แแแแแแแแ แ แแแแแฅแขแแ. แแกแแแ แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก, แแแแแแแแแ, แแแแก แจแแกแแแแฌแแแแแแ, แ แแ แแฅแแแแ แแแ แแแ แแแแแแแแแแแ แแ แแแแแแงแแแแแ แแแ แแแแแ แกแฎแแ แแแแฃแแแแแแแ.
แแแแแขแแแ 1: แ แแแแ แฃแแแ แแแฃแจแแแ แแ แแแแแ แแแ แแก แงแแแแแคแแ แ?
แกแขแแขแแ แจแแแชแแแก แแแ แแแแแขแฃแแ แแแแแก แแแแ แแแแแแแแก, แแแแ แแ แกแแแ แแแ แแ แแแแแฎแ แ, แ แแแแ แฃแแแ แแแฃแจแแแ แแก แแแแ. แแกแ, แแแแก แแแกแฌแแ แแ.
แแแแแขแ แกแแแแแ แแกแแ Puppet-แแก แแแกแแจแแแแแ, แแแแ แแ แฃแแแขแแก แจแแแแฎแแแแแจแ แแฅแแแ แแแแญแแ แแแแแ แกแแ แแแ แแช.
แแแแแขแ
แงแแแแ แจแแแแฎแแแแแจแ แแ-XNUMX แแแ แกแแแแแ, แแแ แแแแแขแฃแแ แแแแแขแแก แแแแแขแแแ
แฃแแแ แขแแแแก แจแแแแฎแแแแแจแ, แแแ แแแแแขแฃแแ แแแแคแแแฃแ แแชแแแก แแแแแกแแงแแแแแแแ, แกแแแแแ แแกแแ แแแแแขแแก แแแจแแแแ แกแแ แแแ แแก แแแ แแจแ: แแ แแแ แแแแ, แ แแ แแแ แแแแแขแฃแแ แแแแ แแแแแแแ แแแแ แแแแแซแจแ, แแแฃแจแแแ. puppet apply <ะฟััั ะบ ะผะฐะฝะธัะตััั>
:
atikhonov@atikhonov ~/puppet-test $ cat helloworld.pp
node default {
notify { 'Hello world!': }
}
atikhonov@atikhonov ~/puppet-test $ puppet apply helloworld.pp
Notice: Compiled catalog for atikhonov.localdomain in environment production in 0.01 seconds
Notice: Hello world!
Notice: /Stage[main]/Main/Node[default]/Notify[Hello world!]/message: defined 'message' as 'Hello world!'
Notice: Applied catalog in 0.01 seconds
แฃแแฏแแแแกแแ, แ แ แแฅแแ แฃแแแ, แแแแงแแแแ แกแแ แแแ แ แแ แแแฃแจแแแ แแแแแขแแแ แแแแแซแแแแ แแแแแแแก แ แแแแแจแ - แจแแแแแ แแแฎแแแแ แกแแแแจแ แแ แแฎแแ แแกแแแ แแแแแแงแแแแแแ แกแแ แแแ แแแแ แแแแแแฌแแ แแ แแแแคแแแฃแ แแชแแแก.
แจแแแแซแแแแ แแแแแซแแ แกแแแฃแจแแแก แแแซแแแก แแแแแแก - แแแแแแแ แแฅแแแแแแแก แกแแแแขแแ แแกแ แแแแแซแจแ แแ แแแแฌแงแแ sudo puppet agent -t
. แฒแแกแแฆแแแ -t
(--test
) แ แแแแฃแ แแ แแแแชแแแก แ แแแแแแแแ แแแ แแแแขแก, แ แแแแแแ แฉแแ แแแแช แจแแกแแซแแแแแแแ แแแแแแแแฃแแแฃแ แแ. แแก แแแ แแแแขแ แแแ แแแแชแแแก แจแแแแแแก:
- แแ แแแฃแจแแแ แแแแแแแก แ แแแแแจแ (แแแแฃแแแกแฎแแแแแ แแแแแขแ แแฌแงแแแ แแแแแแแก แ แแแแแจแ);
- แแแแแ แแแ แแแขแแแแแแก แแแแแงแแแแแแก แจแแแแแ (แแแแฃแแแกแฎแแแแแ, แแแแแขแ แแแแแ แซแแแแแก แแฃแจแแแแแก แแ แแแแแแงแแแแแก แแแแคแแแฃแ แแชแแแก แงแแแแ แแแฎแแแแ แกแแแแจแ แแ แแฎแแ);
- แแแฌแแ แแ แแแขแแแฃแ แ แกแแแฃแจแแ แแฃแ แแแแ;
- แคแแแแแแจแ แชแแแแแแแแแแก แฉแแแแแแ.
แแแแแขแก แแฅแแก แแแแ แแชแแฃแแ แ แแแแแ แชแแแแแแแแแแก แแแ แแจแ - แจแแแแซแแแแ แแแแแแงแแแแ แแก, แ แแแแกแแช แแ แฎแแ แ แแแ แฌแแฃแแแแฃแแ, แ แแ แแแฌแแ แแ แกแฌแแ แ แแแแคแแแฃแ แแชแแ แแ แแกแฃแ แ แจแแแแแฌแแแ, แแแแแ แแขแฃแแแ แ แแก แจแแชแแแแก แแแแแขแ แแแแ แแชแแแก แแ แแก. แแก แ แแแแแ แฉแแ แแฃแแแ แแแ แแแแขแ แแ --noop
แแ แซแแแแแแก แฎแแแแ: sudo puppet agent -t --noop
.
แแแ แแ แแแแกแ, แจแแแแซแแแแ แฉแแ แแแ แแแแฃแจแแแ แแก แแแแแ แแแแก แแฃแ แแแแ - แแแกแจแ แแแฏแแแ แฌแแ แก แแแก แแแแ แจแแกแ แฃแแแแฃแ แงแแแแ แแแฅแแแแแแแแ: แแ แ แแกแฃแ แกแแก แจแแกแแฎแแ, แ แแแแแกแแช แแแแแแแ แแแฃแจแแแแแก, แแ แ แแกแฃแ แกแแก แแแ แแแแขแ แแแแ, แแฃ แ แ แแ แแแ แแแแแก แฃแจแแแแก. แ แ แแฅแแ แฃแแแ, แแก แแแ แแแแขแ แแ --debug
.
แกแแ แแแ แ
แแ แกแขแแขแแแจแ แแ แแแแแแฎแแแแ pappetserver-แแก แกแ แฃแ แแแงแแแแแแก แแ แแแกแแ แแแแแก แแแแแแแกแแแแก; แแฎแแแแ แแแขแงแแ, แ แแ แงแฃแแแแแ แแ แแก แกแแ แแแ แแก แกแ แฃแแแ แคแฃแแฅแชแแแแแแฃแ แ แแแ แกแแ, แ แแแแแแช แแ แกแแญแแ แแแแก แแแแแขแแแแ แแแแคแแแฃแ แแชแแแก แแชแแ แ แ แแแแแแแแแ แกแแแฃแจแแแ. แแแแแซแแแ (แแแฅแแแ, แแกแแแแ). แแแแแซแแแแก แฃแคแ แ แแแแ แ แแแแแแแแ แกแแญแแ แแแแก แแแ แแแฃแแแ แแแแก - แแแแฃแแแกแฎแแแแแ, แแแฏแแแแแแก แกแแ แแแ แ แฃแจแแแแก แแ แแฃแแแขแแก แแแฎ แแฃแจแแแก, แฃแคแ แ แแแแ แจแแกแ แฃแแแแแกแแแแก แกแแญแแ แแ แแแแ แ แแชแฎแแแก แแแแ แแ แแ แแ แแแแแแแฌแงแแแ แแแฎแกแแแ แแแแก แแแแแขแแแแก แแแแ แแ, แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ แกแแ แแแ แ แฃแแแขแแก แแ แแก แแแ แแแแแก แแแแแแก.
แแแแแก แแแแ แชแแแแแ - แแฃ แแก แแญแแ แแแแแ แกแฌแ แแคแแ แแ แแแ แขแแแแ, แแแจแแ แแแฎแแ (r10k)[
แแแแแ แแ 2: แแแแแ แแแแก แกแแฎแแแแซแฆแแแแแแ แแ แแแชแแแแแ
- แแแแแแแกแแ แแแแแ แแแแแแ แแแแกแแแจแ แแ แแแแแแ แขแแแแแจแ.
- แจแแแแแฎแแ แแแแกแแแ แแ แแแแแแ แขแแแแแ แแแแฃแแแแจแ แแ แแ แ แแแแแซแแแจแ, แ แแแแแแแช แแฆแฌแแ แแ แแแแแคแแกแขแแแก.
- แแแแแแงแแแแ แคแแฅแขแแแ.
- แแฃ แแแแแแแแแ if-แแแก แฐแแกแขแแแแก แกแแฎแแแแแแ แแแงแ แแแแแแ.
- แแแแแกแฃแคแแแ แจแแแแซแแแแ แแแแแแขแแ แแแ แแแแขแ แแแ แแแแกแแแแกแแแแก แแ แแแแแแ แขแแแแแแกแแแแก - แแก แฃแแแแแกแแ, แแแแ แ แแแแกแแก แกแฎแแฃแแจแ แแแแแแฃแแ แแแแแแชแแขแฃแ แ แแแแแแ/แแแแกแแแฆแแ แ.
แ แแขแแ แแแ แฉแแแ แแแแก แแแแแแแแแก แจแแแแแ แกแขแแขแแแจแ แแแแฎแกแแแ.
แแแกแแแแ
แแแแแ แแแแแกแ แฃแแแ แจแแกแแแแแ. แจแแแแแ แกแขแแขแแแจแ แแแแแงแแแแแ Hiera-แก, ENC-แกแ แแ PuppetDB-แแ.
แแแแแแแแฎแแแจแ แแแแแฌแแแแแแ แจแแฃแซแแแแ แแฎแแแแ แแแ แแแแกแขแ แแ แแแฃแ แแแแฎแแแ แแแแแแก.
แกแแแแแแแแแแจแ, แแแชแแแแแแ แแแขแ แแแกแแแแ - แจแแแแซแแแ แแแแฌแแ แ แกแขแแขแแแแ แจแแแแแ แแแแแแแ, แแแแชแ แฎแแ แแแแก, แ แแกแ แฌแแแแแฎแแแช แแแแแขแแ แแกแแแก:
- 59,1%แแแฌแแแแแ แแแ แแแแแขแฃแแ แแแแกแขแ แฃแฅแชแแแแ - แจแแแแแแ แแแแแก แกแแกแฃแแแแแแแ: แแแ แงแฃแแแแ, แ แฃแแแแแก แแ แกแฎแแ แแแแแแ แแแแแแแแฅแแแแแแ, แ แแกแฃแ แกแแแแก แจแแแแ แแแแแแแแ, แแฅแกแแแ แขแแ แแแฃแแ แ แแกแฃแ แกแแแ แแ แแแกแแแแซแแแแ แจแแ แแก แแแแฃแแแแแชแแ แแแฏแแแแแแก, แขแแแแแแก, แแ แแแแแแแ แแแแก, แแแแแชแแแแ แแแกแขแ แแฅแขแฃแแ แขแแแแแแก แกแแจแฃแแแแแแ.13
- 31,8%โแแ แแแ แแแแแฉแแแแก แแแแแแโ แแ แ แแแแ แแแแแแแแแ แแแ Avito-แจแ แกแฎแแแแแกแฎแแ แแแ แกแแแก แ แแแแแแแแ แแแแแข แกแแ แแแ แแแ แแ, แแ แแแชแแแจแ, แแแแแขแแก แกแแ แแแ แแก แแแแแแแกแขแ แแ แแแแก แแแฌแแแแแ.7
- 81,8%แ แแแแ แแฌแแ แ แแแ แแแแแขแฃแ แแแแก: แแแกแขแ แฃแแแแขแแชแแ, แแแแฃแแแแขแแชแแ, แขแแกแขแแ แแแ, CI/CD.18
แแแกแชแ แฎแแ 22 แแแแฎแแแ แแแแแแ. 9 แแแแฎแแแ แแแแแแ แแแแ แจแแแแแแ.
แฌแงแแ แ: www.habr.com