Puppet เปเบกเปเบเบฅเบฐเบเบปเบเบเบฒเบเบเบฑเบเบเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒ. เบกเบฑเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเปเบฒเปเบเบปเปเบฒเบเบฒเบเปเบเบชเบนเปเบฅเบฑเบเบเบตเปเบเปเบญเบเบเบฒเบเปเบฅเบฐเบฎเบฑเบเบชเบฒเบฅเบฑเบเบเบตเป.
เบเปเบญเบเปเบเปเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ Puppet เบซเบผเบฒเบเบเบงเปเบฒเบซเปเบฒเบเบตเปเบฅเปเบง. เบเปเปเบเบงเบฒเบกเบเบตเปเปเบกเปเบเบเบฒเบเปเบเปเบฅเบฐเบเบฑเบเบฅเปเบฒเบเบฑเบเปเบซเบกเปเบเบญเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเบธเบเบชเปเบฒเบเบฑเบเบเบฒเบเปเบญเบเบฐเบชเบฒเบเบเบฒเบเบเบฒเบ, เปเบเบดเปเบเบเบฐเบเปเบงเบเปเบซเปเบเบนเปเปเบฅเบตเปเบกเบเบปเปเบเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเปเบเบดเบเบเบงเบฒเบกเบชเปเบฒเบเบฑเบเบเบญเบ Puppet เปเบเปเบขเปเบฒเบเปเบงเบงเบฒ.
เบเปเปเบกเบนเบเบเบทเปเบเบเบฒเบ
เบฅเบฐเบเบปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบญเบ Puppet เปเบกเปเบ server-server, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบกเบฑเบเบเบฑเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ serverless เบเบตเปเบกเบตเบซเบเปเบฒเบเบตเปเบเปเบฒเบเบฑเบ.
เบฎเบนเบเปเบเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบถเบเบเบทเบเบเปเบฒเปเบเป: เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เบเบธเบเปเปเบเบดเปเบเบเบปเปเบงเปเบกเบ, เบฅเบนเบเบเปเบฒเบเบดเบเบเปเปเบเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบฅเบฐเบเปเบฒเปเบเปเบกเบฑเบ. เบเปเบฒเบเปเบฒเบเปเบเปเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ Ansible, เบเบงเบเปเบเบปเบฒเปเบเปเบฎเบนเบเปเบเบเบเบฒเบเบเบธเบเบเบนเปเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ: เบเบนเปเบเปเบฅเบดเบซเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเบเบฐเบเบงเบเบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบเบฑเปเบเบเปเบฒ, เบฅเบนเบเบเปเบฒเปเบญเบเบเบฐเบเปเปเบเปเบฒเปเบเปเบซเบเบฑเบ.
เปเบโเบฅเบฐโเบซเบงเปเบฒเบโเบเบฒเบโเบชเบทเปโเบชเบฒเบโเปเบเบทเบญโเบเปเบฒเบโ, เบเบฒเบโเปเบเบปเปเบฒโเบฅเบฐโเบซเบฑเบ TLS เบชเบญเบโเบเบฒเบโเปเบกเปเบโเปเบเปโเบเบทเบโเบเปเบฒโเปเบเปโ: เปเบเบทเปเบญเบโเปเบกเปโเบเปเบฒเบโเปเบฅเบฐโเบฅเบนเบโเบเปเบฒโเบกเบตโเบเบฐโเปเบโเบชเปเบงเบโเบเบปเบงโเบเบญเบโเปเบเบปเบฒโเปเบเบปเปเบฒโเปเบญเบโเปเบฅเบฐโเปเบโเบขเบฑเปเบโเบขเบทเบโเบเบตเปโเบชเบญเบโเบเปเบญเบโเบเบฑเบโ. เปเบเบเบเบปเบเบเบฐเบเบดเปเบเบตเบเปเบงเบตเบญเบญเบเปเบเบขเบฑเปเบเบขเบทเบเปเบซเปเบฅเบนเบเบเปเบฒ, เปเบเปเปเบเบซเบผเบฑเบเบเบฒเบเบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเปเบเป CA เบเบฒเบเบเบญเบ.
เบเบฒเบเปเบเบฐเบเปเบฒเบเปเบฝเบงเบเบฑเบ manifestos
เปเบเบเปเบฒเบชเบฑเบเบเบฒเบชเบฒ Puppet เบเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบ puppet เปเบเบทเปเบญเบกเบเปเป nodes (เบเปเป). เบเบฒเบเบเบฑเปเบเบเปเบฒเบชเปเบฒเบฅเบฑเบ nodes เปเบกเปเบเบเบฝเบ เปเบ manifestos เปเบเบเบฒเบชเบฒเบเบฒเบเบเบฝเบเปเบเบฅเปเบเบฅเบกเบเบดเปเบชเบ - Puppet DSL.
Puppet DSL เปเบเบฑเบเบเบฒเบชเบฒเบเบฐเบเบฒเบ. เบกเบฑเบเบญเบฐเบเบดเบเบฒเบเบชเบฐเบเบฒเบเบฐเบเบตเปเบเปเบญเบเบเบฒเบเบเบญเบ node เปเบเบฎเบนเบเปเบเบเบเบฒเบเบเบฐเบเบฒเบเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบชเปเบงเบเบเบธเบเบเบปเบ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ:
- เปเบเบฅเปเบกเบตเบขเบนเปเปเบฅเบฐเบกเบฑเบเบกเบตเปเบเบทเปเบญเบซเบฒเบชเบฐเปเบเบฒเบฐ.
- เบเบธเบเปเบเปเบเบทเบเบเบดเบเบเบฑเปเบ.
- เบเบฒเบเบเปเบฅเบดเบเบฒเบเปเบเปเปเบฅเบตเปเบกเบเบปเปเบเปเบฅเปเบง.
เบเบฑเบเบเบฐเบเบฒเบเบญเบเบชเบฒเบกเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเปเบเป:
- เบกเบตเบเบงเบฒเบกเปเบเบดเปเบเบเบฒเบญเบฒเปเบช, เบเบงเบเบกเบฑเบเบกเบตเบเบปเบเบเบฐเบเบปเบเบเปเปเบเปเบฒเบชเบฑเปเบเบเบตเปเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบทเบเบเปเบฒเปเบเป.
เบเบปเบงเบขเปเบฒเบ, "เบเบดเบเบเบฑเปเบเบเบธเบเบเปเบฒเบญเบดเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเปเปเบเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบเบเปเบฅเบดเบเบฒเบ." - เบกเบตเบเบฒเบเปเบเปเบเปเบเบทเบญเบ - เบเปเบฒเบเบฑเบเบเบฐเบเบฒเบเบญเบเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบ, เบกเบฑเบเบเบฐเบชเบปเปเบเบเบฒเบเปเบเปเบเปเบเบทเบญเบเปเบเบซเบฒเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเบเบญเบเบเบฑเบเบกเบฑเบ.
เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเปเบฝเบเปเบเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบตเบเบเปเบฅเบดเบเบฒเบเปเบซเบกเปเปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ.
เบเบญเบเบเบฒเบเบเบฑเปเบ, Puppet DSL เบกเบตเบซเบเปเบฒเบเบตเปเปเบฅเบฐเบเบปเบงเปเบ, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเปเบฒเบเบฐเปเบซเบผเบเบเบตเปเปเบเบทเปเบญเบเปเบเปเบฅเบฐเบเบปเบงเปเบฅเบทเบญเบ. เบเบปเบเปเบเบเบฒเบเบชเปเบฒเบเปเบเบเบเปเบฒเบฅเบญเบเบเปเบฒเบเปเบเบฑเบเปเบเปเบฎเบฑเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ - EPP เปเบฅเบฐ ERB.
Puppet เปเบกเปเบเบฅเบฒเบเบฅเบฑเบเบญเบฑเบเบชเบญเบเปเบ Ruby, เบเบฑเปเบเบเบฑเปเบเบเปเบฒเบเบงเบเบซเบผเบฒเบเบเบญเบเบเบฒเบเบเปเปเบชเปเบฒเบเปเบฅเบฐเบเปเปเบเปเบฒเบเบปเบเปเบกเปเบเปเบญเบปเบฒเบกเบฒเบเบฒเบเบเปเบญเบเบเบฑเปเบ. Ruby เบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฐเบซเบเบฒเบ Puppet - เปเบเบตเปเบกเปเบซเบเบเบปเบเบชเบฐเบฅเบฑเบเบชเบฑเบเบเปเบญเบ, เบเบฐเปเบเบเปเบซเบกเปเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ, เบซเบเปเบฒเบเบตเป.
เปเบเบเบฐเบเบฐเบเบตเป Puppet เบเปเบฒเบฅเบฑเบเปเบฎเบฑเบเบงเบฝเบ, manifests เบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐ node เบชเบฐเปเบเบฒเบฐเบขเบนเปเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบเปเบเบทเบเบฅเบงเบเบฅเบงเบกเปเบเบปเปเบฒเปเบเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต. เบฅเบฐโเบเบปเบ เปเบกเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบฅเบฐเบเบงเบฒเบกเบชเปเบฒเบเบฑเบเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒเบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเบดเบเปเบฅเปเบกเบนเบเบเปเบฒเบเบญเบเบซเบเปเบฒเบเบตเป, เบเบปเบงเปเบเปเบฅเบฐเบเบฒเบเบเบฐเบซเบเบฒเบเบเปเบฒเบเบฐเปเบซเบผเบเบเบฒเบเบเบฒเบกเปเบเบทเปเบญเบเปเบ.
syntax เปเบฅเบฐ codestyle
เบเบตเปเปเบกเปเบเบเบฒเบเบชเปเบงเบเบเบญเบเปเบญเบเบฐเบชเบฒเบเบเบฒเบเบเบฒเบเบเบตเปเบเบฐเบเปเบงเบเปเบซเปเบเปเบฒเบเปเบเบปเปเบฒเปเบ syntax เบเปเบฒเบเบปเบงเบขเปเบฒเบเบเบตเปเบชเบฐเบซเบเบญเบเปเบซเปเบเปเปเบเบฝเบเบเป:
syntax เบเบญเบเปเบเบเบชเปเบฒเบเบเบฒเบชเบฒเบเปเบฒเบเป. syntax เบเบฑเบเบเบฐเบเบฒเบเบญเบ. Syntax เบชเปเบฒเบฅเบฑเบเบเบฒเบเบญเบฐเบเบดเบเบฒเบ nodes.
เบเบตเปเปเบกเปเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบชเบดเปเบเบเบตเป manifest เปเบเบดเปเบเบเบทเบงเปเบฒ:
# ะะพะผะผะตะฝัะฐัะธะธ ะฟะธััััั, ะบะฐะบ ะธ ะผะฝะพะณะพ ะณะดะต, ะฟะพัะปะต ัะตัััะบะธ.
#
# ะะฟะธัะฐะฝะธะต ะบะพะฝัะธะณััะฐัะธะธ ะฝะพะดั ะฝะฐัะธะฝะฐะตััั ั ะบะปััะตะฒะพะณะพ ัะปะพะฒะฐ node,
# ะทะฐ ะบะพัะพััะผ ัะปะตะดัะตั ัะตะปะตะบัะพั ะฝะพะดั โ ั
ะพััะฝะตะนะผ (ั ะดะพะผะตะฝะพะผ ะธะปะธ ะฑะตะท)
# ะธะปะธ ัะตะณัะปััะฝะพะต ะฒััะฐะถะตะฝะธะต ะดะปั ั
ะพััะฝะตะนะผะพะฒ, ะธะปะธ ะบะปััะตะฒะพะต ัะปะพะฒะพ default.
#
# ะะพัะปะต ััะพะณะพ ะฒ ัะธะณััะฝัั
ัะบะพะฑะบะฐั
ะพะฟะธััะฒะฐะตััั ัะพะฑััะฒะตะฝะฝะพ ะบะพะฝัะธะณััะฐัะธั ะฝะพะดั.
#
# ะะดะฝะฐ ะธ ัะฐ ะถะต ะฝะพะดะฐ ะผะพะถะตั ะฟะพะฟะฐััั ะฟะพะด ะฝะตัะบะพะปัะบะพ ัะตะปะตะบัะพัะพะฒ. ะัะพ ะฟัะธะพัะธัะตั
# ัะตะปะตะบัะพัะพะฒ ะฝะฐะฟะธัะฐะฝะพ ะฒ ััะฐััะต ะฟัะพ ัะธะฝัะฐะบัะธั ะพะฟะธัะฐะฝะธั ะฝะพะด.
node 'hostname', 'f.q.d.n', /regexp/ {
# ะะพะฝัะธะณััะฐัะธั ะฟะพ ัััะธ ัะฒะปัะตััั ะฟะตัะตัะธัะปะตะฝะธะตะผ ัะตััััะพะฒ ะธ ะธั
ะฟะฐัะฐะผะตััะพะฒ.
#
# ะฃ ะบะฐะถะดะพะณะพ ัะตััััะฐ ะตััั ัะธะฟ ะธ ะฝะฐะทะฒะฐะฝะธะต.
#
# ะะฝะธะผะฐะฝะธะต: ะฝะต ะผะพะถะตั ะฑััั ะดะฒัั
ัะตััััะพะฒ ะพะดะฝะพะณะพ ัะธะฟะฐ ั ะพะดะธะฝะฐะบะพะฒัะผะธ ะฝะฐะทะฒะฐะฝะธัะผะธ!
#
# ะะฟะธัะฐะฝะธะต ัะตััััะฐ ะฝะฐัะธะฝะฐะตััั ั ะตะณะพ ัะธะฟะฐ. ะขะธะฟ ะฟะธัะตััั ะฒ ะฝะธะถะฝะตะผ ัะตะณะธัััะต.
# ะัะพ ัะฐะทะฝัะต ัะธะฟั ัะตััััะพะฒ ะฝะฐะฟะธัะฐะฝะพ ะฝะธะถะต.
#
# ะะพัะปะต ัะธะฟะฐ ะฒ ัะธะณััะฝัั
ัะบะพะฑะบะฐั
ะฟะธัะตััั ะฝะฐะทะฒะฐะฝะธะต ัะตััััะฐ, ะฟะพัะพะผ ะดะฒะพะตัะพัะธะต,
# ะดะฐะปััะต ะธะดัั ะพะฟัะธะพะฝะฐะปัะฝะพะต ะฟะตัะตัะธัะปะตะฝะธะต ะฟะฐัะฐะผะตััะพะฒ ัะตััััะฐ ะธ ะธั
ะทะฝะฐัะตะฝะธะน.
# ะะฝะฐัะตะฝะธั ะฟะฐัะฐะผะตััะพะฒ ัะบะฐะทัะฒะฐัััั ัะตัะตะท ั.ะฝ. hash rocket (=>).
resource { 'title':
param1 => value1,
param2 => value2,
param3 => value3,
}
}
เบเบฒเบเบซเบเปเปเปเปเบฒ เปเบฅเบฐ เบเบฒเบเปเบเปเบเปเบเบงเบเปเปเปเบกเปเบเบชเปเบงเบเบเบตเปเบเปเบญเบเบเบฒเบเบเบญเบ manifest, เปเบเปเบกเบตเบเบณเปเบเบฐเบเบณ
- เบซเบเปเปเปเปเบฒเบชเบญเบเบเบฐเบซเบงเปเบฒเบ, เปเบเบเบเปเปเปเบเปเปเบเป.
- เบงเบปเบเปเบฅเบฑเบ curly เบเบทเบเปเบเบเบญเบญเบเปเบเบเบเปเบญเบเบซเบงเปเบฒเบ;
- เปเบเบทเปเบญเบเปเบฒเบเบเบธเบเบซเบผเบฑเบเบเบฒเบเปเบเปเบฅเบฐเบเบฒเบฅเบฒเบกเบดเปเบเบต, เบฅเบงเบกเบเบฑเบเบญเบฑเบเบชเบธเบเบเปเบฒเบ. เปเบเปเบฅเบฐเบเบปเบงเบเปเบฒเบเบปเบเปเบกเปเบเบขเบนเปเปเบเปเบชเบฑเปเบเปเบเบเบเปเบฒเบเบซเบฒเบ. เบเปเปเบเบปเบเปเบงเบฑเปเบเปเบกเปเบเปเบฎเบฑเบเบชเปเบฒเบฅเบฑเบเบเปเบฅเบฐเบเบตเบเบตเปเบเปเปเบกเบตเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเปเบฅเบฐเบซเบเบถเปเบเบเบฒเบฅเบฒเบกเบดเปเบเบต: เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฝเบเปเบเบซเบเบถเปเบเปเบเบงเปเบฅเบฐเบเปเปเบกเบตเปเบเบทเปเบญเบเบซเบกเบฒเบเบเบธเบ (i.e.
resource { 'title': }
ะธresource { 'title': param => value }
). - เบฅเบนเบเบชเบญเบเบขเบนเปเปเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบงเบเบเบฐเบขเบนเปเปเบเบฅเบฐเบเบฑเบเบเบฝเบงเบเบฑเบ.
- เบฅเบนเบเบชเบญเบเบเบงเบฒเบกเบชเปเบฒเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบทเบเบเบฝเบเบขเบนเปเบเบฒเบเบซเบเปเบฒเบเบญเบเบเบงเบเปเบเบปเบฒ.
เบชเบฐเบเบฒเบเบเบตเปเบเบญเบเปเบเบฅเปเปเบ pappetserver
เบชเปเบฒเบฅเบฑเบเบเปเบฒเบญเบฐเบเบดเบเบฒเบเปเบเบตเปเบกเปเบเบตเบก, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเปเบเบฐเบเปเบฒเปเบเบงเบเบงเบฒเบกเบเบดเบเบเบญเบ "เบฅเบฐเบเบปเบเบฎเบฒเบ". เปเบเปเบฅเบเบฐเบเปเบฅเบตเบฎเบฒเบเปเบกเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเบกเบตเบเบฒเบเบเบฑเปเบเบเปเบฒ Puppet เบชเปเบฒเบฅเบฑเบ node เบชเบฐเปเบเบฒเบฐ.
เปเบเปเบฅเบเบฐเบเปเบฅเบตเบฎเบฒเบเปเบเบเบเปเบฒเบเบเบฑเบเปเบเบเบฒเบกเบชเบฐเบเบฑเบเบเบญเบ Puppet เปเบฅเบฐเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเปเบเป. เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบกเปเบเบเบธเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบญเบเบฐเบฅเบฒเบเบเบตเปเปเบเบฑเบเปเบงเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเปเบเบเบเปเบฒเบเบซเบฒเบ. เบเบปเบเบเบฐเบเบดเปเบฅเปเบงเปเบเปเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเบเบฑเบ git, เปเบเบเปเบฅเบฐเบเบตเบเบตเปเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบกเปเบเบชเปเบฒเบเบเบฒเบเบชเบฒเบเบฒ git. เบเบฑเปเบเบเบฑเปเบ, เปเบเปเบฅเบฐ node เปเบกเปเบเบเบฑเปเบเบขเบนเปเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบซเบเบถเปเบเบซเบผเบทเบญเบทเปเบ. เบเบตเปเบชเบฒเบกเบฒเบเบเบทเบเบเบฑเปเบเบเปเบฒเปเบ node เบเบปเบงเบเบญเบเบกเบฑเบเปเบญเบ, เบซเบผเบทเปเบ ENC, เปเบเบดเปเบเบเปเบญเบเบเบฐเปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบเบเบปเบเบเบงเบฒเบกเบเปเปเปเบ.
- เปเบเบชเบฐเบเบฑเบเบเบตเบชเบฒเบก ("Puppet เปเบเบปเปเบฒ") เปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบทเปเบเบเบฒเบเปเบกเปเบ
/etc/puppet
. เบเบฒเบเบเปเบฒเปเบเปเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบเบฑเบเบเบฒเบเปเบฅเบทเบญเบ - เบเบปเบงเบขเปเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเปเบเบงเบเบกเบฑเบเบเบฑเบ Puppet เปเบเบปเปเบฒ. เบเปเบฒเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบทเบเบเปเบฒเปเบเป, เบเบงเบเบกเบฑเบเบกเบฑเบเบเบฐเบเบทเบเปเบเบฑเบเปเบงเปเปเบ/etc/puppet/environments
, เปเบเปเบฅเบเบฐเบเปเบฅเบตเบฎเบฒเบเบเบฐเปเบเบฑเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก. เบเปเบฒเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเปเปเปเบเปเบเบทเบเบเปเบฒเปเบเป, เปเบเปเบฅเบเบฐเบเปเบฅเบตเบฎเบฒเบเบเบฐเปเบเบฑเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบทเปเบเบเบฒเบ. - เปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบเบชเบฐเบเบฑเบเบเบตเบชเบตเป ("Puppet เปเบซเบกเป"), เบเบฒเบเบเปเบฒเปเบเปเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบเปเบเบฒเบเปเบเบฑเบเบเบฑเบเบเบฑเบ, เปเบฅเบฐเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบทเปเบเบเบฒเบเปเบเปเบเบทเบเบเปเบฒเบเปเบ.
/etc/puppetlabs/code
. เบเบฒเบกโเบเบฑเปเบโเปเบฅเปเบง, เบชเบดเปเบโเปเบงเบโเบฅเปเบญเบกโเบเบทเบโเปเบเบฑเบโเปเบงเป/etc/puppetlabs/code/environments
, root directory เปเบกเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก.
เบเปเบญเบเบกเบตเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเปเบญเบเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบฎเบฒเบ manifests
, เปเบเบดเปเบเบเบฐเบเบญเบเบเปเบงเบเบซเบเบถเปเบเบซเบผเบทเบซเบผเบฒเบ manifests เบญเบฐเบเบดเบเบฒเบ nodes. เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเบงเบเบกเบตเบเบฑเบเบเบตเบเปเบญเบ modules
, เปเบเบดเปเบเบเบฐเบเบญเบเบเปเบงเบเปเบกเบเบนเบ. เบเปเบญเบเบเบฐเบเบญเบเปเบเบปเปเบฒเบงเปเบฒเบกเบตเปเบกเบเบนเบเปเบเปเบเปเบเปเปเบกเบฒ. เบเบญเบเบเบฒเบเบเบฑเปเบ, Puppet เปเบเบปเปเบฒเบเบฑเบเบญเบฒเบเบเบฐเบกเบต subdirectory files
, เปเบเบดเปเบเบเบฐเบเบญเบเบเปเบงเบเปเบเบฅเปเบเปเบฒเบเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบฅเบญเบเปเบเบเบตเป nodes. เปเบ Puppet เปเบซเบกเป, เปเบเบฅเปเบเบฑเบเบซเบกเบปเบเปเบกเปเบเบเบทเบเบเบฑเบเปเบชเปเปเบเปเบกเบเบนเบ.
เปเบเบฅเป Manifest เบกเบตเบชเปเบงเบเบเบฐเบซเบเบฒเบ .pp
.
เบชเบญเบเบชเบฒเบกเบเบปเบงเบขเปเบฒเบเบเบฒเบเบเปเปเบชเบนเป
เบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบญเบ node เปเบฅเบฐเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเปเบฝเบงเบเบฑเบเบกเบฑเบ
เปเบ node เปเบเป server1.testdomain
เปเบเบฅเปเบเปเบญเบเบเบทเบเบชเปเบฒเบเบเบทเปเบ /etc/issue
เบเบฑเบโเปเบเบทเปเบญโเปเบโ Debian GNU/Linux n l
. เปเบเบฅเปเบเบฐเบเปเบญเบเปเบเบฑเบเปเบเบปเปเบฒเบเบญเบเปเบเบเบเบนเปเปเบเป เปเบฅเบฐเบเบธเปเบก root
, เบชเบดเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฐเบเปเบญเบ 644
.
เบเบงเบเปเบฎเบปเบฒเบเบฝเบ manifesto:
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 ะฒ ะฝะฐัะฐะปะต ะฑัะดะตั ะฒะพัะฟัะธะฝััะพ ะบะฐะบ ะทะฐะฟะธัะฐะฝะฝะพะต ะฒ ะฒะพััะผะตัะธัะฝะพะน ัะธััะตะผะต, ะธ ะฒัั ะฟะพะนะดัั ะฝะต ัะฐะบ, ะบะฐะบ ะทะฐะดัะผะฐะฝะพ
}
}
เบเบงเบฒเบกเบชเปเบฒเบเบฑเบเบฅเบฐเบซเบงเปเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบ node
เปเบ node เปเบเป server2.testdomain
nginx เบเปเบญเบเปเบเปเปเบฅเปเบ, เปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบตเปเบเบฝเบกเปเบงเปเบเปเบญเบเบซเบเปเบฒเบเบตเป.
เปเบซเป decompose เบเบฑเบเบซเบฒ:
- เบเบธเบเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบดเบเบเบฑเปเบ
nginx
. - เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบเปเบฒเปเบเบฑเบเบเบตเปเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฐเบเบทเบเบเบฑเบเบฅเบญเบเบเบฒเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ.
- เบเบฒเบเบเปเบฅเบดเบเบฒเบเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบ
nginx
. - เบเปเบฒเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบทเบเบเบฑเบเบเบธเบ, เบเบฒเบเบเปเบฅเบดเบเบฒเบเบเปเบญเบเบเบทเบเปเบฅเบตเปเบกเบเบปเปเบเปเบซเบกเป.
เบเบงเบเปเบฎเบปเบฒเบเบฝเบ manifesto:
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 ะฟะพะปััะฐะตั ัะฒะตะดะพะผะปะตะฝะธะต,
# ัะพะพัะฒะตัััะฒัััะธะน ัะตัะฒะธั ะฟะตัะตะทะฐะฟััะบะฐะตััั.
}
เปเบเบทเปเบญเปเบฎเบฑเบเบงเบฝเบเบเบตเป, เบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบฐเบกเบฒเบเบชเบฐเบเบฒเบเบเบตเปเปเบเบฅเปเบเปเปเปเบเบเบตเปเบขเบนเปเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ puppet:
/etc/puppetlabs/code/environments/production/ # (ััะพ ะดะปั ะฝะพะฒะพะณะพ ะะฐะฟะฟะตัะฐ, ะดะปั ััะฐัะพะณะพ ะบะพัะฝะตะฒะพะน ะดะธัะตะบัะพัะธะตะน ะฑัะดะตั /etc/puppet)
โโโ manifests/
โ โโโ site.pp
โโโ modules/
โโโ example/
โโโ files/
โโโ nginx-conf/
โโโ nginx.conf
โโโ mime.types
โโโ conf.d/
โโโ some.conf
เบเบฐเปเบเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ
เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเปเบเบฑเบกเบเบญเบเบเบฐเปเบเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเบฒเบกเบฒเบเบเบปเบเปเบเปเบเบตเปเบเบตเป
เปเบญเบเบฐเบชเบฒเบ
เบเบฑเบเบเบฒเบเปเบเบฅเป, เปเบเปเบฅเบเบฐเบเปเบฅเบต, symlinks, เปเบเบทเปเบญเปเบเบเบญเบเบกเบฑเบ, เปเบฅเบฐเบชเบดเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบ.
เบเบฒเบฅเบฒเบกเบดเปเบเบต:
- เบเบทเปเบเบฑเบเบเบฐเบเบฒเบเบญเบ - เปเบชเบฑเปเบโเบเบฒเบโเปเบโเบซเบฒโเปเบเบฅโเป (เบเบฒเบโเปเบฅเบทเบญเบโเบญเบทเปเบโ)
- เปเบชเบฑเปเบเบเบฒเบ - เปเบชเบฑเปเบโเบเบฒเบโเปเบโเบซเบฒโเปเบเบฅโเป (เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบกเบฑเบโเบเปเปโเปเบเปโเบฅเบฐโเบเบธโเปเบงเปโเปเบโเบเบทเปโ)
- เบฎเบฑเบเบเบฐเบเบฑเบ - เบเบฐโเปเบเบโเปเบเบฅโเปโ:
absent
- เบฅเบถเบโเปเบเบฅโเปโpresent
โ เบเปเบญเบโเบกเบตโเปเบเบฅโเปโเบเบญเบโเบเบฐโเปเบเบโเปเบโเบซเบเบถเปเบ (เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเปเปโเบกเบตโเปเบเบฅโเปโ, เปเบเบฅโเปโเบเบปเบโเบเบฐโเบเบดโเบเบฐโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบชเปเบฒเบโเบเบฑเปเบโ)file
- เปเบเบฅโเปโเบเบปเบโเบเบฐโเบเบดโdirectory
- เปเบเปเบฅเบเบฐเบเปเบฅเบตlink
- เบฅเบดเปเบเบเป
- เปเบเบทเปเบญเปเบ โ เปเบเบทเปเบญโเปเบโเบเบญเบโเปเบเบฅโเป (เปเบซเบกเบฒเบฐโเบชเบปเบกโเบชเปเบฒโเบฅเบฑเบโเปเบเบฅโเปโเบเบปเบโเบเบฐโเบเบดโ, เบเปเปโเบชเบฒโเบกเบฒเบโเบเปเบฒโเปเบเปโเบฎเปเบงเบกโเบเบฑเบโ เปเบซเบผเปเบ เบซเบผเบท เปเบเบปเปเบฒโเบซเบกเบฒเบ)
- เปเบซเบผเปเบ โ เบเบฒเบโเปเบเบทเปเบญเบกโเบเปเปโเบเบฑเบโเปเบชเบฑเปเบโเบเบฒเบโเบเบตเปโเบเปเบฒเบโเบเปเบญเบโเบเบฒเบโเบชเปเบฒโเปเบเบปเบฒโเปเบเบทเปเบญโเปเบโเบเบญเบโเปเบเบฅโเป (เบเปเปโเบชเบฒโเบกเบฒเบโเบเปเบฒโเปเบเปโเบฎเปเบงเบกโเบเบฑเบโ เปเบเบทเปเบญเปเบ เบซเบผเบท เปเบเบปเปเบฒโเบซเบกเบฒเบ). เบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเบเบปเบเปเบเบฑเบ URI เบเบตเปเบกเบตเปเบเบเบเบฒเบ
puppet:
(เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบฅเปเบเบฒเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ puppet เบเบฐเบเบทเบเบเปเบฒเปเบเป), เปเบฅเบฐเบกเบตเปเบเบเบเบฒเบhttp:
(เบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเบซเบงเบฑเบโเบงเปเบฒโเบเบฐโเปเบเบฑเบโเบเบตเปโเบเบฐโเปเบเปเบโเบชเบดเปเบโเบเบตเปโเบเบฐโเปเบเบตเบโเบเบถเปเบโเปเบโเบเปโเบฅเบฐโเบเบตโเบเบตเป), เปเบฅเบฐโเปเบเบดเบโเปเบกเปเบโเบงเปเบฒโเบกเบตโเปเบเบโเบงเบฒเบfile:
เบซเบผเบทเปเบเบฑเบเปเบชเบฑเปเบเบเบฒเบเบขเปเบฒเบเปเบเปเบเบดเบเบเบตเปเบเปเปเบกเบต schema (เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบฅเปเบเบฒเบ FS เบเปเบญเบเบเบดเปเบเปเบ node เบเบฐเบเบทเบเบเปเบฒเปเบเป) - เปเบเบปเปเบฒโเบซเบกเบฒเบ โ เบเปเบญเบเบเบตเป symlink เบเบงเบเบเบตเป (เบเปเปเบชเบฒเบกเบฒเบเปเบเปเบฎเปเบงเบกเบเบฑเบเบเบฑเบ เปเบเบทเปเบญเปเบ เบซเบผเบท เปเบซเบผเปเบ)
- เปเบเบปเปเบฒเบเบญเบ โ เบเบนเปโเปเบเปโเบเบตเปโเบเบงเบโเบเบฐโเปเบเบฑเบโเปเบเบปเปเบฒโเบเบญเบโเปเบเบฅโเปโ
- เบเบธเปเบก โ เบเบธเปเบกโเบเบตเปโเปเบเบฅโเปโเบเบงเบโเบเบฐโเปเบเบฑเบโ
- เบฎเบนเบเปเบเบเบเบฒเบ - เบเบฒเบโเบญเบฐโเบเบธโเบเบฒเบโเปเบเบฅโเป (เปเบเบฑเบ stringโ)
- เบเบฐเบเบฒเบเบฒเบ - เปเบฎเบฑเบเปเบซเปเบเบฒเบเบเบฐเบกเบงเบเบเบปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต recursive
- purge - เปเบเบตเบเปเบเปเบเบฒเบเบฅเบถเบเปเบเบฅเปเบเบตเปเบเปเปเปเบเปเบญเบฐเบเบดเบเบฒเบเปเบงเปเปเบ Puppet
- เบเบปเบเบเบฑเบเบเบฑเบเปเบเป - เปเบฎเบฑเบเปเบซเปเบชเบฒเบกเบฒเบเบฅเบถเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเบเปเปเปเบเปเบญเบฐเบเบดเบเบฒเบเปเบงเปเปเบ Puppet
เบเบธเบ
เบเบดเบเบเบฑเปเบ เปเบฅเบฐเปเบญเบปเบฒเปเบเบฑเบเปเบเบเบญเบญเบ. เบชเบฒเบกเบฒเบเบเบฑเบเบเบฒเบเบเบฑเบเบเบฒเบเปเบเปเบเปเบเบทเบญเบ - เบเบดเบเบเบฑเปเบเปเบเบฑเบเปเบเบฑเบเปเบซเบกเปเบเปเบฒเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบทเบเบฅเบฐเบเบธ reinstall_on_refresh.
เบเบฒเบฅเบฒเบกเบดเปเบเบต:
- เบเบทเปเบเบฑเบเบเบฐเบเบฒเบเบญเบ - เบเบทเปโเบเบธเบ (เปเบฅเบทเบญเบโเปเบเปโ)
- เบเบทเป - เบเบทเปโเบเบธเบ (เบเปเบฒโเบเปเปโเปเบเปโเบฅเบฐโเบเบธโเปเบงเปโเปเบโเบเบทเปโ)
- เบเบนเปเปเบซเปเบเปเบฅเบด - เบเบนเปเบเบฑเบเบเบฒเบเบเบธเบเบเบตเปเบเบฐเปเบเป
- เบฎเบฑเบเบเบฐเบเบฑเบ - เบชเบฐเบเบฒเบเบฐเบเบตเปเบเปเบญเบเบเบฒเบเบเบญเบเบเบธเบ:
present
,installed
- เบชเบฐโเบเบฑเบโเปเบโเบซเบเบถเปเบโเบเบดเบโเบเบฑเปเบโlatest
- เบชเบฐโเบเบฑเบโเบซเบฅเปเบฒโเบชเบธเบโเบเบดเบโเบเบฑเปเบโabsent
- เบฅเบถเบโเปเบฅเปเบง (apt-get remove
)purged
โ เบฅเบถเบโเปเบโเบเปเบญเบกโเบเบฑเบโเปเบเบฅโเปโเบเบฒเบโเบเบฑเปเบโเบเปเบฒ (apt-get purge
)held
- เบชเบฐโเบเบฑเบโเบซเบธเปเบกโเบซเปเปโเบเบทเบโเบฅเบฑเบญเบ (apt-mark hold
)ะปัะฑะฐั ะดััะณะฐั ัััะพะบะฐ
โ เบชเบฐโเบเบฑเบโเบเบตเปโเบเปเบฒโเบเบปเบโเปเบงเปโเปเบกเปเบโเบเบดเบโเบเบฑเปเบโ
- reinstall_on_refresh - เบเปเบฒ
true
, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เปเบกเบทเปเบญเปเบเปเบฎเบฑเบเบเบฒเบเปเบเปเบเปเบเบทเบญเบ, เบเบธเบเบเบฐเบเบทเบเบเบดเบเบเบฑเปเบเปเบซเบกเป. เปเบเบฑเบเบเบฐเปเบซเบเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบเบขเบฒเบเปเบเบเบญเบตเบเปเบชเปเปเบซเบผเปเบ, เบเปเบญเบเบเบตเปเบเบฒเบเบซเบธเปเบกเบซเปเป rebuilding เบญเบฒเบเบเบฐเบกเบตเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบเปเบเปเบงเบฅเบฒเบเบตเปเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบฒเบเบเปเปเบชเปเบฒเบ. เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบfalse
.
เบเบฒเบเบเปเบฅเบดเบเบฒเบ
เบเบธเปเบกเบเบญเบเบเบฒเบเบเปเบฅเบดเบเบฒเบ. เบชเบฒเบกเบฒเบเบเบฐเบกเบงเบเบเบปเบเบเบฒเบเปเบเปเบเปเบเบทเบญเบ - เปเบเบตเบเบเปเบฅเบดเบเบฒเบเบเบทเบเปเปเป.
เบเบฒเบฅเบฒเบกเบดเปเบเบต:
- เบเบทเปเบเบฑเบเบเบฐเบเบฒเบเบญเบ - เบเบฒเบโเบเปโเบฅเบดโเบเบฒเบโเบเบตเปโเบเบฐโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบเบธเปเบกโเบเบญเบ (เบเบฒเบโเปเบฅเบทเบญเบโเบญเบทเปเบโ)
- เบเบทเป - เบเบฒเบโเบเปโเบฅเบดโเบเบฒเบโเบเบตเปโเบเปเบญเบโเบเบฒเบโเบเบธเปเบกโเบเบญเบ (เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเปเปโเปเบเปโเบฅเบฐโเบเบธโเปเบงเปโเปเบโเบเบทเปโ)
- เบฎเบฑเบเบเบฐเบเบฑเบ - เบฅเบฑเบโเบเบตเปโเบเปเบญเบโเบเบฒเบโเบเบญเบโเบเบฒเบโเบเปโเบฅเบดโเบเบฒเบโ:
running
- เปเบเบตเบเบเบปเบงstopped
- เบขเบธเบ
- เปเบฎเบฑเบเปเบซเปเบชเบฒเบกเบฒเบ - เบเบงเบโเบเบธเบกโเบเบงเบฒเบกโเบชเบฒโเบกเบฒเบโเปเบโเบเบฒเบโเปเบฅเบตเปเบกโเบเบปเปเบโเบเบฒเบโเบเปโเบฅเบดโเบเบฒเบโ:
true
- เบญเบฑเบโเบเบฐโเปเบโเบกเบฑเบโเปเบเบตเบโเปเบเปโเบเบฒเบ (systemctl enable
)mask
- เบเบญเบกโเบเบปเบง (systemctl mask
)false
- เบญเบฑเบโเบเบฐโเปเบโเบกเบฑเบโเปเบเปโเบเบทเบโเบเบดโเบเบฒเบ (systemctl disable
)
- เปเบฅเบตเปเบกโเบเบปเปเบโเปเบซเบกเป - เบเปเบฒโเบชเบฑเปเบโเปเบเบทเปเบญ restart เบเบฒเบโเบเปโเบฅเบดโเบเบฒเบโ
- เบชเบฐเบเบฒเบเบฐเบเบฒเบ - เบเปเบฒโเบชเบฑเปเบโเปเบเบทเปเบญโเบเบงเบโเบเบฒโเปเบเบดเปเบโเบชเบฐโเบเบฒโเบเบฐโเบเบฒเบโเบเปโเบฅเบดโเบเบฒเบโ
- เปเบฅเบตเปเบกเปเปเปเปเบฅเปเบง โ เบเบตเปเบเบญเบเบงเปเบฒเบเบฒเบเบเปเบฅเบดเบเบฒเบ initscript เบฎเบญเบเบฎเบฑเบเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเปเปเปเบซเบผเบทเบเปเป. เบเปเบฒ
false
เปเบฅเบฐเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเปเบกเปเบเบฅเบฐเบเบธเปเบงเป เปเบฅเบตเปเบกโเบเบปเปเบโเปเบซเบกเป - เบเปเบฒเบเบญเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบตเปเบเบทเบเบเปเบฒเปเบเป. เบเปเบฒfalse
เปเบฅเบฐเบเบฒเบฅเบฒเบกเบดเปเบเบต เปเบฅเบตเปเบกโเบเบปเปเบโเปเบซเบกเป เบเปเปเปเบเปเบฅเบฐเบเบธ - เบเบฒเบเบเปเบฅเบดเบเบฒเบเบขเบธเบเปเบฅเบฐเปเบฅเบตเปเบก restart (เปเบเป systemd เปเบเปเบเปเบฒเบชเบฑเปเบsystemctl restart
). - hasstatus โ เบเบตเปเบเบญเบเบงเปเบฒเบเปเบฅเบดเบเบฒเบ initscript เบฎเบญเบเบฎเบฑเบเบเบณเบชเบฑเปเบเบซเบผเบทเบเปเป
status
. เบเปเบฒfalse
, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบทเบเบเปเบฒเปเบเป เบชเบฐเบเบฒเบเบฐเบเบฒเบ. เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบtrue
.
exec
เบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบชเบฑเปเบเบเบฒเบเบเบญเบ. เบเปเบฒเบเปเบฒเบเบเปเปเบฅเบฐเบเบธเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ เบชเปเบฒเบ, เปเบเบปเปเบฒเบเบฑเปเบ, เปเบงเบฑเปเบเปเบชเบเปเบเปเบงเปเบฒ เบซเบผเบท เบชเบปเบเบเบทเปเบ, เบเปเบฒเบชเบฑเปเบเบเบฐเบเบทเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบธเบเบเบฑเปเบเบเบตเป Puppet เบเบทเบเปเบฅเปเบ. เบชเบฒเบกเบฒเบเบเบฐเบกเบงเบเบเบปเบเบเบฒเบเปเบเปเบเปเบเบทเบญเบ - เปเบฅเปเบเบเบณเบชเบฑเปเบ.
เบเบฒเบฅเบฒเบกเบดเปเบเบต:
- เบเบทเปเบเบฑเบเบเบฐเบเบฒเบเบญเบ - เบเปเบฒโเบชเบฑเปเบโเบเบตเปโเบเบฐโเบเบฐโเบเบดโเบเบฑเบ (เบเบฒเบโเปเบฅเบทเบญเบโเบญเบทเปเบโ)
- เบเปเบฒเบชเบฑเปเบ - เบเปเบฒโเบชเบฑเปเบโเบเบตเปโเบเบฐโเบเบฐโเบเบดโเบเบฑเบ (เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบกเบฑเบโเบเปเปโเปเบเปโเบฅเบฐโเบเบธโเปเบงเปโเปเบโเบเบทเปโ)
- เปเบชเบฑเปเบเบเบฒเบ โ เปเบชเบฑเปเบโเบเบฒเบโเบเบตเปโเบเบฐโเบเบญเบโเบซเบฒโเปเบเบฅโเปโเบเบฐโเบเบดโเบเบฑเบโเปเบเปโ
- เปเบเบปเปเบฒเบเบฑเปเบ โ เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเปเบฒโเบชเบฑเปเบโเบเบตเปโเบฅเบฐโเบเบธโเปเบงเปโเปเบโเบเบฒโเบฅเบฒโเบกเบดโเปเบเบตโเบเบตเปโเบชเปเบฒโเปเบฅเบฑเบโเบเปเบงเบโเบฅเบฐโเบซเบฑเบโเบเบฑเบโเบชเบนเบโ, เบเปเบฒโเบชเบฑเปเบโเบเบปเปเบโเบเปโเบเบฐโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบเบฐโเบเบดโเบเบฑเบโ
- เปเบงเบฑเปเบเปเบชเบเปเบเปเบงเปเบฒ โ เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเปเบฒโเบชเบฑเปเบโเบเบตเปโเบฅเบฐโเบเบธโเปเบงเปโเปเบโเบเบฒโเบฅเบฒโเบกเบดโเปเบเบตโเบเบตเปโเบชเปเบฒโเปเบฅเบฑเบโเบเปเบงเบโเบฅเบฐโเบซเบฑเบโเบเบตเปโเบเปเปโเปเบกเปเบโเบชเบนเบโ, เบเปเบฒโเบชเบฑเปเบโเบเบปเปเบโเบเปโเบเบฐโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบเบฐโเบเบดโเบเบฑเบ
- เบชเปเบฒเบ โ เบเปเบฒเปเบเบฅเปเบเบตเปเบฅเบฐเบเบธเปเบงเปเปเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบตเปเบเปเปเบกเบต, เบเปเบฒเบชเบฑเปเบเบซเบผเบฑเบเบเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบ
- เบชเบปเบเบเบทเปเบ - เบเปเบฒ
true
, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบชเบฑเปเบเบเบฐเบเบทเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฝเบเปเบเปเปเบกเบทเปเบญ exec เบเบตเปเปเบเปเบฎเบฑเบเบเบฒเบเปเบเปเบเปเบเบทเบญเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบญเบทเปเบเป - cwd - เปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบชเบฑเปเบ
- เบเบนเปเปเบเป - เบเบนเปเปเบเปเบเบฒเบเปเบเบเบตเปเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบชเบฑเปเบ
- เบเบนเปเปเบซเปเบเปเบฅเบด - เบงเบดโเบเบตโเบเบฒเบโเบเปเบฒโเปเบเบตเบโเบเบฒเบโเบเปเบฒโเบชเบฑเปเบโ:
- เบเบงเบ โ เบเบฐโเบเบงเบโเบเบฒเบโเปเบเบฑเบโเบเปเบญเบโเปเบเปโเบเบทเบโเบชเปเบฒเบโเบเบฑเปเบโเบเบถเปเบโเบขเปเบฒเบโเบเปเบฒเบโเบเบฒเบโ, เปเบซเปโเปเบเปโเปเบเบงเปโเบฒโเบเบฒเบโเบฅเบฐโเบเบธโ เปเบชเบฑเปเบเบเบฒเบ
- เบซเบญเบ - เบเปเบฒเบชเบฑเปเบเบเบทเบเปเบเบตเบเบเบปเบงเปเบเปเบเบฐ
/bin/sh
, เบญเบฒเบเบเบฐเบเปเปเบเบทเบเบเปเบฒเบเบปเบ เปเบชเบฑเปเบเบเบฒเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเป globbing, เบเปเปเปเบฅเบฐเบฅเบฑเบเบชเบฐเบเบฐ shell เบญเบทเปเบเป. เบเบปเบเบเบฐเบเบดเปเบฅเปเบงเบเบฐเบเบงเบเบเบปเบเปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเปเบฒเบกเบตเบเบปเบงเบญเบฑเบเบชเบญเบเบเบดเปเบชเบ (|
,;
,&&
,||
เปเบฅเบฐเบญเบทเปเบเป).
cron
เบเบงเบเบเบธเบก cronjobs.
เบเบฒเบฅเบฒเบกเบดเปเบเบต:
- เบเบทเปเบเบฑเบเบเบฐเบเบฒเบเบญเบ - เบเบฝเบเปเบเปเบเบฒเบเบเบฐเปเบเบเบเบญเบเบเบปเบงเบฅเบฐเบเบธ
- เบฎเบฑเบเบเบฐเบเบฑเบ - เบชเบฐโเบเบฒโเบเบฐโเบเบฒเบโเบงเบฝเบโเบเบฒเบโเบฅเปเบฝเบโเบเบนโ:
present
- เบชเปเบฒเบโเบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเปเปโเบกเบตโabsent
- เบฅเบถเบโเบเปเบฒโเบกเบตโ
- เบเปเบฒเบชเบฑเปเบ - เบเปเบฒโเบชเบฑเปเบโเบเบตเปโเบเบฐโเบเปเบฒโเปเบเบตเบโเบเบฒเบโ
- เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก โ เปเบโเบชเบฐโเบเบฒเบโเปเบงเบโเบฅเปเบญเบกโเบเบตเปโเบเบฐโเบเปเบฒโเปเบเบตเบโเบเบฒเบโเบเปเบฒโเบชเบฑเปเบ (เบเบฑเบโเบเบตโเบฅเบฒเบโเบเบทเปโเบเบญเบโเบเบปเบงโเปเบโเบชเบฐโเบเบฒเบโเปเบงเบโเบฅเปเบญเบกโเปเบฅเบฐโเบเบธเบโเบเปเบฒโเบเบญเบโเปเบเบปเบฒโเปเบเบปเปเบฒโเปเบเบโเบเปเบฒเบโเบเบฒเบโ
=
) - เบเบนเปเปเบเป โ เบเบฒเบโเบเบนเปโเปเบเปโเบเบตเปโเบเบฐโเบเปเบฒโเปเบเบตเบโเบเบฒเบโเบเปเบฒโเบชเบฑเปเบโ
- เบเบฒเบเบต, เบเบปเปเบงเปเบกเบ, เบงเบฑเบเบญเบฒเบเบดเบ, เปเบเบทเบญเบ, เบงเบฑเบเปเบเบทเบญเบ - เปเบกเบทเปเบญเปเบเบเบตเปเบเบฐเปเบฅเปเบ cron. เบเปเบฒเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเปเบซเบผเบปเปเบฒเบเบตเปเบเปเปเปเบเปเบฅเบฐเบเบธ, เบเปเบฒเบเบญเบเบกเบฑเบเบขเบนเปเปเบ crontab เบเบฐเปเบเบฑเบ
*
.
เปเบ Puppet 6.0 cron เบเบทเบงเปเบฒ
เบเปเบฝเบงเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบเบเบเบปเปเบงเปเบ
เบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบฑเบเปเบญเบเบฐเบฅเบฑเบเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ
เบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบปเปเบงเปเบเบเบตเปเบชเบธเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบปเบเปเบกเปเบ เปเบเบเบฐเบเบฒเบเบเปเบณเบเบฑเบ. เบเปเปเบเบดเบเบเบฒเบเบเบตเปเปเบเบตเบเบเบทเปเบเปเบกเบทเปเบญเบเบฑเบเบเบฐเบเบฒเบเบญเบเบชเบญเบเบซเบผเบทเบซเบผเบฒเบเบเบงเปเบฒเบเบญเบเบเบฐเปเบเบเบเบฝเบงเบเบฑเบเบเบตเปเบกเบตเบเบทเปเบเบฝเบงเบเบฑเบเบเบฒเบเบปเบเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต.
เปเบเบฒเบฐเบชเบฐเบเบฑเปเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเบเบฝเบเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบ: manifests เบชเปเบฒเบฅเบฑเบ node เบเบฝเบงเบเบฑเบเบเปเปเบเบงเบเบกเบตเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบญเบเบเบฐเปเบเบเบเบฝเบงเบเบฑเบเบเบตเปเบกเบตเบซเบปเบงเบเปเปเบเบฝเบงเบเบฑเบ!
เบเบฒเบเบเบฑเปเบเบกเบตเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบเบดเบเบเบฑเปเบเปเบเบฑเบเปเบเบฑเบเบเบตเปเบกเบตเบเบทเปเบเบฝเบงเบเบฑเบ, เปเบเปเบกเบตเบเบนเปเบเบฑเบเบเบฒเบเปเบเบฑเบเปเบเบฑเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ. เปเบเบเปเบฅเบฐเบเบตเบเบตเป, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบเบฒเบฅเบฒเบกเบดเปเบเบต name
เปเบเบทเปเบญโเบซเบผเบตเบโเปเบงเบฑเปเบโเบเบฒเบโเบเบดเบโเบเบฒเบโ:
package { 'ruby-mysql':
ensure => installed,
name => 'mysql',
provider => 'gem',
}
package { 'python-mysql':
ensure => installed,
name => 'mysql',
provider => 'pip',
}
เบเบฐเปเบเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบญเบทเปเบเบกเบตเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบเปเบเบทเปเบญเบเปเบงเบเบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเบเปเปเบฒเบเปเบญเบ โ name
ั เบเบฒเบเบเปเบฅเบดเบเบฒเบ, command
ั exec, เปเบฅเบฐเบญเบทเปเบเป.
Metaparameters
เปเบเปเบฅเบฐเบเบฐเปเบเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบกเบตเบเบฒเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบดเปเบชเบ, เปเบเบเบเปเปเบเปเบฒเบเบถเบเปเบเบดเบเบฅเบฑเบเบชเบฐเบเบฐเบเบญเบเบกเบฑเบ.
เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเปเบเบฑเบกเบเบญเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ meta
เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบชเบฑเปเบ:
- เบเปเบญเบเบเบฒเบ โ เบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบตเปเบเบตเปเบเบญเบเบงเปเบฒเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเบเบถเปเบเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบ.
- เบเปเบญเบเบเบตเปเบเบฐ - เบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบตเปเบเปเบฒเบเบปเบเบงเปเบฒเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบเบเบถเปเบเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเป.
- เบเบญเบ โ เบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบตเปเบฅเบฐเบเบธเบงเปเบฒเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเปเบเปเบฎเบฑเบเบเบฒเบเปเบเปเบเปเบเบทเบญเบเบเบฒเบเปเบซเบผเปเบเปเบ.
- เปเบเปเบ โ เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบตเปเบเปเบฒเบเบปเบเบงเปเบฒเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบเปเบเปเบฎเบฑเบเบเบฒเบเปเบเปเบเปเบเบทเบญเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเป.
metaparameters เบเบฑเบเบซเบกเบปเบเบเบตเปเบฅเบฐเบเบธเปเบงเปเบเบญเบกเบฎเบฑเบเบเบฑเบเบเบฒเบเปเบเบทเปเบญเบกเปเบเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฝเบงเบซเบผเบท array เบเบญเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบเบงเบปเบเปเบฅเบฑเบเบชเบตเปเบซเบฅเปเบฝเบก.
เบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ
เบเบฒเบเปเบเบทเปเบญเบกเปเบเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบกเปเบเบเบฝเบเปเบเปเบเปเบฒเบงเปเบเบดเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ. เบเบงเบเบกเบฑเบเบชเปเบงเบเปเบซเบเปเปเบกเปเบเปเบเปเปเบเบทเปเบญเบเบตเปเบเบญเบเปเบเบดเบเบเบงเบฒเบกเปเบเบดเปเบเบเบฒเบญเบฒเปเบช. เบเบฒเบเบญเปเบฒเบเบญเบตเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเบเปเปเบกเบตเบขเบนเปเปเบฅเปเบงเบเบฐเปเบฎเบฑเบเปเบซเปเปเบเบตเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเปเบเบเบฒเบเบฅเบงเบเบฅเบงเบก.
syntax เบเบญเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบกเบตเบเบฑเปเบเบเบตเป: เบเบฐเปเบเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเบกเบตเบเบปเบงเบเบดเบกเปเบซเบเป (เบเปเบฒเบเบทเปเบเบฐเปเบเบเบกเบตเบเปเปเบฒเบชเบญเบเปเบกเบฑเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเปเบฅเบฐเบชเปเบงเบเบเบญเบเบเบทเปเบฅเบฐเบซเบงเปเบฒเบเบเปเปเบฒเบชเบญเบเปเบกเบฑเบเปเบกเปเบเบเบปเบงเบเบดเบกเปเบซเบเป), เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบทเปเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบเบงเบปเบเปเบฅเบฑเบเบชเบตเปเบซเบผเปเบฝเบก (เบเปเบฅเบฐเบเบตเบเบญเบเบเบทเป. เบเปเปเบเปเบฝเบเปเบเบ!). เบเปเปเบเบงเบเบกเบตเบเปเบญเบเบซเบงเปเบฒเบ;
เบเบปเบงเบขเปเบฒเบ:
file { '/file1': ensure => present }
file { '/file2':
ensure => directory,
before => File['/file1'],
}
file { '/file3': ensure => absent }
File['/file1'] -> File['/file3']
เบเบงเบฒเบกเปเบเบดเปเบเบเบฒเบญเบฒเปเบช เปเบฅเบฐเบเบฒเบเปเบเปเบเปเบเบทเบญเบ
เบเบฑเปเบเบเบตเปเปเบเปเบเปเบฒเบงเบเปเบญเบเบซเบเปเบฒเบเบตเป, เบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเปเบเบเบเปเบฒเบเบเบฒเบเบฅเบฐเบซเบงเปเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบกเปเบเบเบฒเบเบเปเบฝเบเปเบเบ. เปเบเบเบงเบดเบเบตเบเบฒเบเบเบฒเบ, เบเบปเปเบเบฅเบฐเบกเบฑเบเบฅเบฐเบงเบฑเบเปเบเปเบงเบฅเบฒเปเบเบตเปเบกเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบช - เบเปเบฒเบเบชเบฒเบกเบฒเบเบชเปเบฒเบเบเบฒเบเบเบทเปเบเบเบฑเบเบงเบปเบเบเบญเบ, เปเบเบดเปเบเบเบฐเปเบฎเบฑเบเปเบซเปเปเบเบตเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเปเบเบเบฒเบเบฅเบงเบเบฅเบงเบก.
เบเปเปเปเบซเบกเบทเบญเบเบเบฑเบเบเบงเบฒเบกเปเบเบดเปเบเบเบฒเบญเบฒเปเบช, เบเบฒเบเปเบเปเบเปเบเบทเบญเบเบเปเปเปเบกเปเบเบเบฒเบเบชเบปเปเบเบเปเป. เบเบปเบโเบฅเบฐโเบเบฝเบโเบเบฑเปเบโเบเปเปโเปเบโเบเบตเปโเบเปเบฒโเปเบเปโเบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเปเบเปเบโเบเบฒเบโ:
- เบเปเบฒเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเปเบเปเบเปเบเบทเบญเบ, เบกเบฑเบเบเบฐเบเบทเบเบเบฑเบเบเบธเบ. เบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฑเบเบเบธเบเปเบกเปเบเบเบถเปเบเบเบฑเบเบเบฐเปเบเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ โ exec เปเบฅเปเบโเบเปเบฒโเบชเบฑเปเบโ, เบเบฒเบเบเปเบฅเบดเบเบฒเบ เปเบเบตเบเบเปเบฅเบดเบเบฒเบเบเบทเบเปเปเป, เบเบธเบ เบเบดเบเบเบฑเปเบเบเบธเบเปเปเป. เบเปเบฒเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเปเปเบกเบตเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบฑเบเบเบธเบเบเบตเปเบเปเบฒเบเบปเบเปเบงเป, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเปเบกเบตเบซเบเบฑเบเปเบเบตเบเบเบถเปเบ.
- เปเบเบฅเบฐเบซเบงเปเบฒเบเปเบฅเบเบฐเบซเบเบถเปเบเบเบญเบ Puppet, เบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบเปเบเบทเบเบเบฑเบเบเบธเบเบเปเปเปเบเบตเบเบซเบเบถเปเบเบเบฑเปเบ. เบญเบฑเบเบเบตเปเปเบเบฑเบเปเบเปเบเปเปเบเบฒเบฐเบงเปเบฒเบเบฒเบเปเบเปเบเปเบเบทเบญเบเบฅเบงเบกเบกเบตเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบช เปเบฅเบฐเบเบฃเบฒเบเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเบเปเปเบกเบตเบฎเบญเบเบงเบฝเบ.
- เบเปเบฒ Puppet เบเปเบฝเบเบชเบฐเบเบฒเบเบฐเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ, เบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฐเบชเบปเปเบเบเบฒเบเปเบเปเบเปเบเบทเบญเบเปเบเบซเบฒเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบเบญเบเบเบฑเบเบกเบฑเบ.
- เบเปเบฒเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบทเบเบเบฑเบเบเบธเบ, เบกเบฑเบเบเบฐเบชเบปเปเบเบเบฒเบเปเบเปเบเปเบเบทเบญเบเปเบเบซเบฒเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบเบญเบเบเบฑเบเบกเบฑเบ.
เบเบฒเบเบเบฑเบเบเบฒเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบตเปเบเปเปเปเบเปเบฅเบฐเบเบธ
เบเบฒเบกเบเบปเบเบฅเบฐเบเบฝเบ, เบเปเบฒเบเบฒเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเปเปเบกเบตเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบฅเบฐเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบตเปเบเปเปเปเบเปเบฅเบฐเบเบธเปเบงเปเปเบ manifest, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ Puppet เบเบฐเบเปเปเบเปเบฝเบเปเบเบเบเบธเบเบชเบปเบกเบเบฑเบเบเบตเปเบชเปเบฒเบฅเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบเปเบ node. เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบญเบเบเบฐเปเบเบ เปเบญเบเบฐเบชเบฒเบ เบเบฒเบฅเบฒเบกเบดเปเบเบตเบเปเปเปเบเปเบฅเบฐเบเบธ owner
, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ Puppet เบเบฐเบเปเปเบเปเบฝเบเปเบเบปเปเบฒเบเบญเบเปเบเบฅเปเบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบ.
เบเบฒเบเปเบเบฐเบเปเบฒเบซเปเบญเบเบฎเบฝเบ, เบเบปเบงเปเบเปเบฅเบฐเบเปเบฒเบเบดเบเบฒเบก
เบชเบปเบกเบกเบธเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบกเบตเบซเบผเบฒเบ nodes เบเบตเปเบกเบตเบชเปเบงเบเบเบฝเบงเบเบฑเบเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒ, เปเบเปเบเบฑเบเบกเบตเบเบงเบฒเบกเปเบเบเบเปเบฒเบ - เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบญเบฐเบเบดเบเบฒเบเบกเบฑเบเบเบฑเบเบซเบกเบปเบเปเบเบซเบเบถเปเบเบเบฑเบ. node {}
. เปเบเปเบเบญเบ, เบเปเบฒเบเบเบฝเบเปเบเปเบชเบฒเบกเบฒเบเบเบฑเบเบฅเบญเบเบชเปเบงเบเบเบตเปเบเบทเบเบฑเบเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒ, เปเบเปเปเบเบเบเบปเปเบงเปเบเปเบฅเปเบงเบเบตเปเปเบกเปเบเบเบฒเบเปเบเปเปเบเบเบตเปเบเปเปเบเบต - เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฐเปเบฅเบตเบเปเบเบตเบเปเบ, เปเบฅเบฐเบเปเบฒเบเปเบฒเบเบเปเบฝเบเบชเปเบงเบเบเบปเปเบงเปเบเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒ, เบเปเบฒเบเบเบฐเบเปเบญเบเปเบเปเปเบเบชเบดเปเบเบเบฝเบงเบเบฑเบเปเบเบซเบผเบฒเบเปเบเปเบญเบ. เปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบ, เบกเบฑเบเบเปเบฒเบเบเบตเปเบเบฐเปเบฎเบฑเบเบเบดเบเบเบฒเบ, เปเบฅเบฐเปเบเบเบเบปเปเบงเปเบ, เบซเบผเบฑเบเบเบฒเบ DRY (เบขเปเบฒเปเบฎเบฑเบเบเปเปเบฒเบเบปเบงเบเปเบฒเบเปเบญเบ) เปเบเปเบเบทเบเบเบฐเบเบดเบเบเบทเปเบเบเปเบงเบเปเบซเบเบเบปเบ.
เปเบเบทเปเบญเปเบเปเปเบเบเบฑเบเบซเบฒเบเบตเปเบกเบตเบเบฒเบเบญเบญเบเปเบเบเปเบเบฑเปเบ: เบซเปเบญเบโเบฎเบฝเบ.
เบซเปเบญเบเบฎเบฝเบ
เบเปเบญเบเบญเบทเปเบ เปเบปเบ, เบซเปเบญเบเบฎเบฝเบเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบญเบฐเบเบดเบเบฒเบ. เบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเบปเบงเบกเบฑเบเปเบญเบเบเปเปเปเบเปเปเบเบตเปเบกเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบเปเบขเบนเปเบเบธเบเบเปเบญเบ. เบซเปเบญเบเบฎเบฝเบเปเบเปเบเบทเบเบญเบฐเบเบดเบเบฒเบเปเบงเปเปเบ manifests:
# ะะฟะธัะฐะฝะธะต ะบะปะฐััะฐ ะฝะฐัะธะฝะฐะตััั ั ะบะปััะตะฒะพะณะพ ัะปะพะฒะฐ 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 เปเบกเปเบ immutableโ!
เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเบปเบงเปเบเบเบตเปเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบเปเบเบฝเบเปเบเปเบซเบผเบฑเบเบเบฒเบเบกเบฑเบเบเบทเบเบเบฐเบเบฒเบ, เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบเบกเบนเบเบเปเบฒเบเบญเบเบเบปเบงเปเบเบเบฐเปเบเบฑเบ. undef
.
เบเบปเบงเบขเปเบฒเบเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบปเบงเปเบ:
# ัะพะทะดะฐะฝะธะต ะฟะตัะตะผะตะฝะฝัั
$variable = 'value'
$var2 = 1
$var3 = true
$var4 = undef
# ะธัะฟะพะปัะทะพะฒะฐะฝะธะต ะฟะตัะตะผะตะฝะฝัั
$var5 = $var6
file { '/tmp/text': content => $variable }
# ะธะฝัะตัะฟะพะปััะธั ะฟะตัะตะผะตะฝะฝัั
โ ัะฐัะบัััะธะต ะทะฝะฐัะตะฝะธั ะฟะตัะตะผะตะฝะฝัั
ะฒ ัััะพะบะฐั
. ะ ะฐะฑะพัะฐะตั ัะพะปัะบะพ ะฒ ะดะฒะพะนะฝัั
ะบะฐะฒััะบะฐั
!
$var6 = "Variable with name variable has value ${variable}"
Puppet เบกเบต namespaces, เปเบฅเบฐเบเบปเบงเปเบ, เบเบฒเบกเบเบงเบฒเบกเปเบซเบกเบฒเบฐเบชเบปเบก, เบกเบต เบเบทเปเบเบเบตเปเปเบเบดเปเบเปเบซเบฑเบ: เบเบปเบงเปเบเบเบตเปเบกเบตเบเบทเปเบเบฝเบงเบเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเบเบปเบเบขเบนเปเปเบ namespaces เบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ. เปเบกเบทเปเบญเปเบเปเปเบเบเปเบฒเบเบญเบเบเบปเบงเปเบ, เบเบปเบงเปเบเบเบทเบเบเบปเปเบเบซเบฒเบขเบนเปเปเบ namespace เปเบเบเบฑเบเบเบธเบเบฑเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบ namespace เบเบตเปเบเบทเบเบซเบธเปเบก, เปเบฅเบฐเบญเบทเปเบเป.
เบเบปเบงเบขเปเบฒเบ Namespace:
- global - เบเบปเบงเปเบเบเบญเบเบซเปเบญเบเบฎเบฝเบเบซเบผเบทเบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบญเบ node เปเบเบเบตเปเบเบฑเปเบ;
- node namespace เปเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบญเบ node;
- class namespace เปเบเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบซเปเบญเบเบฎเบฝเบ.
เปเบเบทเปเบญเบซเบผเบตเบเปเบงเบฑเปเบเบเบงเบฒเบกเบเปเปเบเบฑเบเปเบเบเปเบเปเบงเบฅเบฒเบเบตเปเปเบเบปเปเบฒเปเบเบดเบเบเบปเบงเปเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบ namespace เปเบเบเบทเปเบเบปเบงเปเบ:
# ะฟะตัะตะผะตะฝะฝะฐั ะฑะตะท ะฟัะพัััะฐะฝััะฒะฐ ะธะผัะฝ
$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
}
เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบปเบงเบขเปเบฒเบเบเบตเปเบเปเบฒเบงเบกเบฒเปเบกเปเบเบเปเปเบเบตเปเบเบฒเบฐเบงเปเบฒเบกเบตเบเบฒเบ "เบเบงเบฒเบกเบฎเบนเปเบฅเบฑเบ" เบเบตเปเบเบฒเบเบเปเบญเบเบขเบนเปเปเบเบซเปเบญเบเบฎเบฝเบเบเบปเบงเปเบเบเบตเปเบกเบตเบเบทเปเบเบฑเปเบเบเปเบฒเบงเปเบฅเบฐเบเบทเปเบเบฑเปเบเบเปเบฒเบงเบเบทเบเบเปเบฒเปเบเป. เบกเบฑเบเบเบทเบเบเปเบญเบเบซเบผเบฒเบเบเบตเปเบเบฐเปเบฎเบฑเบเปเบซเปเบเบงเบฒเบกเบฎเบนเปเบเบตเปเปเบเบเบเบปเปเบงเปเบ - เบซเปเบญเบเบฎเบฝเบเบชเบฒเบกเบฒเบเบกเบตเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ.
เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบซเปเบญเบเบฎเบฝเบ เปเบกเปเบเบเบปเบงเปเบเปเบ namespace เบเบญเบเบซเปเบญเบเบฎเบฝเบ, เบเบงเบเบกเบฑเบเบเบทเบเบฅเบฐเบเบธเปเบงเปเปเบเบชเปเบงเบเบซเบปเบงเบเบญเบเบเบฑเปเบเบฎเบฝเบเปเบฅเบฐเบชเบฒเบกเบฒเบเปเบเปเบเบทเบเบฑเบเบเบปเบงเปเบเบเบปเบเบเบฐเบเบดเปเบเบเบปเบงเบเบญเบเบเบฑเปเบเบฎเบฝเบ. เบเปเบฒเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบทเบเบฅเบฐเบเบธเปเบกเบทเปเบญเปเบเป class เปเบ manifest.
เบเบฒเบฃเบฒเบกเบดเปเบเบตเบชเบฒเบกเบฒเบเบเบทเบเบเบฑเปเบเปเบเบฑเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ. เบเปเบฒเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเปเปเบกเบตเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบฅเบฐเบเปเบฒเบเปเปเปเบเปเบเบทเบเบเปเบฒเบเบปเบเปเบกเบทเปเบญเปเบเป, เบกเบฑเบเบเบฐเปเบฎเบฑเบเปเบซเปเปเบเบตเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเปเบเบเบฒเบเบฅเบงเบเบฅเบงเบก.
เปเบซเป parameterize class เบเบฒเบเบเบปเบงเบขเปเบฒเบเบเปเบฒเบเปเบเบดเบเปเบฅเบฐเปเบเบตเปเบกเบชเบญเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ: เบเปเบฒเบญเบดเบ, เบเปเบญเบเบเบฒเบ, เปเบกเปเบเปเบชเบฑเปเบเบเบฒเบเปเบเบชเบนเปเบเบฒเบเบเบฑเปเบเบเปเบฒ, เปเบฅเบฐเบเบตเบชเบญเบ, เบเบฒเบเปเบฅเบทเบญเบ, เปเบกเปเบเบเบทเปเบเบญเบเบเบธเบเบเบตเปเบกเบต 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':}
เปเบเปเบฅเบฐเบเบฑเปเบเบฎเบฝเบเปเบกเปเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบญเบเบเบฐเปเบเบ เบฅเบฐเบเบฑเบ. เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบฐเปเบเบเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบญเบทเปเบเป, เบเปเปเบชเบฒเบกเบฒเบเบกเบตเบชเบญเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบเบฑเปเบเบเบฝเบงเบเบฑเบเบขเบนเปเปเบ node เบเบฝเบงเบเบฑเบ.
เบเปเบฒเบเปเบฒเบเบเบฐเบเบฒเบเบฒเบกเปเบเบตเปเบกเบซเปเบญเบเบฎเบฝเบเปเบชเปเปเบซเบเบเบเบฝเบงเบเบฑเบเบชเบญเบเบเบฑเปเบเปเบเบเปเบเป class { 'classname':}
(เบเปเปเปเบเบเบเปเบฒเบเบเบฑเบ, เบกเบตเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบซเบผเบทเบเบทเบเบฑเบ), เบเบฐเบกเบตเบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบฒเบเบฅเบงเบเบฅเบงเบก. เปเบเปเบเปเบฒเบเปเบฒเบเปเบเปเบซเปเบญเบเบฎเบฝเบเปเบเบฎเบนเบเปเบเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเบเบญเบเบกเบฑเบเบขเปเบฒเบเบเบฑเบเปเบเบเปเบ manifest.
เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเปเบฒเบเปเบฒเบเปเบเป include
, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบซเปเบญเบเบฎเบฝเบเบชเบฒเบกเบฒเบเปเบเบตเปเบกเปเบเปเบซเบผเบฒเบเบเบฑเปเบเบเบฒเบกเบเบงเบฒเบกเบเปเบญเบเบเบฒเบ. เบเบงเบฒเบกเบเบดเบเปเบฅเปเบงเปเบกเปเบเบงเปเบฒ include
เปเบเบฑเบเบเบฑเบเบเบฑเบ ideempotent เบเบตเปเบเบงเบเปเบเบดเปเบเบงเปเบฒเบซเปเบญเบเบฎเบฝเบเปเบเปเบเบทเบเปเบเบตเปเบกเปเบเบปเปเบฒเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต. เบเปเบฒเบเบฑเปเบเบฎเบฝเบเบเปเปเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต, เบกเบฑเบเบเบฐเปเบเบตเปเบกเบกเบฑเบ, เปเบฅเบฐเบเปเบฒเบกเบฑเบเบกเบตเบขเบนเปเปเบฅเปเบง, เบกเบฑเบเบเบฐเบเปเปเปเบฎเบฑเบเบซเบเบฑเบ. เปเบเปเปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบฒเบเบเปเบฒเปเบเป include
เบเปเบฒเบเบเปเปเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบฑเปเบเบฎเบฝเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบฐเบเบฒเบเบเบฑเปเบเบฎเบฝเบ - เบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบตเปเบเปเบญเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเบเปเบญเบเบเบทเบเบเบฑเปเบเบขเบนเปเปเบเปเบซเบผเปเบเบเปเปเบกเบนเบเบเบฒเบเบเบญเบ - Hiera เบซเบผเบท ENC. เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบเบเบงเบเบกเบฑเบเปเบเบเบปเบเบเบงเบฒเบกเบเปเปเปเบ.
เบเปเบฒเบเบปเบ
เบเบฑเปเบเบเบตเปเปเบเปเบเปเบฒเบงเปเบงเปเปเบเบเบฅเบฑเบญเบเบเบตเปเบเปเบฒเบเบกเบฒ, เบเบฑเปเบเบเบฝเบงเบเบฑเบเบเปเปเบชเบฒเบกเบฒเบเบขเบนเปเปเบ node เบซเบผเบฒเบเบเบงเปเบฒเบซเบเบถเปเบเบเบฑเปเบ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เปเบเบเบฒเบเบเปเบฅเบฐเบเบต, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบชเบฒเบกเบฒเบเปเบเปเบฅเบฐเบซเบฑเบเบเบฅเบฑเบญเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเปเบ node เบเบฝเบงเบเบฑเบ. เปเบเบเปเบฒเบชเบฑเบเบเปเบฒเบเปเบญเบทเปเบเป, เบเปเบญเบเบกเบตเบเบฐเปเบเบเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบญเบเบเบปเบเปเบญเบ.
เบเบปเบงเบขเปเบฒเบ, เปเบเบทเปเบญเบเบดเบเบเบฑเปเบเปเบกเบเบนเบ PHP, เบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบเบเบฑเปเบเบเปเปเปเบเบเบตเปเปเบ Avito:
- เบเบดเบเบเบฑเปเบเบเบธเบเบเบฑเบเปเบกเบเบนเบเบเบตเป.
- เบกเบฒเบชเปเบฒเบเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบชเบณเบฅเบฑเบเปเบกเบเบนเบเบเบตเป.
- เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบ symlink เบเบฑเบ config เบชเปเบฒเบฅเบฑเบ php-fpm.
- เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบ symlink เบเบฑเบ config เบชเปเบฒเบฅเบฑเบ 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. เบเบตเปเปเบเบตเบเบเบทเปเบเบเปเบฒเบเปเบฒเบเบดเบเบฒเบกเบกเบตเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเบกเบตเบเบทเปเบเบปเบเบเบตเป, เปเบฅเบฐเบกเบตเบชเบญเบเบเบปเบงเบขเปเบฒเบเบซเบผเบทเบซเบผเบฒเบเบเบงเปเบฒเบเปเบฒเบเบดเบเบฒเบกเบเบตเปเบขเบนเปเปเบเบเบฒเบ node.
เบกเบฑเบเบเปเบฒเบเบเบตเปเบเบฐเบเบปเบเบเปเบญเบเบเบปเบงเบเปเบฒเบเปเบญเบเบเบฒเบเบเบตเป: เบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบขเบนเปเปเบเบเปเบฒเบเบดเบเบฒเบกเบเปเบญเบเบกเบตเบเบทเปเบเบถเปเบเบเบฑเบ $title
. เบเบฒเบเปเบฅเบทเบญเบเปเบกเปเบ idempotent เปเบเบตเปเบกเปเบเบตเบกเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบเบเปเบฅเบฐเบเบตเบเปเบฒเบเบเบฒเบ, เบกเบฑเบเบเบฝเบเบเปเบเบตเปเบเบฐเบเปเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบปเปเบงเปเบเบเบฑเบเบเบธเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบเปเบฒเบเบดเบเบฒเบกเปเบเบปเปเบฒเปเบเปเบเบซเปเบญเบเบฎเบฝเบเปเบเบเบเปเบฒเบเบซเบฒเบเปเบฅเบฐเบฅเบงเบกเปเบญเบปเบฒเบเบฑเปเบเบเบตเปเปเบเบเปเบฒเบเบดเบเบฒเบก - เบซเบเปเบฒเบเบตเป; include
เบญเปเบญเบเปเบเบ.
เบกเบตเบงเบดเบเบตเบญเบทเปเบเปเบเบทเปเบญเบเบฑเบเบฅเบธ idempotency เปเบเปเบงเบฅเบฒเบเบตเปเปเบเบตเปเบกเบเบฑเบเบเบฐเบเบฒเบเบญเบ, เบเบทเบเบฒเบเบเปเบฒเปเบเปเบซเบเปเบฒเบเบตเป defined
ะธ ensure_resources
, เปเบเปเบเปเบญเบเบเบฐเบเบญเบเปเบเบปเปเบฒเบเปเบฝเบงเบเบฑเบเบกเบฑเบเปเบเบเบญเบเบเปเปเปเบ.
เบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบช เปเบฅเบฐเบเบฒเบเปเบเปเบเปเบเบทเบญเบเบชเบณเบฅเบฑเบเบเบฑเปเบเบฎเบฝเบ เปเบฅเบฐเบเบณเบเบดเบเบฒเบก
เบเบฑเปเบเบฎเบฝเบ เปเบฅเบฐเบเปเบฒเบเบดเบเบฒเบกเปเบเบตเปเบกเบเบปเบเบฅเบฐเบเบฝเบเบเปเปเปเบเบเบตเปเปเบเบทเปเบญเบเบฑเบเบเบฒเบเบเบฑเบเบเบฒเบเบเบถเปเบเบเบฑเบ เปเบฅเบฐเบเบฒเบเปเบเปเบเปเบเบทเบญเบ:
- เบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเปเบเบเบฑเปเบเบฎเบฝเบ/เบเบดเบเบฒเบก เปเบเบตเปเบกเบเบงเบฒเบกเบเบถเปเบเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฑเบเปเบปเบเบเบญเบเบเบฑเปเบเบฎเบฝเบ/เบเบณเบเบปเบ;
- a class/define dependency เปเบเบตเปเบก dependencies เบเบฑเบ class/define เบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฑเบเปเบปเบ;
- class/define notification เปเบเปเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฑเบเปเบปเบเบเบญเบ class/define;
- class/define subscription subscribes to all resources of class/define.
เบเบฐเปเบซเบผเบเบเบฒเบเบเบฒเบกเปเบเบทเปเบญเบเปเบ เปเบฅเบฐเบเบปเบงเปเบฅเบทเบญเบ
if
เบกเบฑเบเบเปเบฒเบเบเบฒเบเบขเบนเปเบเบตเปเบเบตเป:
if ะะซะ ะะะะะะ1 {
...
} elsif ะะซะ ะะะะะะ2 {
...
} else {
...
}
เปเบงเบฑเปเบเปเบชเบเปเบเปเบงเปเบฒ
เปเบงเบฑเปเบเปเบชเบเปเบเปเปเบเบฑเบ if in reverse: เบเบฅเบฑเบญเบเบเบญเบเบฅเบฐเบซเบฑเบเบเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบเบเปเบฒเบซเบฒเบเบงเปเบฒเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเปเบกเปเบเบเปเปเบเบทเบเบเปเบญเบ.
unless ะะซะ ะะะะะะ {
...
}
เบเปเบฅเบฐเบเบต
เบเปเปเบกเบตเบซเบเบฑเบเบชเบฑเบเบชเบปเบเบขเบนเปเบเบตเปเบเบตเป. เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบเปเบฒเบเบปเบเบเบฐเบเบด (strings, เบเบปเบงเปเบฅเบ, เปเบฅเบฐเบญเบทเปเบเป), เบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบปเบเบเบฐเบเบด, เปเบฅเบฐเบเบฐเปเบเบเบเปเปเบกเบนเบเปเบเบฑเบเบเปเบฒ.
case ะะซะ ะะะะะะ {
ะะะะงะะะะ1: { ... }
ะะะะงะะะะ2, ะะะะงะะะะ3: { ... }
default: { ... }
}
เบเบปเบงเปเบฅเบทเบญเบ
เปเบเปเบฅเบทเบญเบเปเบเบฑเบเบเบฒเบชเบฒเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบ case
, เปเบเปเปเบเบเบเบตเปเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฅเบฑเบญเบเบเบญเบเบฅเบฐเบซเบฑเบ, เบกเบฑเบเบเบฐเบชเบปเปเบเบเบทเบเบเปเบฒ.
$var = $othervar ? { 'val1' => 1, 'val2' => 2, default => 3 }
เปเบกเบเบนเบ
เปเบกเบทเปเบญเบเบฒเบเบเบฑเปเบเบเปเบฒเบกเบตเบเบฐเบซเบเบฒเบเบเปเบญเบ, เบกเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเปเบเบฑเบเปเบงเปเปเบเปเบขเปเบฒเบเบเปเบฒเบเบเบฒเบเปเบเบซเบเบถเปเบ manifest. เปเบเปเบเบฒเบเบเปเบฒเบเบปเบเบเปเบฒเบซเบผเบฒเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบญเบฐเบเบดเบเบฒเบ, เบซเปเบญเบเบฎเบฝเบเปเบฅเบฐเบเปเปเบซเบผเบฒเบเบกเบตเบขเบนเปเปเบ manifest, เบกเบฑเบเปเบเบตเบเปเบซเบเป, เปเบฅเบฐเบกเบฑเบเบเปเปเบชเบฐเบเบงเบเบเบตเปเบเบฐเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ.
เบเบญเบเบเบฒเบเบเบฑเปเบ, เบกเบตเบเบฑเบเบซเบฒเบเบญเบเบเบฒเบเปเบเปเบฅเบฐเบซเบฑเบเบเบทเบเปเบซเบกเป - เปเบกเบทเปเบญเบฅเบฐเบซเบฑเบเบเบฑเบเบซเบกเบปเบเบขเบนเปเปเบ manifest เบเบฝเบง, เบกเบฑเบเปเบเบฑเบเบเบฒเบเบเบฒเบเบเบตเปเบเบฐเปเบเปเบเบเบฑเบเบฅเบฐเบซเบฑเบเบเบตเปเบเบฑเบเบเบปเบเบญเบทเปเบ. เปเบเบทเปเบญเปเบเปเปเบเบเบฑเบเบซเบฒเบเบฑเบเบชเบญเบเบขเปเบฒเบเบเบตเป, Puppet เบกเบตเบซเบเปเบงเบเบเบฒเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒเปเบกเบเบนเบ.
เปเบกเบเบนเบ - เปเบซเบผเบปเปเบฒเบเบตเปเปเบกเปเบเบเบธเบเบเบญเบเบซเปเบญเบเบฎเบฝเบ, เบเปเบฒเบเบดเบเบฒเบกเปเบฅเบฐเบซเบเปเบงเบเบเบฒเบ Puppet เบญเบทเปเบเปเบเบตเปเบงเบฒเบเปเบงเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเปเบเบเบเปเบฒเบเบซเบฒเบ. เปเบเบเปเบฒเบชเบฑเบเบเปเบฒเบเปเบญเบทเปเบเป, เปเบกเบเบนเบเปเบเบฑเบเบเบดเปเบเบชเปเบงเบเปเบญเบเบฐเบฅเบฒเบเบเบญเบเปเบซเบเบเบปเบ Puppet. เบเบปเบงเบขเปเบฒเบ, เบญเบฒเบเบเบฐเบกเบตเปเบกเบเบนเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ nginx, เปเบฅเบฐเบกเบฑเบเบเบฐเบเบฐเบเบญเบเบเปเบงเบเบชเบดเปเบเบเบตเปเบเปเบฒเปเบเบฑเบเปเบเบทเปเบญเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ nginx, เบซเบผเบทเบญเบฒเบเบเบฐเบกเบตเปเบกเบเบนเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ PHP, เปเบฅเบฐเบญเบทเปเบเป.
เปเบกเบเบนเบเปเบกเปเบเบชเบฐเบเบฑเบ, เปเบฅเบฐเบเบฒเบเบเบถเปเบเบเบฑเบเบเบญเบเปเบกเบเบนเบเปเบเปเบเปเบฅเบฐเบญเบทเปเบเปเปเบกเปเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ. เบกเบต repository เปเบเบตเบเบเบญเบเปเบกเบเบนเบ -
เปเบเปเบเบตเบเปเบงเบต puppet, เปเบกเบเบนเบเบเบฑเปเบเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเปเบญเบเบเบญเบเปเบกเบเบนเบเบเบญเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบฎเบฒเบ. เบเบฒเบเปเบเปเบเปเบฅเบฐเปเบกเบเบนเบเบกเบตเบฅเบฐเบเบปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบกเบฒเบเบเบฐเบเบฒเบ - manifests, files, templates, lib, เปเบฅเบฐเบญเบทเปเบเป.
เปเบเบเบชเปเบฒเบเปเบเบฅเปเปเบเปเบกเบเบนเบ
เบฎเบฒเบเบเบญเบเปเบกเบเบนเบเบญเบฒเบเบกเบตเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเปเปเปเบเบเบตเปเบเบตเปเบกเบตเบเบทเปเบญเบฐเบเบดเบเบฒเบ:
manifests
- เบกเบฑเบโเบเบฐโเบเบญเบโเบเปเบงเบ manifestosโfiles
- เบกเบฑเบโเบเบฐโเบเบญเบโเบเปเบงเบโเปเบเบฅโเปโtemplates
- เบกเบฑเบโเบเบฐโเบเบญเบโเบเปเบงเบโเปเบกเปโเปเบเบโlib
โ เบกเบฑเบโเบเบฐโเบเบญเบโเบเปเบงเบโเบฅเบฐโเบซเบฑเบ Rubyโ
เบเบตเปเบเปเปเปเบกเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบปเบเบเปเบงเบเบเบญเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเปเบฅเบฐเปเบเบฅเป, เปเบเปเบกเบฑเบเบเบฝเบเบเปเบชเปเบฒเบฅเบฑเบเบเบปเบเบเบงเบฒเบกเบเบตเปเบชเปเบฒเบฅเบฑเบเปเบเบเบฑเบเบเบธเบเบฑเบ.
เบเบทเปเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบฅเบฐเบเบทเปเบเบญเบเปเบเบฅเปเปเบเปเบกเบเบนเบ
เบเบฑเบเบเบฐเบเบฒเบเบญเบ (เบเบฑเปเบเบฎเบฝเบ, เบเปเบฒเบเบดเบเบฒเบก) เปเบเปเบกเบเบนเบเบเปเปเบชเบฒเบกเบฒเบเบเบฑเปเบเบเบทเปเบญเบฑเบเปเบเบเปเปเบเปเบเบตเปเบเปเบฒเบเบเปเบญเบเบเบฒเบ. เบเบญเบเบเบฒเบเบเบฑเปเบ, เบกเบตเบเบฒเบเบเบดเบเบเปเปเปเบเบเบเบปเบเบฅเบฐเบซเบงเปเบฒเบเบเบทเปเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบฅเบฐเบเบทเปเบเบญเบเปเบเบฅเปเบเบตเป Puppet เบเบฐเบเบญเบเบซเบฒเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฑเปเบ. เบเปเบฒเบเปเบฒเบเบฅเบฐเปเบกเบตเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบเบฑเปเบเบเบทเป, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ Puppet เบเบฝเบเปเบเปเบเบฐเบเปเปเบเบญเบเบซเบฒเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ, เปเบฅเบฐเบเปเบฒเบเบเบฐเปเบเปเบฎเบฑเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเปเบเบเบฒเบเบฅเบงเบเบฅเบงเบก.
เบเบปเบโเบฅเบฐโเบเบฝเบโเปเบกเปเบโเบเปเบฒเบโเบเบฒเบโ:
- เบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฑเบเปเบปเบเปเบเปเบกเบเบนเบเบเบฐเบเปเบญเบเบขเบนเปเปเบ namespace เบเบญเบเปเบกเบเบนเบ. เบเปเบฒเปเบกเบเบนเบเบเบทเบเปเบญเบตเปเบ
foo
, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฑเบเบซเบกเบปเบเปเบเบกเบฑเบเบเบงเบเบเบฐเบกเบตเบเบทเปfoo::<anything>
, เบซเบผเบทเบเบฝเบเปเบเปfoo
. - เบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเบกเบตเบเบทเปเบเบญเบเปเบกเบเบนเบเบเปเบญเบเบขเบนเปเปเบเปเบเบฅเป
init.pp
. - เบชเปเบฒเบฅเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบญเบทเปเบเป, เบฎเบนเบเปเบเบเบเบฒเบเบเบฑเปเบเบเบทเปเปเบเบฅเปเบกเบตเบเบฑเปเบเบเบตเป:
- เบเปเบฒเบเปเบฒเบซเบเปเบฒเบเบตเปเบกเบตเบเบทเปเปเบกเบเบนเบเบเบทเบเบเบปเบเปเบฅเบตเบ
- เบเปเปเบฒเบชเบญเบเปเบกเบฑเบเบเบฑเบเปเบปเบ, เบเปเบฒเบกเบต, เบเบทเบเปเบเบเบเบตเปเบเปเบงเบ slashes
- เบชเปเบงเบเบเบฐเบซเบเบฒเบเปเบกเปเบเปเบเบตเปเบก
.pp
เบเปเบญเบเบเบฐเบชเบฐเปเบเบเบเบปเบงเบขเปเบฒเบ. เปเบซเปเปเบงเบปเปเบฒเบงเปเบฒเบเปเบญเบเบเปเบฒเบฅเบฑเบเบเบฝเบเปเบกเบเบนเบ nginx
. เบกเบฑเบเบเบฐเบเบญเบเบเปเบงเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเปเปเปเบเบเบตเป:
- เบซเปเบญเบโเบฎเบฝเบ
nginx
เบญเบฐเบเบดเบเบฒเบเปเบงเปเปเบ manifestinit.pp
; - เบซเปเบญเบโเบฎเบฝเบ
nginx::service
เบญเบฐเบเบดเบเบฒเบเปเบงเปเปเบ manifestservice.pp
; - เบเปเบฒเบเบปเบ
nginx::server
เบญเบฐเบเบดเบเบฒเบเปเบงเปเปเบ manifestserver.pp
; - เบเปเบฒเบเบปเบ
nginx::server::location
เบญเบฐเบเบดเบเบฒเบเปเบงเปเปเบ manifestserver/location.pp
.
เบฎเบนเบเปเบเบ
เปเบเปเบเบญเบเบงเปเบฒเปเบเบปเปเบฒเปเบญเบเบฎเบนเปเบงเปเบฒเปเบกเปเปเบเบเปเบกเปเบเบซเบเบฑเบ; เปเบเปเบเปเบญเบเบเบฐเบเปเบญเบเปเบซเปเบกเบฑเบเบขเบนเปเปเบเบเปเบฅเบฐเบเบต
เบงเบดเบเบตเบเบฒเบเปเบเปเปเบกเปเปเบเบ: เบเบงเบฒเบกเบซเบกเบฒเบเบเบญเบเปเบกเปเปเบเบเบชเบฒเบกเบฒเบเบเบฐเบซเบเบฒเบเปเบเปเปเบเบเปเบเปเบเบฑเบเบเบฑเบ template
, เปเบเบดเปเบเบเปเบฒเบเปเบชเบฑเปเบเบเบฒเบเปเบเบซเบฒเปเบกเปเปเบเบ. เบชเปเบฒเบฅเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบญเบเบเบฐเปเบเบ เปเบญเบเบฐเบชเบฒเบ เปเบเปเบฎเปเบงเบกเบเบฑเบเบเบฑเบเบเบฒเบฅเบฒเบกเบดเปเบเบต content
. เบเบปเบงเบขเปเบฒเบเปเบเบฑเปเบเบเบตเป:
file { '/tmp/example': content => template('modulename/templatename.erb')
เปเบเบดเปเบเปเบชเบฑเปเบเบเบฒเบ <modulename>/<filename>
เบซเบกเบฒเบเปเบเบดเบเปเบเบฅเป <rootdir>/modules/<modulename>/templates/<filename>
.
เบเบญเบเบเบฒเบเบเบฑเปเบ, เบกเบตเบซเบเปเบฒเบเบตเป inline_template
โ เบกเบฑเบโเปเบเปโเบฎเบฑเบโเบเปเปโเบเบงเบฒเบกโเปเบกเปโเปเบเบโเปเบเบฑเบโเบเบฒเบโเบเปเบญเบโเบเปเปโเบกเบนเบโ, เบเปเปโเปเบกเปเบโเบเบทเปโเปเบเบฅโเปโ.
เบเบฒเบเปเบเปเบกเปเปเบเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบเบปเบงเปเบ Puppet เบเบฑเบเบซเบกเบปเบเปเบเบเบญเบเปเบเบเบเบฐเบเบธเบเบฑเบ.
Puppet เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเปเบกเปเปเบเบเปเบเบฎเบนเบเปเบเบ ERB เปเบฅเบฐ EPP:
เปเบเบเบซเบเปเปเบเปเบฝเบงเบเบฑเบ ERB
เปเบเบโเบชเปเบฒเบโเบเบฒเบโเบเบงเบโเบเบธเบกโ:
<%= ะะซะ ะะะะะะ %>
โ เปเบชเปโเบเปเบฒโเบเบญเบโเบเบฒเบโเบชเบฐโเปเบเบโเบญเบญเบโ<% ะะซะ ะะะะะะ %>
โ เบเบดเบโเปเบฅเปโเบเปเบฒโเบเบญเบโเบเบฒเบโเบชเบฐโเปเบเบโเบญเบญเบ (เปเบเบโเบเปเปโเบกเบตโเบเบฒเบโเปเบชเปโเบกเบฑเบโ)โ. เบเบฐเปเบซเบผเบเบเบฒเบเบเบตเปเบกเบตเปเบเบทเปเบญเบเปเบ (เบเปเบฒ) เปเบฅเบฐ loops (เปเบเปเบฅเบฐ) เบกเบฑเบเบเบฐเบขเบนเปเบเบตเปเบเบตเป.<%# ะะะะะะะขะะ ะะ %>
เบเบฒเบเบชเบฐเปเบเบเบญเบญเบเปเบ ERB เปเบกเปเบเบเบฝเบเปเบ Ruby (ERB เปเบกเปเบเบเบปเบงเบเบดเบเปเบฅเปเบง Embedded Ruby).
เปเบเบทเปเบญเปเบเบปเปเบฒเปเบเบดเบเบเบปเบงเปเบเบเบฒเบ manifest, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบตเปเบก @
เบเบฑเบเบเบทเปเบเบปเบงเปเบ. เปเบเบทเปเบญเปเบญเบปเบฒเบเบฒเบเปเบเปเบเปเบชเบฑเปเบเบเบตเปเบเบฒเบเบปเบเบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบฒเบเบเบงเบเบเบธเบก, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบเปเบฒเบเบเบดเบ -%>
.
เบเบปเบงเบขเปเบฒเบเบเบญเบเบเบฒเบเปเบเปเปเบกเปเปเบเบ
เปเบซเปเปเบงเบปเปเบฒเบงเปเบฒเบเปเบญเบเบเปเบฒเบฅเบฑเบเบเบฝเบเปเบกเบเบนเบเปเบเบทเปเบญเบเบงเบเบเบธเบก ZooKeeper. เบซเปเบญเบเบฎเบฝเบเบเบตเปเบฎเบฑเบเบเบดเบเบเบญเบเปเบเบเบฒเบเบชเปเบฒเบ config เบกเบตเบฅเบฑเบเบชเบฐเบเบฐเปเบเบฑเปเบเบเบตเป:
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 -%>
เบเปเปเปเบเบฑเบเบเบดเบเปเบฅเบฐเบเบปเบงเปเบเปเบเบเบปเบง
เบชเปเบงเบเบซเบผเบฒเบเบกเบฑเบ, เบเบฒเบเบชเปเบงเบเบชเบฐเปเบเบฒเบฐเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบกเปเบเบเบถเปเบเบเบฑเบเบชเบดเปเบเบเบตเปเบเปเบฒเบฅเบฑเบเปเบเบตเบเบเบถเปเบเปเบ node. เบเบปเบงเบขเปเบฒเบ, เบเบถเปเบเบเบฑเบเบเบฒเบเบเปเบญเบ Debian เปเบกเปเบเบซเบเบฑเบ, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบดเบเบเบฑเปเบเบเบธเบเบซเบเบถเปเบเบซเบผเบทเบชเบฐเบเบฑเบเบญเบทเปเบ. เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบดเบเบเบฒเบกเบเบงเบเบเบฒเบเบฑเบเบซเบกเบปเบเบเบตเปเบเปเบงเบเบเบปเบเปเบญเบ, rewriting manifests เบเปเบฒ nodes เบกเบตเบเบฒเบเบเปเบฝเบเปเบเบ. เปเบเปเบเบตเปเบเปเปเปเบกเปเบเบงเบดเบเบตเบเบฒเบเบเบตเปเบฎเบธเบเปเบฎเบ;
เปเบเบทเปเบญเปเบซเปเปเบเปเบฎเบฑเบเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบเปเป, Puppet เบกเบตเบเบปเบเปเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒเบเปเปเปเบเบฑเบเบเบดเบ. เบเปเปเปเบเบฑเบเบเบดเบ - เบเบตเปเปเบกเปเบเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบ node, เบเบตเปเบกเบตเบขเบนเปเปเบ manifests เปเบเบฎเบนเบเปเบเบเบเบญเบเบเบปเบงเปเบเบเปเบฒเบกเบฐเบเบฒเปเบ namespace เบเบปเปเบงเปเบฅเบ. เบเบปเบงเบขเปเบฒเบเปเบเบฑเปเบ, เบเบทเปเปเบเบปเปเบฒเบเบฒเบ, เบฎเบธเปเบเบเบญเบเบฅเบฐเบเบปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบ, เบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเปเบเปเบเบเปเบเบต, เบฅเบฒเบเบเบทเปเบเบนเปเปเบเป, เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบเบฒเบเปเบเปเบเบญเบเปเบเบทเบญเบเปเบฒเบเปเบฅเบฐเบเบตเปเบขเบนเปเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒ, เปเบฅเบฐเบซเบผเบฒเบ, เบกเบตเบซเบผเบฒเบเบซเบผเบฒเบ. เบเบงเบฒเบกเบเบดเบเปเบกเปเบเบกเบตเบขเบนเปเปเบ manifests เปเบฅเบฐเปเบกเปเปเบเบเปเบเบฑเบเบเบปเบงเปเบเบเบปเบเบเบฐเบเบด.
เบเบปเบงเบขเปเบฒเบเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเปเปเปเบเบฑเบเบเบดเบ:
notify { "Running OS ${facts['os']['name']} version ${facts['os']['release']['full']}": }
# ัะตัััั ัะธะฟะฐ notify ะฟัะพััะพ ะฒัะฒะพะดะธั ัะพะพะฑัะตะฝะธะต ะฒ ะปะพะณ
เปเบงเบปเปเบฒเบขเปเบฒเบเปเบเบฑเบเบเบฒเบเบเบฒเบ, เบเบงเบฒเบกเบเบดเบเบกเบตเบเบทเป (เบชเบฐเบเบฃเบดเบ) เปเบฅเบฐเบเปเบฒ (เบเบฐเปเบเบเบเปเบฒเบเปเบเบตเปเบกเบตเบขเบนเป: เบชเบฐเบเบดเบ, เบญเบฒเปเบฃ, เบงเบฑเบเบเบฐเบเบฒเบเบธเบเบปเบก). เบเบดเบ
เปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบ, เบเบปเบงเปเบเบ puppet เบเปเบฒเบญเบดเบเบเบฑเบเบฅเบญเบเบเบปเบงเปเบเบฑเบเบเปเปเบกเบนเบเบเบตเปเบกเบตเบขเบนเปเบเบฑเบเบซเบกเบปเบเบเบฒเบ pappetserver เปเบเบซเบฒ node, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบกเบฑเบเปเบเบตเบเบเบปเบงเบเบงเบเปเบเบปเบฒเปเบฅเบฐเบชเบปเปเบเบเปเปเปเบเบฑเบเบเบดเบเบเบตเปเปเบเบฑเบเบเปเบฒเปเบเบซเบฒเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ; เบซเบผเบฑเบเบเบฒเบเบเบตเป, เปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเบฅเบงเบเบฅเบงเบกเบฅเบฒเบเบเบฒเบ.
เบเปเปเปเบเบฑเบเบเบดเบเปเบเบฎเบนเบเปเบเบเบเบญเบเปเบเบฅเปเบเบตเปเบเบฐเบเบดเบเบฑเบเปเบเป
เบเปเปเปเบเบฑเบเบเบดเบเบเบฑเปเบเบเปเบฒเบงเบเบทเบเบเบฑเบเปเบชเปเปเบเปเบกเบเบนเบเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต facts.d
. เปเบเปเบเบญเบ, เปเบเบฅเปเบเปเบญเบเบเบทเบเบเบฐเบเบดเบเบฑเบ. เปเบกเบทเปเบญเปเบฅเปเบ, เบเบงเบเปเบเบปเบฒเบเปเบญเบเบชเบปเปเบเบเปเปเบกเบนเบเบญเบญเบเปเบเบฑเบเบเบปเบเบเบฐเบฅเบดเบเบกเบฒเบเบเบฐเบเบฒเบเปเบเบฎเบนเบเปเบเบ YAML เบซเบผเบท key=value.
เบขเปเบฒเบฅเบทเบกเบงเปเบฒเบเปเปเปเบเบฑเบเบเบดเบเปเบเปเบเบฑเบเบเบธเบ nodes เบเบตเปเบเบทเบเบเบงเบเบเบธเบกเปเบเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ poppet เบเบตเปเปเบกเบเบนเบเบเบญเบเบเปเบฒเบเบเบทเบเบเปเบฒเปเบเปเบเป. เบเบฑเปเบเบเบฑเปเบ, เปเบเบชเบฐเบเบดเบ, เบเบงเบเปเบเบดเปเบเบงเปเบฒเบฅเบฐเบเบปเบเบกเบตเปเบเบผเปเบเบผเบกเปเบฅเบฐเปเบเบฅเปเบเบฑเบเบซเบกเบปเบเบเบตเปเบเปเบฒเปเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเบเบดเบเบเบญเบเปเบเบปเปเบฒเปเบฎเบฑเบเบงเบฝเบ.
#!/bin/sh
echo "testfact=success"
#!/bin/sh
echo '{"testyamlfact":"success"}'
เบเปเปเปเบเบฑเบเบเบดเบ Ruby
เบเปเปเปเบเบฑเบเบเบดเบเบเบฑเปเบเบเปเบฒเบงเบเบทเบเบเบฑเบเปเบชเปเปเบเปเบกเบเบนเบเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต 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
เบเปเปเปเบเบฑเบเบเบดเบเบเปเปเบเบงเบฒเบก
เบเปเปเปเบเบฑเบเบเบดเบเบเบฑเปเบเบเปเบฒเบงเปเบกเปเบเบเบทเบเบเบฑเบเปเบชเปเปเบ nodes เปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต /etc/facter/facts.d
เปเบ Puppet เปเบเบปเปเบฒเบซเบผเบท /etc/puppetlabs/facts.d
เปเบ Puppet เปเบซเบกเป.
examplefact=examplevalue
---
examplefact2: examplevalue2
anotherfact: anothervalue
เบเบฒเบเปเบเบปเปเบฒเบซเบฒเบเปเปเปเบเบฑเบเบเบดเบ
เบกเบตเบชเบญเบเบงเบดเบเบตเบเบตเปเบเบฐเปเบเบปเปเบฒเบซเบฒเบเบงเบฒเบกเบเบดเบ:
- เบเปเบฒเบเบงเบฑเบเบเบฐเบเบฒเบเบธเบเบปเบก
$facts
:$facts['fqdn']
; - เบเบฒเบเบเปเบฒเปเบเปเบเบทเปเบเบงเบฒเบกเบเบดเบเปเบเบฑเบเบเบทเปเบเบปเบงเปเบ:
$fqdn
.
เบกเบฑเบเบเบตเบเบตเปเบชเบธเบเบเบตเปเบเบฐเปเบเปเบงเบฑเบเบเบฐเบเบฒเบเบธเบเบปเบก $facts
, เบซเบผเบทเบเบตเบเบงเปเบฒ, เบเบตเปเปเบซเปเปเบซเบฑเบ namespace เบเบปเปเบงเปเบฅเบ ($::facts
).
เบเบปเบงเปเบเปเบเบเบปเบง
เบเบญเบโเบเบฒเบโเบเปเปโเปเบเบฑเบโเบเบดเบโ, เบเบฑเบโเบกเบตโ
- เบเปเปเปเบเบฑเบเบเบดเบเบเบตเปเปเบเบทเปเบญเบเบทเปเบเป โ เบเบปเบงเปเบเบเบตเปเปเบญเบปเบฒเบกเบฒเบเบฒเบเปเบเบขเบฑเปเบเบขเบทเบเบเบญเบเบฅเบนเบเบเปเบฒ (เบเบฑเบเบเบฑเปเบเปเบเปเปเบเบขเบฑเปเบเบขเบทเบเบเบทเบเบญเบญเบเปเบเบเบเบปเบเบเบฐเบเบดเบขเบนเปเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ poppet, เบเบปเบงเปเบเบเบเปเปเบชเบฒเบกเบฒเบเบเบฝเบเปเบเปเปเบญเบปเบฒเปเบฅเบฐเบเปเบฝเบเปเบเบขเบฑเปเบเบขเบทเบเบเบญเบเบกเบฑเบ, เบเบฑเปเบเบเบฑเปเบเบเบปเบงเปเบเปเบกเปเบ "เปเบงเปเบงเบฒเบเปเบ"): เบเบทเปเบเบญเบเปเบเบขเบฑเปเบเบขเบทเบ, เบเบทเปเบเบญเบ. เปเบฎเบเปเบฅเบฐเปเบเปเบกเบ, เบชเปเบงเบเบเบฐเบซเบเบฒเบเบเบฒเบเปเบเบขเบฑเปเบเบขเบทเบ.
- เบเปเปเปเบเบฑเบเบเบดเบเบเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ โ เบเบปเบงโเปเบโเบเบตเปโเบเปเบฝเบงโเบเปเบญเบโเบเบฑเบโเบเปเปโเบกเบนเบโเบเปเบฝเบงโเบเบฑเบโเปเบเบทเปเบญเบโเปเบกเปโเบเปเบฒเบ โ เบชเบฐโเบเบฑเบโ, เบเบทเปโ, เบเบตเปโเบขเบนเป IP เบเบญเบโเปเบเบทเปเบญเบโเปเบกเปโเบเปเบฒเบโ, เบชเบฐโเบเบฒเบโเปเบงเบโเบฅเปเบญเบกโ.
- เบเปเปเปเบเบฑเบเบเบดเบเบเบญเบเบเบปเบงเปเบเบ โ เบเบปเบงโเปเบโเปเบเบตเปเบกโเบเบถเปเบโเปเบเบโเบเบปเบโเปเบเบโเบเบปเบงโเปเบเบ puppetโ, เปเบฅเบฐโเบเปเปโเปเบกเปเบโเปเบเบโเบเบปเบงโเบเบดเบ โ เบเบทเปโเปเบโเบขเบฑเปเบโเบขเบทเบโ, เบชเบฐโเบเบฑเบโเบเบปเบงโเปเบเบโ, เบชเบฐโเบเบฑเบ puppetโ.
- เบเบปเบงเปเบเบซเบผเบฑเบ - เบเบปเบงเปเบ Pappetmaster (sic!). เบกเบฑเบเบเปเบฝเบงเบเบฑเบเบเบทเบเบฑเบเบเบฑเบเปเบ เบเปเปเปเบเบฑเบเบเบดเบเบเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ, เบเบงเบเบเปเบฒเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบกเปเบเบกเบตเบขเบนเป.
- เบเบปเบงเปเบ compiler โ เบเบปเบงเปเบ compiler เปเบเบเบเปเบฒเบเบเบฑเบเปเบเปเบเปเบฅเบฐเบเบญเบเปเบเบ: เบเบทเปเบเบญเบเปเบกเบเบนเบเบเบฐเบเบธเบเบฑเบเปเบฅเบฐเบเบทเปเบเบญเบเปเบกเบเบนเบเบเบตเปเบงเบฑเบเบเบธเบเบฐเบเบธเบเบฑเบเปเบเปเบเบทเบเปเบเบปเปเบฒเปเบเบดเบ. เบเบงเบเบกเบฑเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเปเบเป, เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ, เปเบเบทเปเบญเบเบงเบเปเบเบดเปเบเบงเปเบฒเบซเปเบญเบเบฎเบฝเบเบชเปเบงเบเบเบปเบงเบเบญเบเปเบเบปเปเบฒเบเปเปเปเบเปเบเบทเบเบเปเบฒเปเบเปเปเบเบเบเบปเบเบเบฒเบเปเบกเบเบนเบเบญเบทเปเบ.
เบเบญเบเบเบฒเบเบเบฑเปเบ 1: เบงเบดเบเบตเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบฅเบฐ debug เบเบฑเบเบซเบกเบปเบเบเบตเป?
เบเบปเบเบเบงเบฒเบกเบกเบตเบเบปเบงเบขเปเบฒเบเบเปเบฒเบเบงเบเบซเบผเบฒเบเบเบญเบเบฅเบฐเบซเบฑเบ puppet, เปเบเปเบเปเปเปเบเปเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบซเบกเบปเบเบงเบดเบเบตเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบฅเบฐเบซเบฑเบเบเบตเป. เบเบต, เบเปเบญเบเบเปเบฒเบฅเบฑเบเปเบเปเปเบเบเบปเบงเปเบญเบ.
เบเบปเบงเปเบเบเปเบกเปเบเบเบฝเบเบเปเบเบตเปเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบ Puppet, เปเบเปเบชเปเบฒเบฅเบฑเบเบเปเบฅเบฐเบเบตเบชเปเบงเบเปเบซเบเป, เบเปเบฒเบเบเบฑเบเบเปเบญเบเบเบฒเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ.
เบเบปเบงเปเบเบ
เบขเปเบฒเบ เบซเบเปเบญเบ เบเบฑเบ เบเบฑเปเบ เปเบเป เบชเบฐ เบเบฑเบ 5, เบเบฒเบ เบซเบธเปเบก เบซเปเป puppet เบเบปเบง เปเบเบ เบเบฒเบ
เปเบเบเปเบฅเบฐเบเบตเบเปเบฒเบเบเบฒเบเบเบตเปเบชเบธเบ, เบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบเบฑเปเบเบเปเบฒ puppet, เบกเบฑเบเบเบฝเบเบเปเบเบตเปเบเบฐเปเบเบตเบเบเบปเบงเบเบปเบงเปเบเบเปเบเบฎเบนเบเปเบเบ serverless: เบชเบฐเบซเบเบญเบเปเบซเปเบงเปเบฒเบฅเบฐเบซเบฑเบ puppet เปเบเปเบเบทเบเบเบฑเบเบฅเบญเบเปเบเบเบตเป node, เปเบเบตเบเบเบปเบง. 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
เบกเบฑเบเบเบตเบเบงเปเบฒ, เปเบเปเบเบญเบ, เบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบฅเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบเบปเบงเปเบเบเบขเบนเปเปเบเปเบซเบเบเปเบเปเบซเบกเบ daemon - เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบธเบเปเปเบเบดเปเบเบเบปเปเบงเปเบกเบเบเบงเบเปเบเบปเบฒเบเบฐเบเปเบฒเปเบเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบตเปเบเบฒเบงเปเบซเบฅเบเบกเบฒเบเบฒเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ.
เบเปเบฒเบเบชเบฒเบกเบฒเบเบฎเบฝเบเปเบเบเบฎเบนเบเปเบเบเบเบฒเบเบเบธเบเบเบนเปเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบ - เปเบเบซเบฒ node เบเบตเปเบเปเบฒเบเบชเบปเบเปเบเปเบฅเบฐเปเบฅเบตเปเบกเบเบปเปเบ sudo puppet agent -t
. เบเบฐเปเบ -t
(--test
) เบเบปเบงโเบเบดเบโเปเบฅเปเบงโเบเบฐโเบเบญเบโเบกเบตโเบเบฒเบโเปเบฅเบทเบญเบโเบเปเบฒโเบเบงเบโเบซเบเบถเปเบโเบเบตเปโเบชเบฒโเบกเบฒเบโเปเบเปโเบฎเบฑเบโเบเบฒเบโเปเบเบตเบโเปเบเปโเปเบเบฑเบโเบชเปเบงเบโเบเบธเบโเบเบปเบโ. เบเบฒเบเปเบฅเบทเบญเบเปเบซเบผเบปเปเบฒเบเบตเปเบเบฐเบเบญเบเบกเบตเบเบฑเปเบเบเปเปเปเบเบเบตเป:
- เบเปเปเบเปเบฒเปเบเบตเบเบเบฒเบเบขเบนเปเปเบเปเบซเบกเบ daemon (เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเบปเบงเปเบเบเปเบฅเบตเปเบกเบเบปเปเบเปเบเปเบซเบกเบ daemon);
- เบเบดเบเบฅเบปเบเบซเบผเบฑเบเบเบฒเบเบเปเบฒเปเบเปเบฅเบฒเบเบเบฒเบ (เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เบเบปเบงเปเบเบเบเบฐเบชเบทเบเบเปเปเปเบฎเบฑเบเบงเบฝเบเปเบฅเบฐเบเปเบฒเปเบเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบซเบเบถเปเบเบเบฑเปเบเบเบธเบเปเปเบเบดเปเบเบเบปเปเบงเปเบกเบ);
- เบเบฝเบเบเบฑเบเบเบถเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบฅเบฐเบญเบฝเบ;
- เบชเบฐเปเบเบเบเบฒเบเบเปเบฝเบเปเบเบเปเบเปเบเบฅเป.
เบเบปเบงเปเบเบเบกเบตเปเบซเบกเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบเบเบเปเปเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบ - เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบกเบฑเบเปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเบเบเปเปเปเบเปเปเบเบงเปเบฒเบเปเบฒเบเปเบเปเบเบฝเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบตเปเบเบทเบเบเปเบญเบเปเบฅเบฐเบเปเบญเบเบเบฒเบเบเบงเบเปเบเบดเปเบเบงเปเบฒเบเบปเบงเปเบเบเบเบฐเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเปเบเบงเปเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบ. เปเบซเบกเบเบเบตเปเบเบทเบเปเบเบตเบเปเบเปเปเบเบเบเบฒเบฅเบฒเบกเบดเปเบเบต --noop
เปเบโเบเบฑเบโเบเบตโเบเปเบฒโเบชเบฑเปเบโ: sudo puppet agent -t --noop
.
เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบตเบเปเบเปเบเบฑเบเบเบถเบเบเบฒเบเบเบตเบเบฑเบเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบ - เปเบเบกเบฑเบ, puppet เบเบฝเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบกเบฑเบเบเบฐเบเบดเบเบฑเบ: เบเปเบฝเบงเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเบกเบฑเบเบเปเบฒเบฅเบฑเบเบเปเบฒเปเบเบตเบเบเบฒเบ, เบเปเบฝเบงเบเบฑเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเป, เบเปเบฝเบงเบเบฑเบเบชเบดเปเบเบเบตเปเบกเบฑเบเปเบเบตเบเบเบปเบง. เปเบเปเบเบญเบ, เบเบตเปเปเบกเปเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ --debug
.
Server
เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเบเปเปเบเบดเบเบฒเบฅเบฐเบเบฒเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบฑเบกเบเบญเบ pappetserver เปเบฅเบฐ deploying code เบเบฑเบเบกเบฑเบเปเบเบเบปเบเบเบงเบฒเบกเบเบตเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฝเบเปเบเปเบเบฐเปเบงเบปเปเบฒเบงเปเบฒเบญเบญเบเบเบฒเบเบเปเบญเบเบกเบตเบชเบฐเบเบฑเบเบเบฒเบชเบฒเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบขเปเบฒเบเปเบเบฑเบกเบเบตเปเบเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบตเปเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบกเบตเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบตเปเบกเปเบเบตเบกเปเบเบทเปเบญเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเปเบฒเบเบงเบเบเบฐเบซเบเบฒเบเบเปเบญเบเบเบญเบ. nodes (เปเบงเบปเปเบฒเบงเปเบฒ, เปเบเบดเบเบฎเปเบญเบ). เบเปเบฒเบเบงเบเบเบฐเบซเบเบฒเบเปเบซเบเปเบเบญเบ nodes เบเบฐเบฎเบฝเบเบฎเปเบญเบเปเบซเปเบกเบตเบเบฒเบเบเบฑเบ - เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, puppetserver เปเบเบตเบเบเบปเบงเบเปเปเปเบเบตเบเบชเบตเปเบเบปเบ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบซเบผเบฒเบเบเบงเปเบฒเปเบเบปเปเบฒ, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบตเปเบกเบเปเบฒเบเบงเบเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบฅเบฐเบเปเปเบฅเบทเบกเบเบตเปเบเบฐเปเบเบตเปเบกเบเบตเบเบเปเบฒเบเบฑเบเบเบญเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ, เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบฐเปเบเบฑเบเบเบตเปเปเบซเบเบทเปเบญเบซเบผเบฒเบเบเบตเปเบชเบธเบ.
เบเบฒเบเปเบเปเบฅเบฐเบซเบฑเบ - เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบกเบฑเบเปเบงเปเบฅเบฐเบเปเบฒเบเบเบฒเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบดเปเบ (เบขเบนเปเบเบตเป r10k)[
เปเบญเบเบฐเบชเบฒเบเบเปเบญเบเบเปเบฒเบ 2: เบเปเปเปเบเบฐเบเบณเบเบฒเบเบเบฝเบเบฅเบฐเบซเบฑเบ
- เบงเบฒเบเปเบซเบเบเบปเบเบเบฑเบเปเบปเบเปเบเบซเปเบญเบเบฎเบฝเบ เปเบฅเบฐเบเบณเบเบดเบเบฒเบก.
- เบฎเบฑเบเบชเบฒเบเบฑเปเบเบฎเบฝเบเปเบฅเบฐเบเปเบฒเบเบดเบเบฒเบกเปเบเปเบกเบเบนเบ, เบเปเปเปเบกเปเบเบขเบนเปเปเบ manifests เบญเบฐเบเบดเบเบฒเบ nodes.
- เปเบเปเบเปเปเปเบเบฑเบเบเบดเบ.
- เบขเปเบฒเบชเปเบฒเบ ifs เปเบเบเบญเบตเบเปเบชเปเบเบทเปเปเบเบปเปเบฒเบเบฒเบ.
- เบฎเบนเปเบชเบถเบเบเปเปเปเบชเบเบเปเบฒเบเบตเปเบเบฐเปเบเบตเปเบกเบเบฒเบฅเบฒเบกเบดเปเบเบตเบชเปเบฒเบฅเบฑเบเบซเปเบญเบเบฎเบฝเบเปเบฅเบฐเบเปเบฒเบเบดเบเบฒเบก - เบเบตเปเปเบกเปเบเบเบตเบเปเบงเบฒเปเบซเบเบเบปเบ implicit เปเบเบทเปเบญเบเปเบงเปเบขเบนเปเปเบเบฎเปเบฒเบเบเบฒเบเบเบญเบเบซเปเบญเบเบฎเบฝเบ / เบเปเบฒเบเบปเบ.
เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเบญเบฐเบเบดเบเบฒเบเบงเปเบฒเปเบเบฑเบเบซเบเบฑเบเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเบฐเบเปเบฒเปเบซเปเปเบฎเบฑเบเบชเบดเปเบเบเบตเปเปเบเบเบปเบเบเบงเบฒเบกเบเปเปเปเบ.
เบชเบฐเบซเบฅเบธเบ
เบเปเปเบซเปเบชเปเบฒเปเบฅเบฑเบเบเปเบงเบเบเบฒเบเปเบเบฐเบเปเบฒ. เปเบเบเบปเบเบเบงเบฒเบกเบเปเปเปเบเบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเบเบญเบเบเปเบฒเบเบเปเบฝเบงเบเบฑเบ Hiera, ENC เปเบฅเบฐ PuppetDB.
เบเบฝเบเปเบเปเบเบนเปเปเบเปเบฅเบปเบเบเบฐเบเบฝเบเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเบฎเปเบงเบกเปเบเบเบฒเบเบชเปเบฒเบซเบผเบงเบ.
เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบกเบตเบซเบผเบฒเบเปเบญเบเบฐเบชเบฒเบเบซเบผเบฒเบ - เบเปเบญเบเบชเบฒเบกเบฒเบเบเบฝเบเบเบปเบเบเบงเบฒเบกเปเบเบซเบปเบงเบเปเปเบเปเปเปเบเบเบตเป, เบฅเบปเบเบเบฐเปเบเบเบชเบฝเบเบเปเบฝเบงเบเบฑเบเบชเบดเปเบเบเบตเปเบเปเบฒเบเบชเบปเบเปเบเปเบเบเบฒเบเบญเปเบฒเบ:
- 59,1%เปเบเบเบชเปเบฒเบ puppet เบเบฑเปเบเบชเบนเบ - เบเบฒเบ shit เบฅเบฐเบเบฑเบเบเปเปเปเบ: loops, เปเบเบเบเบตเปเปเบฅเบฐเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบญเบ lambda เบญเบทเปเบเป, เบเบนเปเปเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ, เบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเบชเบปเปเบเบญเบญเบเปเบฅเบฐเบเบฒเบเบชเบทเปเบชเบฒเบเบฅเบฐเบซเบงเปเบฒเบเปเบเบปเปเบฒเบเบฒเบเบเปเบฒเบ Puppet, tags, เบเบนเปเปเบซเปเบเปเบฅเบดเบเบฒเบ, abstract data types.13
- 31,8%"เบเปเบญเบเปเบเบฑเบเบเบนเปเปเบเบดเปเบเปเบเบเปเบกเปเบเบญเบเบเปเบญเบ" เบซเบผเบทเบงเบดเบเบตเบเบตเปเบเบงเบเปเบฎเบปเบฒเบขเบนเปเปเบ Avito เบชเปเบฒเบเปเบเบทเปเบญเบเบเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ poppet เบซเบผเบฒเบเบฎเบธเปเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ, เปเบฅเบฐ, เปเบเบซเบผเบฑเบเบเบฒเบ, เบเบฒเบเบชเปเบงเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบธเปเบกเบเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ poppet.7.
- 81,8%เบงเบดเบเบตเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฝเบเบฅเบฐเบซเบฑเบ puppet: เปเบเบทเปเบญเบเบกเบท, เปเบญเบเบฐเบชเบฒเบ, เบเบฒเบเบเบปเบเบชเบญเบ, CI/CD.18
เบเบนเปเปเบเป 22 เบเบปเบเบฅเบปเบเบเบฐเปเบเบเบชเบฝเบ. 9 เบเบนเปเปเบเปเบเบปเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com