เดชเดชเตเดชเดฑเตเดฑเดฟเดจเตเดฑเต† เด†เดฎเตเด–เด‚

เดชเดชเตเดชเดฑเตเดฑเต เด’เดฐเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต เดธเดฟเดธเตเดฑเตเดฑเดฎเดพเดฃเต. เดนเต‹เดธเตเดฑเตเดฑเตเด•เดณเต† เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เด…เดตเดธเตเดฅเดฏเดฟเดฒเต‡เด•เตเด•เต เด•เตŠเดฃเตเดŸเตเดตเดฐเดพเดจเตเด‚ เดˆ เด…เดตเดธเตเดฅ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเดพเดจเตเด‚ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

เดžเดพเตป เด‡เดชเตเดชเต‹เตพ เด…เดžเตเดšเต เดตเตผเดทเดคเตเดคเดฟเดฒเต‡เดฑเต†เดฏเดพเดฏเดฟ เดชเดชเตเดชเดฑเตเดฑเดฟเดจเตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เดˆ เดตเดพเดšเด•เด‚ เด…เดŸเดฟเดธเตเดฅเดพเดจเดชเดฐเดฎเดพเดฏเดฟ เด”เดฆเตเดฏเต‹เด—เดฟเด• เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดชเตเดฐเดงเดพเดจ เดชเต‹เดฏเดฟเดจเตเดฑเตเด•เดณเตเดŸเต† เดตเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดชเตเดจเดƒเด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดค เดธเดฎเดพเดนเดพเดฐเดฎเดพเดฃเต, เด‡เดคเต เดคเตเดŸเด•เตเด•เด•เตเด•เดพเตผเด•เตเด•เต เดชเดชเตเดชเดฑเตเดฑเดฟเดจเตเดฑเต† เดธเดพเดฐเดพเด‚เดถเด‚ เดตเต‡เด—เดคเตเดคเดฟเตฝ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเตป เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเด‚.

เดชเดชเตเดชเดฑเตเดฑเดฟเดจเตเดฑเต† เด†เดฎเตเด–เด‚

เด…เดŸเดฟเดธเตเดฅเดพเดจ เดตเดฟเดตเดฐเด™เตเด™เตพ

เดชเดชเตเดชเดฑเตเดฑเดฟเดจเตเดฑเต† เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เตเดฒเดฏเดจเตเดฑเต-เดธเต†เตผเดตเตผ เด†เดฃเต, เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚ เด‡เดคเต เดชเดฐเดฟเดฎเดฟเดคเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดคเดฏเตเดณเตเดณ เดธเต†เตผเดตเตผเดฒเต†เดธเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต.

เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเดฑเต† เด’เดฐเต เดชเตเตพ เดฎเต‹เดกเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต: เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ, เด“เดฐเต‹ เด…เดฐเดฎเดฃเดฟเด•เตเด•เต‚เดฑเดฟเดฒเตเด‚ เด’เดฐเดฟเด•เตเด•เตฝ, เด•เตเดฒเดฏเดจเตเดฑเตเด•เตพ เด’เดฐเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดพเดฏเดฟ เดธเต†เตผเดตเดฑเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเด•เดฏเตเด‚ เด…เดคเต เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดจเดฟเด™เตเด™เตพ เด…เตปเดธเดฟเดฌเดฟเดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด…เดตเตผ เดฎเดฑเตเดฑเตŠเดฐเต เดชเตเดทเต เดฎเต‹เดกเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต: เด…เดกเตเดฎเดฟเดจเดฟเดธเตเดŸเตเดฐเต‡เดฑเตเดฑเตผ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเด•เตเดฐเดฟเดฏ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต, เด•เตเดฒเดฏเดจเตเดฑเตเด•เตพ เดธเตเดตเดฏเด‚ เด’เดจเตเดจเตเด‚ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เดฟเดฒเตเดฒ.

เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏ เดธเดฎเดฏเดคเตเดคเต, เดŸเต-เดตเต‡ TLS เดŽเตปเด•เตเดฐเดฟเดชเตเดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต: เดธเต†เตผเดตเดฑเดฟเดจเตเด‚ เด•เตเดฒเดฏเดจเตเดฑเดฟเดจเตเด‚ เด…เดตเดฐเตเดŸเต‡เดคเดพเดฏ เดธเตเดตเด•เดพเดฐเตเดฏ เด•เต€เด•เดณเตเด‚ เด…เดจเตเดฌเดจเตเดง เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เดณเตเด‚ เด‰เดฃเตเดŸเต. เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดธเต†เตผเดตเตผ เด•เตเดฒเดฏเดจเตเดฑเตเด•เตพเด•เตเด•เต เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เตพ เดจเตฝเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดคเดคเตเดตเดคเตเดคเดฟเตฝ เด’เดฐเต เดฌเดพเดนเตเดฏ CA เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚.

เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเต‹เด•เดณเตเดŸเต† เด†เดฎเตเด–เด‚

เดชเดชเตเดชเดฑเตเดฑเต เดŸเต†เตผเดฎเดฟเดจเต‹เดณเดœเดฟเดฏเดฟเตฝ เดชเดพเดต เดธเต†เตผเดตเดฑเดฟเดฒเต‡เด•เตเด•เต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเด• เดจเต‹เดกเตเด•เตพ (เดจเต‹เดกเตเด•เตพ). เดจเต‹เดกเตเด•เตพเด•เตเด•เตเดณเตเดณ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดŽเดดเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดชเตเดฐเด•เดŸเดจเดชเดคเตเดฐเดฟเด•เด•เดณเดฟเตฝ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดทเดฏเดฟเตฝ - เดชเดชเตเดชเดฑเตเดฑเต DSL.

เดชเดชเตเดชเดฑเตเดฑเต เดกเดฟเดŽเดธเตเดŽเตฝ เด’เดฐเต เดชเตเดฐเด–เตเดฏเดพเดชเดจ เดญเดพเดทเดฏเดพเดฃเต. เดตเตเดฏเด•เตเดคเดฟเด—เดค เดตเดฟเดญเดตเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเด–เตเดฏเดพเดชเดจเด™เตเด™เดณเตเดŸเต† เดฐเต‚เดชเดคเตเดคเดฟเตฝ เดจเต‹เดกเดฟเดจเตเดฑเต† เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เด…เดตเดธเตเดฅ เด‡เดคเต เดตเดฟเดตเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต:

  • เดซเดฏเตฝ เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดŸเต, เด…เดคเดฟเดจเต เดชเตเดฐเดคเตเดฏเต‡เด• เด‰เดณเตเดณเดŸเด•เตเด•เดฎเตเดฃเตเดŸเต.
  • เดชเดพเด•เตเด•เต‡เดœเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเต.
  • เดธเตผเดตเต€เดธเต เด†เดฐเด‚เดญเดฟเดšเตเดšเต.

เดตเดฟเดญเดตเด™เตเด™เตพ เดชเดฐเดธเตเดชเดฐเด‚ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚:

  • เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ เด‰เดฃเตเดŸเต, เด…เดต เดตเดฟเดญเดตเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด•เตเดฐเดฎเดคเตเดคเต† เดฌเดพเดงเดฟเด•เตเด•เตเดจเตเดจเต.
    เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, "เด†เดฆเตเดฏเด‚ เดชเดพเด•เตเด•เต‡เดœเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•, เดคเตเดŸเตผเดจเตเดจเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเตฝ เดŽเดกเดฟเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเด•, เดคเตเดŸเตผเดจเตเดจเต เดธเต‡เดตเดจเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด•."
  • เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เด‰เดฃเตเดŸเต - เด’เดฐเต เด‰เดฑเดตเดฟเดŸเด‚ เดฎเดพเดฑเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเตเดšเต†เดฏเตโ€Œเดค เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดจเตเดจเต.
    เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเตฝ เดฎเดพเดฑเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเตเดตเดฏเด‚ เดธเต‡เดตเดจเด‚ เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚.

เด•เต‚เดŸเดพเดคเต†, เดชเดชเตเดชเดฑเตเดฑเต DSL-เดจเต เดซเด‚เด—เตเดทเดจเตเด•เดณเตเด‚ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเตเด‚ เดธเต‹เดชเดพเดงเดฟเด•เดฎเดพเดฏ เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เดณเตเด‚ เดธเต†เดฒเด•เตเดŸเดฑเตเด•เดณเตเด‚ เด‰เดฃเตเดŸเต. เดตเดฟเดตเดฟเดง เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเดฟเด‚เด—เต เดฎเต†เด•เตเด•เดพเดจเดฟเดธเด™เตเด™เดณเตเด‚ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต - EPP, ERB.

เดชเดชเตเดชเดฑเตเดฑเต เดฑเต‚เดฌเดฟเดฏเดฟเตฝ เดŽเดดเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเดพเตฝ เดชเดฒ เดจเดฟเตผเดฎเตเดฎเดพเดฃเด™เตเด™เดณเตเด‚ เดจเดฟเดฌเดจเตเดงเดจเด•เดณเตเด‚ เด…เดตเดฟเดŸเต† เดจเดฟเดจเตเดจเต เดŽเดŸเตเดคเตเดคเดคเดพเดฃเต. เดชเดชเตเดชเดฑเตเดฑเต เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดฑเต‚เดฌเดฟ เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต - เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เดฏเตเด•เตเดคเดฟ, เดชเตเดคเดฟเดฏ เดคเดฐเด‚ เดตเดฟเดญเดตเด™เตเด™เตพ, เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดต เดšเต‡เตผเด•เตเด•เตเด•.

เดชเดชเตเดชเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดธเต†เตผเดตเดฑเดฟเดฒเต† เด“เดฐเต‹ เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดจเต‹เดกเดฟเดจเตเดฎเตเดณเตเดณ เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเตเด•เตพ เด’เดฐเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚. เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เดซเด‚เด—เตโ€Œเดทเดจเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดธเต‹เดชเดพเดงเดฟเด• เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เดณเตเดŸเต† เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต†เดฏเตเด‚ เดฎเต‚เดฒเตเดฏเด‚ เด•เดฃเด•เตเด•เดพเด•เตเด•เดฟเดฏเดคเดฟเดจเต เดถเต‡เดทเดฎเตเดณเตเดณ เดตเดฟเดญเดตเด™เตเด™เดณเตเดŸเต†เดฏเตเด‚ เด…เดตเดฏเตเดŸเต† เดฌเดจเตเดงเด™เตเด™เดณเตเดŸเต†เดฏเตเด‚ เด’เดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เด†เดฃเต.

เดตเดพเด•เตเดฏเด˜เดŸเดจเดฏเตเด‚ เด•เต‹เดกเตโ€Œเดธเตเดฑเตเดฑเตˆเดฒเตเด‚

เดจเตฝเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพ เดชเดฐเตเดฏเดพเดชเตเดคเดฎเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดตเดพเด•เตเดฏเด˜เดŸเดจ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจ เด”เดฆเตเดฏเต‹เด—เดฟเด• เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเตเดฑเต† เดตเดฟเดญเดพเด—เด™เตเด™เตพ เด‡เดคเดพ:

เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเต เดŽเด™เตเด™เดจเต†เดฏเดฟเดฐเดฟเด•เตเด•เตเด‚ เดŽเดจเตเดจเดคเดฟเดจเตเดฑเต† เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เด‡เดคเดพ:

# ะšะพะผะผะตะฝั‚ะฐั€ะธะธ ะฟะธัˆัƒั‚ัั, ะบะฐะบ ะธ ะผะฝะพะณะพ ะณะดะต, ะฟะพัะปะต ั€ะตัˆั‘ั‚ะบะธ.
#
# ะžะฟะธัะฐะฝะธะต ะบะพะฝั„ะธะณัƒั€ะฐั†ะธะธ ะฝะพะดั‹ ะฝะฐั‡ะธะฝะฐะตั‚ัั ั ะบะปัŽั‡ะตะฒะพะณะพ ัะปะพะฒะฐ 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-เดฒเต† เดซเดฏเดฒเตเด•เดณเตเดŸเต† เดธเตเดฅเดพเดจเด‚

เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเต€เด•เดฐเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ, "เดฑเต‚เดŸเตเดŸเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟ" เดŽเดจเตเดจ เด†เดถเดฏเด‚ เดžเดพเตป เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเด•เตเด•เตเด‚. เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดจเต‹เดกเดฟเดจเตเดณเตเดณ เดชเดชเตเดชเดฑเตเดฑเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด…เดŸเด™เตเด™เตเดจเตเดจ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดพเดฃเต เดฑเต‚เดŸเตเดŸเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟ.

เดชเดชเตเดชเดฑเตเดฑเดฟเดจเตเดฑเต† เดชเดคเดฟเดชเตเดชเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเด•เดณเตเด‚ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต เดฑเต‚เดŸเตเดŸเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เดตเตเดฏเดคเตเดฏเดพเดธเดชเตเดชเต†เดŸเตเดจเตเดจเต. เดชเตเดฐเดคเตเดฏเต‡เด• เดกเดฏเดฑเด•เตเดŸเดฑเดฟเด•เดณเดฟเตฝ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเดฑเต† เดธเตเดตเดคเดจเตเดคเตเดฐ เดธเต†เดฑเตเดฑเตเด•เดณเดพเดฃเต เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟเด•เตพ. เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ git-เดฎเดพเดฏเดฟ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเดšเตเดšเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ git เดถเดพเด–เด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต. เด…เดคเดจเตเดธเดฐเดฟเดšเตเดšเต, เด“เดฐเต‹ เดจเต‹เดกเตเด‚ เด’เดฐเต เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเดฑเตเดฑเตŠเดจเตเดจเดฟเตฝ เดธเตเดฅเดฟเดคเดฟเดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด‡เดคเต เดจเต‹เดกเดฟเตฝ เดคเดจเตเดจเต† เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ ENC- เตฝ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚, เด…เดคเต เดžเดพเตป เด…เดŸเตเดคเตเดค เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเด‚.

  • เดฎเต‚เดจเตเดจเดพเดฎเดคเตเดคเต† เดชเดคเดฟเดชเตเดชเดฟเตฝ ("เดชเดดเดฏ เดชเดชเตเดชเดฑเตเดฑเต") เด…เดŸเดฟเดธเตเดฅเดพเดจ เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เด†เดฏเดฟเดฐเตเดจเตเดจเต /etc/puppet. เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเด•เดณเตเดŸเต† เด‰เดชเดฏเต‹เด—เด‚ เด“เดชเตเดทเดฃเดฒเดพเดฃเต - เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดชเดดเดฏ เดชเดชเตเดชเดฑเตเดฑเดฟเดจเตŠเดชเตเดชเด‚ เดžเด™เตเด™เตพ เด…เดต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฟเดฒเตเดฒ. เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด…เดต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดธเด‚เดญเดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚ /etc/puppet/environments, เดฑเต‚เดŸเตเดŸเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. เดŽเตปเดตเดฏเต‹เตบเดฎเต†เดจเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดฑเต‚เดŸเตเดŸเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เด…เดŸเดฟเดธเตเดฅเดพเดจ เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเด‚.
  • เดจเดพเดฒเดพเดฎเดคเตเดคเต† เดชเดคเดฟเดชเตเดชเต เดฎเตเดคเตฝ ("เดชเตเดคเดฟเดฏ เดชเดชเตเดชเดฑเตเดฑเต"), เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟเด•เดณเตเดŸเต† เด‰เดชเดฏเต‹เด—เด‚ เดจเดฟเตผเดฌเดจเตเดงเดฟเดคเดฎเดพเดฏเดฟ, เด…เดŸเดฟเดธเตเดฅเดพเดจ เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เด‡เดคเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเดฟ /etc/puppetlabs/code. เด…เดคเดจเตเดธเดฐเดฟเดšเตเดšเต, เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟเด•เตพ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต /etc/puppetlabs/code/environments, เดฑเต‚เดŸเตเดŸเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดพเดฃเต.

เดฑเต‚เดŸเตเดŸเต เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดฟเตฝ เด’เดฐเต เด‰เดชเดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚ manifests, เด…เดคเดฟเตฝ เดจเต‹เดกเตเด•เตพ เดตเดฟเดตเดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดจเตเดจเต‹ เด…เดคเดฟเดฒเดงเดฟเด•เดฎเต‹ เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเตเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด•เต‚เดŸเดพเดคเต†, เด’เดฐเต เด‰เดชเดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚ modules, เด‡เดคเดฟเตฝ เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดจเตเดคเตŠเด•เตเด•เต†เดฏเดพเดฃเต เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ เดŽเดจเตเดจเต เดžเดพเตป เด•เตเดฑเดšเตเดšเต เด•เดดเดฟเดžเตเดžเต เดชเดฑเดฏเดพเด‚. เด•เต‚เดŸเดพเดคเต†, เดชเดดเดฏ เดชเดชเตเดชเดฑเตเดฑเดฟเดจเต เด’เดฐเต เด‰เดชเดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเตเด‚ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚ files, เด…เดคเดฟเตฝ เดžเด™เตเด™เตพ เดจเต‹เดกเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดชเด•เตผเดคเตเดคเตเดจเตเดจ เดตเดฟเดตเดฟเดง เดซเดฏเดฒเตเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดชเตเดคเดฟเดฏ เดชเดชเตเดชเดฑเตเดฑเดฟเตฝ, เดŽเดฒเตเดฒเดพ เดซเดฏเดฒเตเด•เดณเตเด‚ เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเดฟเตฝ เดธเตเดฅเดพเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเต เดซเดฏเดฒเตเด•เตพเด•เตเด•เต เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเดฎเตเดฃเตเดŸเต .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-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดซเดฏเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚)
  • เดฒเด•เตเดทเตเดฏเด‚ - เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต เดธเดฟเด‚เดฒเดฟเด™เตเด•เต เดชเต‹เดฏเดฟเดจเตเดฑเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเต (เด•เต‚เดŸเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเดพเดตเดฟเดฒเตเดฒ เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เด…เดฅเดตเดพ เด‰เดฑเดตเดฟเดŸเด‚)
  • เด‰เดŸเดฎ โ€” เดซเดฏเตฝ เดธเตเดตเดจเตเดคเดฎเดพเด•เตเด•เต‡เดฃเตเดŸ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต
  • เด—เตเดฐเต‚เดชเตเดชเต โ€” เดซเดฏเตฝ เด‰เตพเดชเตเดชเต†เดŸเต‡เดฃเตเดŸ เด—เตเดฐเต‚เดชเตเดชเต
  • เดฎเต‡เดพเดกเต โ€” เดซเดฏเตฝ เด…เดจเตเดฎเดคเดฟเด•เตพ (เด’เดฐเต เดธเตเดŸเตเดฐเดฟเด‚เด—เต เด†เดฏเดฟ)
  • เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เตเด• - เด†เดตเตผเดคเตเดคเดจ เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟ เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเดจเตเดจเต
  • เดถเตเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเด• - เดชเดชเตเดชเดฑเตเดฑเดฟเตฝ เดตเดฟเดตเดฐเดฟเด•เตเด•เดพเดคเตเดค เดซเดฏเดฒเตเด•เตพ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดจเตเดจเดคเต เดชเตเดฐเดพเดชเตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต
  • เดถเด•เตเดคเดฟเดฏเดพเดฃเต - เดชเดชเตเดชเดฑเตเดฑเดฟเตฝ เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒเดพเดคเตเดค เดกเดฏเดฑเด•เตเดŸเดฑเดฟเด•เตพ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดจเตเดจเดคเต เดชเตเดฐเดพเดชเตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต

เดชเดพเด•เตเด•เต‡เดœเต

เดชเดพเด•เตเด•เต‡เดœเตเด•เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚ - เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เดชเดพเด•เตเด•เต‡เดœเต เดตเต€เดฃเตเดŸเตเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต reinstall_on_refresh.

เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ:

  • เดตเดฟเดญเดต เดจเดพเดฎเด‚ - เดชเดพเด•เตเด•เต‡เดœเดฟเดจเตเดฑเต† เดชเต‡เดฐเต (เด“เดชเตเดทเดฃเตฝ)
  • เดชเต‡เดฐเต - เดชเดพเด•เตเด•เต‡เดœเดฟเดจเตเดฑเต† เดชเต‡เดฐเต (เดชเต‡เดฐเดฟเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ)
  • เดฆเดพเดคเดพเดตเต โ€” เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเตเดณเตเดณ เดชเดพเด•เตเด•เต‡เดœเต เดฎเดพเดจเต‡เดœเตผ
  • เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเด• - เดชเดพเด•เตเด•เต‡เดœเดฟเดจเตเดฑเต† เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เด…เดตเดธเตเดฅ:
    • present, installed - เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดค เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดชเดคเดฟเดชเตเดชเต
    • latest - เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเต
    • absent - เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดฟ (apt-get remove)
    • purged - เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเดฒเตเด•เตพเด•เตเด•เตŠเดชเตเดชเด‚ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดฟ (apt-get purge)
    • held - เดชเดพเด•เตเด•เต‡เดœเต เดชเดคเดฟเดชเตเดชเต เดฒเต‹เด•เตเด•เต เดšเต†เดฏเตเดคเต (apt-mark hold)
    • ะปัŽะฑะฐั ะดั€ัƒะณะฐั ัั‚ั€ะพะบะฐ - เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดชเดคเดฟเดชเตเดชเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเต
  • reinstall_on_refresh - เดŽเด™เตเด•เดฟเตฝ true, เด…เดฑเดฟเดฏเดฟเดชเตเดชเต เดฒเดญเดฟเดšเตเดšเดพเตฝ เดชเดพเด•เตเด•เต‡เดœเต เดตเต€เดฃเตเดŸเตเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด‚. เดฌเดฟเตฝเดกเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดฎเดพเดฑเตเดฑเตเดฎเตเดชเต‹เตพ เดชเดพเด•เตเด•เต‡เดœเตเด•เตพ เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเดพเดฏเดฟ เดตเดฐเตเดจเตเดจ เด‰เดฑเดตเดฟเดŸ เด…เดงเดฟเดทเตเด เดฟเดค เดตเดฟเดคเดฐเดฃเด™เตเด™เตพเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต. เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ false.

เดธเต‡เดตเดจเด‚

เดธเต‡เดตเดจเด™เตเด™เตพ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚ - เดธเต‡เดตเดจเด‚ เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต.

เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ:

  • เดตเดฟเดญเดต เดจเดพเดฎเด‚ - เดฎเดพเดจเต‡เดœเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸ เดธเต‡เดตเดจเด‚ (เด“เดชเตเดทเดฃเตฝ)
  • เดชเต‡เดฐเต - เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸ เดธเต‡เดตเดจเด‚ (เดชเต‡เดฐเดฟเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ)
  • เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเด• - เดธเต‡เดตเดจเดคเตเดคเดฟเดจเตเดฑเต† เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เด…เดตเดธเตเดฅ:
    • running - เดตเดฟเด•เตเดทเต‡เดชเดฟเดšเตเดšเต
    • stopped - เดจเดฟเตผเดคเตเดคเดฟ
  • เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเด• - เดธเต‡เดตเดจเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจเต:
    • true โ€” เด“เดŸเตเดŸเต‹เดฑเตบ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟ (systemctl enable)
    • mask - เดตเต‡เดทเด‚เดฎเดพเดฑเดฟ (systemctl mask)
    • false โ€” เด“เดŸเตเดŸเต‹เดฑเตบ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เดฟ (systemctl disable)
  • เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด• - เดธเต‡เดตเดจเด‚ เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดฎเดพเตปเดกเต
  • เดชเดฆเดตเดฟ - เดธเต‡เดตเดจ เดจเดฟเดฒ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด•เดฎเดพเตปเดกเต
  • เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด• โ€” เดธเตผเดตเต€เดธเต initscript เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต‹ เดŽเดจเตเดจเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเด•. เดŽเด™เตเด•เดฟเตฝ false เด•เต‚เดŸเดพเดคเต† เดชเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด• - เดˆ เดชเดฐเดพเดฎเต€เดฑเตเดฑเดฑเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เดŽเด™เตเด•เดฟเตฝ false เดชเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด‚ เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด• เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒ - เดธเต‡เดตเดจเด‚ เดจเดฟเตผเดคเตเดคเดฟ เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดฟ (เดŽเดจเตเดจเดพเตฝ systemd เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต systemctl restart).
  • เดชเดฆเดตเดฟ โ€” เดธเตผเดตเต€เดธเต initscript เด•เดฎเดพเตปเดกเดฟเดจเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต‹ เดŽเดจเตเดจเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเด• status. เดŽเด™เตเด•เดฟเตฝ false, เดคเตเดŸเตผเดจเตเดจเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดฎเต‚เดฒเตเดฏเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต เดชเดฆเดตเดฟ. เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ true.

exec

เดฌเดพเดนเตเดฏ เด•เดฎเดพเตปเดกเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เดจเดฟเด™เตเด™เตพ เดชเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเด™เตเด•เดฟเตฝ เดฎเดพเดคเตเดฐเด‚, เด…เดฒเตเดฒเดพเดคเต† เด…เดฅเดตเดพ เด‰เดจเตเดฎเต‡เดทเดฆเดพเดฏเด•เดฎเดพเดฏเดฟ, เด“เดฐเต‹ เดคเดตเดฃเดฏเตเด‚ เดชเดชเตเดชเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด‚. เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚ - เด’เดฐเต เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต.

เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ:

  • เดตเดฟเดญเดต เดจเดพเดฎเด‚ - เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸ เด•เดฎเดพเตปเดกเต (เด“เดชเตเดทเดฃเตฝ)
  • เด•เดฎเดพเตปเดกเต - เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸ เด•เดฎเดพเตปเดกเต (เด…เดคเต เดชเต‡เดฐเดฟเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ)
  • เดชเดพเดค โ€” เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเตพ เดซเดฏเดฒเดฟเดจเดพเดฏเดฟ เดจเต‹เด•เตเด•เต‡เดฃเตเดŸ เดชเดพเดคเด•เตพ
  • เดŽเด™เตเด•เดฟเตฝ เดฎเดพเดคเตเดฐเด‚ โ€” เดˆ เดชเดฐเดพเดฎเต€เดฑเตเดฑเดฑเดฟเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเตเดณเตเดณ เด•เดฎเดพเตปเดกเต เดชเต‚เดœเตเดฏเด‚ เดฑเดฟเดŸเตเดŸเต‡เตบ เด•เต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เดฟเดฏเดพเตฝ, เดชเตเดฐเดงเดพเดจ เด•เดฎเดพเตปเดกเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚.
  • เด…เดฒเตเดฒเดพเดคเต† - เดˆ เดชเดฐเดพเดฎเต€เดฑเตเดฑเดฑเดฟเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏ เด•เดฎเดพเตปเดกเต เดชเต‚เดœเตเดฏเดฎเดฒเตเดฒเดพเดคเตเดค เดฑเดฟเดŸเตเดŸเต‡เตบ เด•เต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เดฟเดฏเดพเตฝ, เดชเตเดฐเดงเดพเดจ เด•เดฎเดพเตปเดกเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚.
  • เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต โ€” เดˆ เดชเดฐเดพเดฎเต€เดฑเตเดฑเดฑเดฟเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏ เดซเดฏเตฝ เดจเดฟเดฒเดตเดฟเดฒเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดชเตเดฐเดงเดพเดจ เด•เดฎเดพเตปเดกเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚
  • เด‰เดจเตเดฎเต‡เดทเดฆเดพเดฏเด•เดฎเดพเดฏเดฟ - เดŽเด™เตเด•เดฟเตฝ true, เดชเดฟเดจเตเดจเต€เดŸเต เดˆ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต€เดตเดฟเดจเต เดฎเดฑเตเดฑเต เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เดฑเดฟเดฏเดฟเดชเตเดชเต เดฒเดญเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดฎเดพเดคเตเดฐเดฎเต‡ เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเดณเตเดณเต‚
  • cwd โ€” เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸ เดกเดฏเดฑเด•เตเดŸเดฑเดฟ
  • เด‰เดชเดฏเต‡เดพเด•เตเดคเดพเดตเต โ€” เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต
  • เดฆเดพเดคเดพเดตเต - เด•เดฎเดพเตปเดกเต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเด‚:
    • เดชเต‹เดธเดฟเด•เตเดธเต - เด’เดฐเต เดšเตˆเตฝเดกเต เดชเตเดฐเต‹เดธเดธเตเดธเต เดฒเดณเดฟเดคเดฎเดพเดฏเดฟ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเดคเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเด• เดชเดพเดค
    • เดทเต†เตฝ - เด•เดฎเดพเตปเดกเต เดทเต†เดฒเตเดฒเดฟเตฝ เดธเดฎเดพเดฐเด‚เดญเดฟเดšเตเดšเต /bin/sh, เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเต‡เด•เตเด•เดฟเดฒเตเดฒ เดชเดพเดค, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด—เตเดฒเต‹เดฌเดฟเด‚เด—เต, เดชเตˆเดชเตเดชเตเด•เตพ, เดฎเดฑเตเดฑเต เดทเต†เตฝ เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดชเตเดฐเดคเตเดฏเต‡เด• เดชเตเดฐเดคเต€เด•เด™เตเด™เตพ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดธเตเดตเดฏเดฎเต‡เดต เด•เดฃเตเดŸเต†เดคเตเดคเตเด‚ (|, ;, &&, || เดคเตเดŸเด™เตเด™เดฟเดฏเดต).

เด•เตเดฐเต‡เดพเตบ

เด•เตเดฐเต‹เตบเดœเต‹เดฌเตเด•เตพ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ:

  • เดตเดฟเดญเดต เดจเดพเดฎเด‚ - เด’เดฐเตเดคเดฐเด‚ เดเดกเดจเตเดฑเดฟเดซเดฏเตผ เดฎเดพเดคเตเดฐเด‚
  • เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเด• - เด•เตเดฐเต—เตบเดœเต‹เดฌเต เดธเตเดฑเตเดฑเต‡เดฑเตเดฑเต:
    • present - เดจเดฟเดฒเดตเดฟเดฒเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•
    • absent - เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด•
  • เด•เดฎเดพเตปเดกเต - เดŽเดจเตเดคเต เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดฃเด‚
  • เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ - เดเดคเต เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเดฒเดพเดฃเต เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต (เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเตเดŸเต† เดชเดŸเตเดŸเดฟเด•เดฏเตเด‚ เด…เดตเดฏเตเดŸเต† เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเด‚ เดตเดดเดฟ =)
  • เด‰เดชเดฏเต‡เดพเด•เตเดคเดพเดตเต โ€” เดเดคเต เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเตฝ เดจเดฟเดจเตเดจเดพเดฃเต เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต
  • เดฎเดฟเดจเดฟเดฑเตเดฑเต, เดฎเดฃเดฟเด•เตเด•เต‚เดฐเต, เดชเตเดฐเดตเตƒเดคเตเดคเดฟเดฆเดฟเดจเด‚, เดฎเดพเดธเด‚, เดฎเดพเดธเด‚ เดฆเดฟเดตเดธเด‚ - เดŽเดชเตเดชเต‹เตพ เด•เตเดฐเต‹เตบ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดฃเด‚. เดˆ เด†เดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเตเด•เดณเดฟเตฝ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด•เตเดฐเต‹เดฃเตเดŸเดพเดฌเดฟเตฝ เด…เดคเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ เด‡เดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚ *.

เดชเดชเตเดชเดฑเตเดฑเต 6.0 เตฝ เด•เตเดฐเต‡เดพเตบ เดŽเดจเตเดจเดชเต‹เดฒเต† เดฌเต‹เด•เตเดธเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดคเต puppetserver เตฝ, เด…เดคเดฟเดจเดพเตฝ เดชเตŠเดคเตเดตเดพเดฏ เดธเตˆเดฑเตเดฑเดฟเตฝ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เด‡เดฒเตเดฒ. เดŽเตปเด•เดฟเดฒเตเด‚ เด…เดตเตป เดชเต†เดŸเตเดŸเดฟเดฏเดฟเดฒเตเดฃเตเดŸเต เดชเดชเตเดชเดฑเตเดฑเต-เดเดœเตปเดฑเดฟเตฝ, เด…เดคเดฟเดจเดพเตฝ เด‡เดคเต เดชเตเดฐเดคเตเดฏเต‡เด•เด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ. เด…เดคเดฟเดจเตเดณเตเดณ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเด‚ เดชเดชเตเดชเดฑเตเดฑเดฟเดจเตเดฑเต† เด…เดžเตเดšเดพเดฎเดคเตเดคเต† เดชเดคเดฟเดชเตเดชเดฟเดจเตเดณเตเดณ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเดฟเตฝ, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ GitHub-เตฝ.

เดชเตŠเดคเตเดตเต† เดตเดฟเดญเดตเด™เตเด™เดณเต† เด•เตเดฑเดฟเดšเตเดšเต

เดตเดฟเดญเดต เด…เดฆเตเดตเดฟเดคเต€เดฏเดคเดฏเตเด•เตเด•เตเดณเตเดณ เด†เดตเดถเตเดฏเด•เดคเด•เตพ

เดจเดฎเตเดฎเตพ เดจเต‡เดฐเดฟเดŸเตเดจเตเดจ เดเดฑเตเดฑเดตเตเด‚ เดธเดพเดงเดพเดฐเดฃเดฎเดพเดฏ เดคเต†เดฑเตเดฑเต เดกเตเดฏเต‚เดชเตเดฒเดฟเด•เตเด•เต‡เดฑเตเดฑเต เดชเตเดฐเด–เตเดฏเดพเดชเดจเด‚. เด’เดฐเต‡ เดชเต‡เดฐเดฟเดฒเตเดณเตเดณ เด’เดฐเต‡ เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดฐเดฃเตเดŸเต‹ เด…เดคเดฟเดฒเดงเดฟเด•เดฎเต‹ เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเตฝ เดฆเตƒเดถเตเดฏเดฎเดพเด•เตเดฎเตเดชเต‹เตพ เดˆ เดชเดฟเดถเด•เต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต.

เด…เดคเดฟเดจเดพเตฝ, เดžเดพเตป เดตเต€เดฃเตเดŸเตเด‚ เดŽเดดเตเดคเดพเด‚: เด’เดฐเต‡ เดจเต‹เดกเดฟเดจเตเดณเตเดณ เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเตเด•เดณเดฟเตฝ เด’เดฐเต‡ เดถเต€เตผเดทเด•เดฎเตเดณเตเดณ เด’เดฐเต‡ เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เดฐเตเดคเต!

เดšเดฟเดฒเดชเตเดชเต‹เตพ เด’เดฐเต‡ เดชเต‡เดฐเดฟเตฝ เดชเดพเด•เตเด•เต‡เดœเตเด•เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต, เดŽเดจเตเดจเดพเตฝ เดตเตเดฏเดคเตเดฏเดธเตเดค เดชเดพเด•เตเด•เต‡เดœเต เดฎเดพเดจเต‡เดœเตผเดฎเดพเดฐเตเดฎเดพเดฏเดฟ. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดจเดฟเด™เตเด™เตพ เดชเดฐเดพเดฎเต€เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต nameเดชเดฟเดถเด•เต เด’เดดเดฟเดตเดพเด•เตเด•เดพเตป:

package { 'ruby-mysql':
  ensure   => installed,
  name     => 'mysql',
  provider => 'gem',
}
package { 'python-mysql':
  ensure   => installed,
  name     => 'mysql',
  provider => 'pip',
}

เดกเตเดฏเต‚เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด’เดดเดฟเดตเดพเด•เตเด•เดพเตป เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเดฑเตเดฑเต เด‰เดฑเดตเดฟเดŸ เดคเดฐเด™เตเด™เตพเด•เตเด•เต เดธเดฎเดพเดจเดฎเดพเดฏ เด“เดชเตเดทเดจเตเด•เตพ เด‰เดฃเตเดŸเต - name ัƒ เดธเต‡เดตเดจเด‚, command ัƒ exec, เด‡เดคเตเดฏเดพเดฆเดฟ.

เดฎเต†เดฑเตเดฑเดพเดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ

เด“เดฐเต‹ เดฑเดฟเดธเต‹เดดเตเดธเต เดคเดฐเดคเตเดคเดฟเดจเตเด‚ เด…เดคเดฟเดจเตเดฑเต† เดธเตเดตเดญเดพเดตเด‚ เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เดพเดคเต† เดคเดจเตเดจเต† เดšเดฟเดฒ เดชเตเดฐเดคเตเดฏเต‡เด• เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เด‰เดฃเตเดŸเต.

เดฎเต†เดฑเตเดฑเดพ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเดŸเต† เดชเต‚เตผเดฃเตเดฃ เดฒเดฟเดธเตเดฑเตเดฑเต เดชเดชเตเดชเดฑเตเดฑเต เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเดฟเตฝ.

เดนเตเดฐเดธเตเดต เดชเดŸเตเดŸเดฟเด•:

  • เด†เดตเดถเตเดฏเดฎเตเดฃเตเดŸเต โ€” เดˆ เดชเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดˆ เดตเดฟเดญเดตเด‚ เด†เดถเตเดฐเดฏเดฟเด•เตเด•เตเดจเตเดจ เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเต† เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต.
  • เดฎเตเดฎเตเดชเต - เดˆ เดชเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดˆ เดตเดฟเดญเดตเดคเตเดคเต† เด†เดถเตเดฐเดฏเดฟเด•เตเด•เตเดจเตเดจ เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต.
  • เดธเดฌเตเดธเตเด•เตเดฐเตˆเดฌเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ โ€” เดเดคเต เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเดพเดฃเต เดˆ เด‰เดฑเดตเดฟเดŸเดคเตเดคเดฟเดจเต เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เดˆ เดชเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต.
  • เด…เดฑเดฟเดฏเดฟเด•เตเด•เตเด• โ€” เดˆ เด‰เดฑเดตเดฟเดŸเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจ เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เดˆ เดชเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต.

เดฒเดฟเดธเตโ€Œเดฑเตเดฑเต เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดŽเดฒเตเดฒเดพ เดฎเต†เดฑเตเดฑเดพเดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเด‚ เด’เดฐเตŠเดฑเตเดฑ เดฑเดฟเดธเต‹เดดเตโ€Œเดธเต เดฒเดฟเด™เตเด•เต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดธเตโ€Œเด•เตเดตเดฏเตผ เดฌเตเดฐเดพเด•เตเด•เดฑเตเดฑเดฟเดฒเตเดณเตเดณ เดฒเดฟเด™เตเด•เตเด•เดณเตเดŸเต† เด’เดฐเต เดจเดฟเดฐ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดฒเดฟเด™เตเด•เตเด•เตพ

เดฑเดฟเดธเต‹เดดเตโ€Œเดธเต เดฒเดฟเด™เตเด•เต เดŽเดจเตเดจเดคเต เดฑเดฟเดธเต‹เดดเตโ€Œเดธเดฟเดจเตเดฑเต† เดชเดฐเดพเดฎเตผเดถเด‚ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต. เด†เดถเตเดฐเดฟเดคเดคเตเดตเด‚ เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด…เดต เดชเตเดฐเดงเดพเดจเดฎเดพเดฏเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เดจเดฟเดฒเดตเดฟเดฒเดฟเดฒเตเดฒเดพเดคเตเดค เด’เดฐเต เด‰เดฑเดตเดฟเดŸเด‚ เดชเดฐเดพเดฎเตผเดถเดฟเด•เตเด•เตเดจเตเดจเดคเต เด’เดฐเต เดธเดฎเดพเดนเดพเดฐ เดชเดฟเดถเด•เดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเด•เตเด‚.

เดฒเดฟเด™เตเด•เดฟเดจเตเดฑเต† เดตเดพเด•เตเดฏเด˜เดŸเดจ เด‡เดชเตเดฐเด•เดพเดฐเดฎเดพเดฃเต: เด’เดฐเต เดตเดฒเดฟเดฏ เด…เด•เตเดทเดฐเดฎเตเดณเตเดณ เดฑเดฟเดธเต‹เดดเตโ€Œเดธเต เดคเดฐเด‚ (เดคเดฐเด‚ เดชเต‡เดฐเดฟเตฝ เด‡เดฐเดŸเตเดŸ เด•เต‹เดณเดฃเตเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด•เต‹เดณเดฃเตเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเดฒเตเดณเตเดณ เดชเต‡เดฐเดฟเดจเตเดฑเต† เด“เดฐเต‹ เดญเดพเด—เดตเตเด‚ เดตเดฒเดฟเดฏเด•เตเดทเดฐเดฎเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต), เดคเตเดŸเตผเดจเตเดจเต เดธเตเด•เตเดตเดฏเตผ เดฌเตเดฐเดพเด•เตเด•เดฑเตเดฑเตเด•เดณเดฟเดฒเต† เดฑเดฟเดธเต‹เดดเตโ€Œเดธเต เดจเดพเดฎเด‚ (เดชเต‡เดฐเดฟเดจเตเดฑเต† เด•เต‡เดธเต เดฎเดพเดฑเดฟเดฒเตเดฒ!). เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเตเด•เดณเตŠเดจเตเดจเตเด‚ เด‰เดฃเตเดŸเดพเด•เดฐเตเดคเต; เดŸเตˆเดชเตเดชเต เดชเต‡เดฐเดฟเดจเต เดคเตŠเดŸเตเดŸเตเดชเดฟเดจเตเดจเดพเดฒเต† เดšเดคเตเดฐ เดฌเตเดฐเดพเด•เตเด•เดฑเตเดฑเตเด•เตพ เดŽเดดเตเดคเดชเตเดชเต†เดŸเตเด‚.

เด‰เดฆเดพเดนเดฐเดฃเด‚:

file { '/file1': ensure => present }
file { '/file2':
  ensure => directory,
  before => File['/file1'],
}
file { '/file3': ensure => absent }
File['/file1'] -> File['/file3']

เด†เดถเตเดฐเดฟเดคเดคเตเดตเด™เตเด™เดณเตเด‚ เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เดณเตเด‚

เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เด‡เดตเดฟเดŸเต†.

เดจเต‡เดฐเดคเตเดคเต† เดชเดฑเดžเตเดžเดคเตเดชเต‹เดฒเต†, เดตเดฟเดญเดตเด™เตเด™เตพ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดฒเดณเดฟเดคเดฎเดพเดฏ เด†เดถเตเดฐเดฟเดคเดคเตเดตเด‚ เดŸเตเดฐเดพเตปเดธเดฟเดฑเตเดฑเต€เดตเต เด†เดฃเต. เดตเดดเดฟเดฏเดฟเตฝ, เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ เดšเต‡เตผเด•เตเด•เตเดฎเตเดชเต‹เตพ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด• - เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดšเดพเด•เตเดฐเดฟเด• เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เด‡เดคเต เด’เดฐเต เดธเดฎเดพเดนเดพเดฐ เดชเดฟเดถเด•เดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเด•เตเด‚.

เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ, เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เดŸเตเดฐเดพเตปเดธเดฟเดฑเตเดฑเต€เดตเต เด…เดฒเตเดฒ. เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพเด•เตเด•เต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดจเดฟเดฏเดฎเด™เตเด™เตพ เดฌเดพเดงเด•เดฎเดพเดฃเต:

  • เด‰เดฑเดตเดฟเดŸเดคเตเดคเดฟเดจเต เด’เดฐเต เด…เดฑเดฟเดฏเดฟเดชเตเดชเต เดฒเดญเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เด…เดชเตเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚. เด…เดชเตเดกเต‡เดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดฑเดฟเดธเต‹เดดเตเดธเต เดคเดฐเดคเตเดคเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต - exec เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•, เดธเต‡เดตเดจเด‚ เดธเต‡เดตเดจเด‚ เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต, เดชเดพเด•เตเด•เต‡เดœเต เดชเดพเด•เตเด•เต‡เดœเต เดตเต€เดฃเตเดŸเตเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด‰เดฑเดตเดฟเดŸเดคเตเดคเดฟเดจเต เด’เดฐเต เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดจเดฟเตผเดตเดšเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด’เดจเตเดจเตเด‚ เดธเด‚เดญเดตเดฟเด•เตเด•เดฟเดฒเตเดฒ.
  • เดชเดชเตเดชเดฑเตเดฑเดฟเดจเตเดฑเต† เด’เดฐเต เด“เดŸเตเดŸเดคเตเดคเดฟเดจเดฟเดŸเดฏเดฟเตฝ, เดฑเดฟเดธเต‹เดดเตโ€Œเดธเต เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดคเดตเดฃ เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเดฟเดฒเตเดฒ. เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เดณเดฟเตฝ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เดณเตเด‚ เดกเดฟเดชเตปเดกเตปเดธเดฟ เด—เตเดฐเดพเดซเดฟเตฝ เดธเตˆเด•เตเด•เดฟเดณเตเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒเดพเดคเตเดคเดคเดฟเดจเดพเดฒเตเด‚ เด‡เดคเต เดธเดพเดงเตเดฏเดฎเดพเดฃเต.
  • เดชเดชเตเดชเดฑเตเดฑเต เด’เดฐเต เดตเดฟเดญเดตเดคเตเดคเดฟเดจเตเดฑเต† เด…เดตเดธเตเดฅ เดฎเดพเดฑเตเดฑเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเตเดšเต†เดฏเตโ€Œเดค เดŽเดฒเตเดฒเดพ เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เตเด‚ เดฑเดฟเดธเต‹เดดเตโ€Œเดธเต เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต.
  • เด’เดฐเต เด‰เดฑเดตเดฟเดŸเด‚ เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตโ€Œเดคเดพเตฝ, เด…เดคเต เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเตเดšเต†เดฏเตโ€Œเดค เดŽเดฒเตเดฒเดพ เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เตเด‚ เด…เดคเต เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดจเตเดจเต.

เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดพเดคเตเดค เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดšเดŸเตเดŸเด‚ เดชเต‹เดฒเต†, เดšเดฟเดฒ เดฑเดฟเดธเต‹เดดเตโ€Œเดธเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเดฟเดจเต เดธเตเดฅเดฟเดฐ เดฎเต‚เดฒเตเดฏเด‚ เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดˆ เดชเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเดฟเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดจเต‹เดกเดฟเดฒเต† เด…เดจเตเดฌเดจเตเดง เด‰เดฑเดตเดฟเดŸเดคเตเดคเดฟเดจเดพเดฏเดฟ เดชเดชเตเดชเดฑเตเดฑเต เดˆ เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟ เดฎเดพเดฑเตเดฑเดฟเดฒเตเดฒ. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เด’เดฐเต เดฑเดฟเดธเต‹เดดเตเดธเต เด†เดฃเต†เด™เตเด•เดฟเตฝ เดซเดฏเดฒเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒ owner, เด…เดชเตเดชเต‹เตพ เดชเดชเตเดชเดฑเตเดฑเต เด…เดจเตเดฌเดจเตเดง เดซเดฏเดฒเดฟเดจเตเดฑเต† เด‰เดŸเดฎเดฏเต† เดฎเดพเดฑเตเดฑเดฟเดฒเตเดฒ.

เด•เตเดฒเดพเดธเตเด•เตพ, เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ, เดจเดฟเตผเดตเดšเดจเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดตเดฏเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด†เดฎเตเด–เด‚

เดจเดฎเตเด•เตเด•เต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเดฑเต† เด’เดฐเต‡ เดญเดพเด—เดฎเตเดณเตเดณ เดจเดฟเดฐเดตเดงเดฟ เดจเต‹เดกเตเด•เตพ เด‰เดฃเตเดŸเต†เดจเตเดจเต เด•เดฐเตเดคเตเด•, เดชเด•เตเดทเต‡ เดตเตเดฏเดคเตเดฏเดพเดธเด™เตเด™เดณเตเด‚ เด‰เดฃเตเดŸเต - เด…เดฒเตเดฒเดพเดคเตเดคเดชเด•เตเดทเด‚ เดจเดฎเตเด•เตเด•เต เดŽเดฒเตเดฒเดพเด‚ เด’เดฐเต เดฌเตเดฒเต‹เด•เตเด•เดฟเตฝ เดตเดฟเดตเดฐเดฟเด•เตเด•เดพเด‚. 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 เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเตป เดˆ เด•เตเดฒเดพเดธเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚.

เด…เดคเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต.

เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•: เดชเดชเตเดชเดฑเตเดฑเดฟเดฒเต† เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดฎเดพเดฑเตเดฑเดฎเดฟเดฒเตเดฒเดพเดคเตเดคเดตเดฏเดพเดฃเต!

เด•เต‚เดŸเดพเดคเต†, เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดชเตเดฐเด–เตเดฏเดพเดชเดฟเดšเตเดšเดคเดฟเดจเต เดถเต‡เดทเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เด†เด•เตเดธเดธเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเต‚, เด…เดฒเตเดฒเดพเดคเตเดคเดชเด•เตเดทเด‚ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ 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 เด‰เดณเตเดณ เดชเดพเด•เตเด•เต‡เดœเดฟเดจเตเดฑเต† เดชเต‡เดฐเดพเดฃเต (เดกเต†เดฌเดฟเดฏเดจเดฟเตฝ, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดชเดพเด•เตเด•เต‡เดœเตเด•เดณเตเดฃเตเดŸเต. 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',   # ะทะฐะดะฐั‘ะผ ะฟะฐั€ะฐะผะตั‚ั€ั‹ ะบะปะฐััะฐ ั‚ะพั‡ะฝะพ ั‚ะฐะบ ะถะต, ะบะฐะบ ะฟะฐั€ะฐะผะตั‚ั€ั‹ ะดะปั ะดั€ัƒะณะธั… ั€ะตััƒั€ัะพะฒ
  }
}

เดชเดชเตเดชเดฑเตเดฑเดฟเตฝ, เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดŸเตˆเดชเตเดชเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด•เดดเดฟเด•เตเด•เตเด• เดจเดฟเดฐเดตเดงเดฟ เดกเดพเดฑเตเดฑ เดคเดฐเด™เตเด™เตพ. เด•เตเดฒเดพเดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เตเด‚ เดจเดฟเตผเดตเดšเดจเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เตเด‚ เด•เตˆเดฎเดพเดฑเดฟเดฏ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดธเดพเดงเต‚เด•เดฐเดฟเด•เตเด•เดพเตป เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดกเดพเดฑเตเดฑ เดคเดฐเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เดชเดพเดธเดพเด•เตเด•เดฟเดฏ เดชเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดคเดฐเดตเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด’เดฐเต เด•เด‚เดชเตˆเดฒเต‡เดทเตป เดชเดฟเดถเด•เต เดธเด‚เดญเดตเดฟเด•เตเด•เตเด‚.

เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดชเต‡เดฐเดฟเดจเต เดคเตŠเดŸเตเดŸเตเดฎเตเดฎเตเดชเต เดคเดฐเด‚ เดŽเดดเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต:

class example (
  String $param1,
  Integer $param2,
  Array $param3,
  Hash $param4,
  Hash[String, String] $param5,
) {
  ...
}

เด•เตเดฒเดพเดธเตเด•เตพ: เด•เตเดฒเดพเดธเต เดจเดพเดฎเดตเตเด‚ เด•เตเดฒเดพเดธเต{'เด•เตเดฒเดพเดธเตโ€Œเดจเต†เดฏเดฟเด‚':} เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต

เด“เดฐเต‹ เด•เตเดฒเดพเดธเตเด‚ เด“เดฐเต‹ เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดตเดฟเดญเดตเดฎเดพเดฃเต เด•เตเดฒเดพเดธเต. เดฎเดฑเตเดฑเต‡เดคเตŠเดฐเต เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดฑเดฟเดธเต‹เดดเตเดธเต เดชเต‹เดฒเต†, เด’เดฐเต‡ เดจเต‹เดกเดฟเตฝ เด’เดฐเต‡ เด•เตเดฒเดพเดธเดฟเดจเตเดฑเต† เดฐเดฃเตเดŸเต เดธเดจเตเดฆเตผเดญเด™เตเด™เตพ เด‰เดฃเตเดŸเดพเด•เดฐเตเดคเต.

เด’เดฐเต‡ เดจเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เดฐเดฃเตเดŸเต เดคเดตเดฃ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เด•เตเดฒเดพเดธเต เดšเต‡เตผเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพ เดถเตเดฐเดฎเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ class { 'classname':} (เดตเตเดฏเดคเตเดฏเดพเดธเดฎเดฟเดฒเตเดฒ, เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเต‹ เดธเดฎเดพเดจเดฎเต‹ เด†เดฏ เดชเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเต‹เดŸเต†), เด’เดฐเต เด•เด‚เดชเตˆเดฒเต‡เดทเตป เดชเดฟเดถเด•เต เด‰เดฃเตเดŸเดพเด•เตเด‚. เดŽเดจเตเดจเดพเตฝ เดจเดฟเด™เตเด™เตพ เดฑเดฟเดธเต‹เดดเตเดธเต เดถเตˆเดฒเดฟเดฏเดฟเตฝ เด’เดฐเต เด•เตเดฒเดพเดธเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‰เดŸเตป เดคเดจเตเดจเต† เด…เดคเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเด‚ เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเดฟเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ เดธเดœเตเดœเดฎเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚.

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดจเดฟเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ include, เด…เดชเตเดชเต‹เตพ เด•เตเดฒเดพเดธเต เดŽเดคเตเดฐ เดคเดตเดฃ เดตเต‡เดฃเดฎเต†เด™เตเด•เดฟเดฒเตเด‚ เดšเต‡เตผเด•เตเด•เดพเด‚. เดŽเดจเตเดจเดคเดพเดฃเต เดตเดธเตเดคเตเดค include เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เด•เตเดฒเดพเดธเต เดšเต‡เตผเดคเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต‹ เดŽเดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต idempotent เดซเด‚เด—เตโ€Œเดทเตป เด†เดฃเต. เด•เตเดฒเดพเดธเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเตฝ เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต, เด…เดคเต เด‡เดคเดฟเดจเด•เด‚ เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เด’เดจเตเดจเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ. เดŽเดจเตเดจเดพเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ include เด•เตเดฒเดพเดธเต เดกเดฟเด•เตเดฒเดฑเต‡เดทเตป เดธเดฎเดฏเดคเตเดคเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เตเดฒเดพเดธเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดธเดœเตเดœเดฎเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ - เด†เดตเดถเตเดฏเดฎเดพเดฏ เดŽเดฒเตเดฒเดพ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเด‚ เด’เดฐเต เดฌเดพเดนเตเดฏ เดกเดพเดฑเตเดฑ เด‰เดฑเดตเดฟเดŸเดคเตเดคเดฟเตฝ เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เดฃเด‚ - Hiera เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ ENC. เด…เดŸเตเดคเตเดค เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดจเดพเด‚ เด…เดตเดฐเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเด‚.

เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจเต

เดฎเตเดฎเตเดชเดคเตเดคเต† เดฌเตเดฒเต‹เด•เตเด•เดฟเตฝ เดชเดฑเดžเตเดžเดคเตเดชเต‹เดฒเต†, เด’เดฐเต‡ เด•เตเดฒเดพเดธเต เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดคเดตเดฃ เด’เดฐเต เดจเต‹เดกเดฟเตฝ เด‰เดฃเตเดŸเดพเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดšเดฟเดฒ เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเดฟเตฝ เด’เดฐเต‡ เดจเต‹เดกเดฟเตฝ เดตเตเดฏเดคเตเดฏเดธเตเดค เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเดณเตเดณ เด’เดฐเต‡ เดฌเตเดฒเต‹เด•เตเด•เต เด•เต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดดเดฟเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดฎเดฑเตเดฑเตŠเดฐเต เดตเดฟเดงเดคเตเดคเดฟเตฝ เดชเดฑเดžเตเดžเดพเตฝ, เดธเตเดตเดจเตเดคเดฎเดพเดฏเดฟ เด’เดฐเต เดฑเดฟเดธเต‹เดดเตเดธเต เดคเดฐเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต.

เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, PHP เดฎเตŠเดกเตเดฏเต‚เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ, Avito-เดฏเดฟเตฝ เดžเด™เตเด™เตพ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เดšเต†เดฏเตเดฏเตเดจเตเดจเต:

  1. เดˆ เดฎเตŠเดกเตเดฏเต‚เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเดพเด•เตเด•เต‡เดœเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•.
  2. เดˆ เดฎเตŠเดกเตเดฏเต‚เดณเดฟเดจเดพเดฏเดฟ เดจเดฎเตเด•เตเด•เต เด’เดฐเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเตฝ เด‰เดฃเตเดŸเดพเด•เตเด•เดพเด‚.
  3. php-fpm-เดจเตเดณเตเดณ เด•เต‹เตบเดซเดฟเด—เดฑเดฟเดฒเต‡เด•เตเด•เต เดžเด™เตเด™เตพ เด’เดฐเต เดธเดฟเด‚เดฒเดฟเด™เตเด•เต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต.
  4. 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, เดŽเดจเตเดจเดพเตฝ เดžเดพเตป เด…เดคเดฟเดจเต† เด•เตเดฑเดฟเดšเตเดšเต เด…เดŸเตเดคเตเดค เดŽเดชเตเดชเดฟเดธเต‹เดกเดฟเตฝ เดชเดฑเดฏเดพเด‚.

เด•เตเดฒเดพเดธเตเด•เตพเด•เตเด•เตเด‚ เดจเดฟเตผเดตเดšเดจเด™เตเด™เตพเด•เตเด•เตเดฎเตเดณเตเดณ เด†เดถเตเดฐเดฟเดคเดคเตเดตเด™เตเด™เดณเตเด‚ เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เดณเตเด‚

เด•เตเดฒเดพเดธเตเด•เดณเตเด‚ เดจเดฟเตผเดตเดšเดจเด™เตเด™เดณเตเด‚ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เดณเตเด‚ เด…เดฑเดฟเดฏเดฟเดชเตเดชเตเด•เดณเตเด‚ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดจเดฟเดฏเดฎเด™เตเด™เตพ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต:

  • เด’เดฐเต เด•เตเดฒเดพเดธเตเดธเดฟเดฒเต† เด†เดถเตเดฐเดฟเดคเดคเตเดตเด‚/ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจเดคเต เด•เตเดฒเดพเดธเตเดธเดฟเดจเตเดฑเต†/ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจ เดŽเดฒเตเดฒเดพ เดตเดฟเดญเดตเด™เตเด™เดณเดฟเดฒเตเด‚ เด†เดถเตเดฐเดฟเดคเดคเตเดตเด‚ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต;
  • เด’เดฐเต เด•เตเดฒเดพเดธเต/เดจเดฟเตผเดตเตเดตเดšเดฟเด•เตเด•เตเดจเตเดจ เด†เดถเตเดฐเดฟเดคเดคเตเดตเด‚ เดŽเดฒเตเดฒเดพ เด•เตเดฒเดพเดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เตเด‚ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต/เดตเดฟเดญเดตเด™เตเด™เดณเต† เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจเต;
  • เด•เตเดฒเดพเดธเต/เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตฝ เด…เดฑเดฟเดฏเดฟเดชเตเดชเต เด•เตเดฒเดพเดธเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเตเด‚ เด…เดฑเดฟเดฏเดฟเด•เตเด•เตเดจเตเดจเต/เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจเต;
  • class/define subscription เด•เตเดฒเดพเดธเตเดธเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เตเด‚ เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเตเดšเต†เดฏเตเดฏเตเดจเตเดจเต/เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจเต.

เดธเต‹เดชเดพเดงเดฟเด• เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เดณเตเด‚ เดธเต†เดฒเด•เตเดŸเตผเดฎเดพเดฐเตเด‚

เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เด‡เดตเดฟเดŸเต†.

if

เด‡เดคเต เด‡เดตเดฟเดŸเต† เดฒเดณเดฟเดคเดฎเดพเดฃเต:

if ะ’ะซะ ะะ–ะ•ะะ˜ะ•1 {
  ...
} elsif ะ’ะซะ ะะ–ะ•ะะ˜ะ•2 {
  ...
} else {
  ...
}

เด…เดฒเตเดฒเดพเดคเต†

เด’เดฐเต if in reverse เด†เดฃเต†เด™เตเด•เดฟเตฝ: เดŽเด•เตเดธเตเดชเตเดฐเดทเตป เดคเต†เดฑเตเดฑเดพเดฃเต†เด™เตเด•เดฟเตฝ เด•เต‹เดกเดฟเดจเตเดฑเต† เดฌเตเดฒเต‹เด•เตเด•เต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเด‚.

unless ะ’ะซะ ะะ–ะ•ะะ˜ะ• {
  ...
}

เด•เต‡เดธเต

เด‡เดตเดฟเดŸเต†เดฏเตเด‚ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เด’เดจเตเดจเตเด‚ เดคเดจเตเดจเต†เดฏเดฟเดฒเตเดฒ. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเดพเดงเดพเดฐเดฃ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ (เดธเตเดŸเตเดฐเดฟเด‚เด—เตเด•เตพ, เดจเดฎเตเดชเดฑเตเด•เตพ เดฎเตเดคเดฒเดพเดฏเดต), เดธเดพเดงเดพเดฐเดฃ เดŽเด•เตเดธเตเดชเตเดฐเดทเดจเตเด•เตพ, เดกเดพเดฑเตเดฑ เดคเดฐเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดต เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚.

case ะ’ะซะ ะะ–ะ•ะะ˜ะ• {
  ะ—ะะะงะ•ะะ˜ะ•1: { ... }
  ะ—ะะะงะ•ะะ˜ะ•2, ะ—ะะะงะ•ะะ˜ะ•3: { ... }
  default: { ... }
}

เดธเต†เดฒเด•เตเดŸเตผเดฎเดพเตผ

เด’เดฐเต เดธเต†เดฒเด•เตเดŸเตผ เดŽเดจเตเดจเดคเต เดธเดฎเดพเดจเดฎเดพเดฏ เด’เดฐเต เดญเดพเดทเดพ เดจเดฟเตผเดฎเตเดฎเดพเดฃเดฎเดพเดฃเต case, เดŽเดจเตเดจเดพเตฝ เด’เดฐเต เดฌเตเดฒเต‹เด•เตเด•เต เด•เต‹เดกเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดชเด•เดฐเด‚, เด…เดคเต เด’เดฐเต เดฎเต‚เดฒเตเดฏเด‚ เดจเตฝเด•เตเดจเตเดจเต.

$var = $othervar ? { 'val1' => 1, 'val2' => 2, default => 3 }

เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ

เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดšเต†เดฑเตเดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด…เดคเต เด’เดฐเต เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเดฟเตฝ เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดธเต‚เด•เตเดทเดฟเด•เตเด•เดพเดจเดพเด•เตเด‚. เดŽเดจเตเดจเดพเตฝ เดžเด™เตเด™เตพ เดตเดฟเดตเดฐเดฟเด•เตเด•เตเดจเตเดจ เด•เต‚เดŸเตเดคเตฝ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเด•เตพ, เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเดฟเตฝ เด•เต‚เดŸเตเดคเตฝ เด•เตเดฒเดพเดธเตเด•เดณเตเด‚ เดจเต‹เดกเตเด•เดณเตเด‚ เด‰เดฃเตเดŸเต, เด…เดคเต เดตเดณเดฐเตเดจเตเดจเต, เด’เดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด‡เดคเต เด…เดธเต—เด•เดฐเตเดฏเดฎเดพเด•เตเด‚.

เด•เต‚เดŸเดพเดคเต†, เด•เต‹เดกเต เดชเตเดจเดฐเตเดชเดฏเต‹เด—เดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดฐเดถเตเดจเดฎเตเดฃเตเดŸเต - เดŽเดฒเตเดฒเดพ เด•เต‹เดกเตเด•เดณเตเด‚ เด’เดฐเต เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเดฟเตฝ เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดˆ เด•เต‹เดกเต เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฐเตเดฎเดพเดฏเดฟ เดชเด™เตเด•เดฟเดŸเตเดจเตเดจเดคเต เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเดพเดฃเต. เดˆ เดฐเดฃเตเดŸเต เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เตพ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดชเดชเตเดชเดฑเตเดฑเดฟเดจเต เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ เดŽเดจเตเดจเตŠเดฐเต เดธเตเดฅเดพเดชเดจเดฎเตเดฃเตเดŸเต.

เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ - เด‡เดต เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเตฝ เดธเตเดฅเดพเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด•เตเดฒเดพเดธเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดจเดฟเตผเดตเดšเดจเด™เตเด™เดณเตเดŸเต†เดฏเตเด‚ เดฎเดฑเตเดฑเต เดชเดชเตเดชเดฑเตเดฑเต เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟเด•เดณเตเดŸเต†เดฏเตเด‚ เดธเต†เดฑเตเดฑเตเด•เดณเดพเดฃเต. เดฎเดฑเตเดฑเตŠเดฐเต เดตเดฟเดงเดคเตเดคเดฟเตฝ เดชเดฑเดžเตเดžเดพเตฝ, เด’เดฐเต เดฎเตŠเดกเตเดฏเต‚เตพ เดชเดชเตเดชเดฑเตเดฑเต เดฒเต‹เดœเดฟเด•เตเด•เดฟเดจเตเดฑเต† เด’เดฐเต เดธเตเดตเดคเดจเตเดคเตเดฐ เดญเดพเด—เดฎเดพเดฃเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, nginx-เดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เดฎเตŠเดกเตเดฏเต‚เตพ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚, เด…เดคเดฟเตฝ nginx-เดจเตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด†เดตเดถเตเดฏเดฎเดพเดฏเดคเตเด‚ เดฎเดพเดคเตเดฐเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ PHP-เดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เดฎเตŠเดกเตเดฏเต‚เตพ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚, เดฎเตเดคเดฒเดพเดฏเดต.

เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ เดชเดคเดฟเดชเตเดชเดพเดฃเต, เด•เต‚เดŸเดพเดคเต† เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเตเดŸเต† เดชเดฐเดธเตเดชเดฐ เด†เดถเตเดฐเดฏเดคเตเดตเดตเตเด‚ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต. เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเตเดŸเต† เด’เดฐเต เดคเตเดฑเดจเตเดจ เดถเต‡เด–เดฐเด‚ เด‰เดฃเตเดŸเต - เดชเดชเตเดชเดฑเตเดฑเต เดซเต‹เตผเดœเต.

เดชเดชเตเดชเดฑเตเดฑเต เดธเต†เตผเดตเดฑเดฟเตฝ, เดฑเต‚เดŸเตเดŸเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเตเดŸเต† เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเตเดŸเต† เด‰เดชเดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดฟเดฒเดพเดฃเต เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ เดธเตเดฅเดฟเดคเดฟ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต. เด“เดฐเต‹ เดฎเตŠเดกเตเดฏเต‚เดณเดฟเดจเตเดณเตเดณเดฟเดฒเตเด‚ เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เดธเตเด•เต€เด‚ เด‰เดฃเตเดŸเต - เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเตเด•เตพ, เดซเดฏเดฒเตเด•เตพ, เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเตเด•เตพ, เดฒเดฟเดฌเต เดคเตเดŸเด™เตเด™เดฟเดฏเดต.

เด’เดฐเต เดฎเตŠเดกเตเดฏเต‚เดณเดฟเดฒเต† เดซเดฏเตฝ เด˜เดŸเดจ

เดฎเตŠเดกเตเดฏเต‚เดณเดฟเดจเตเดฑเต† เดฑเต‚เดŸเตเดŸเดฟเตฝ เดตเดฟเดตเดฐเดฃเดพเดคเตเดฎเด• เดชเต‡เดฐเตเด•เดณเตเดณเตเดณ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚:

  • manifests - เด…เดคเดฟเตฝ เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเต‹เด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต
  • files - เด…เดคเดฟเตฝ เดซเดฏเดฒเตเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต
  • templates - เด…เดคเดฟเตฝ เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเตเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต
  • lib - เด…เดคเดฟเตฝ เดฑเต‚เดฌเดฟ เด•เต‹เดกเต เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต

เด‡เดคเต เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเด•เดณเตเดŸเต†เดฏเตเด‚ เดซเดฏเดฒเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดชเดŸเตเดŸเดฟเด•เดฏเดฒเตเดฒ, เดŽเดจเตเดจเดพเตฝ เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเดจเต เด‡เดชเตเดชเต‹เตพ เด‡เดคเต เดฎเดคเดฟเดฏเดพเด•เตเด‚.

เดฎเตŠเดกเตเดฏเต‚เดณเดฟเดฒเต† เดตเดฟเดญเดตเด™เตเด™เดณเตเดŸเต† เดชเต‡เดฐเตเด•เดณเตเด‚ เดซเดฏเดฒเตเด•เดณเตเดŸเต† เดชเต‡เดฐเตเด•เดณเตเด‚

เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เด‡เดตเดฟเดŸเต†.

เด’เดฐเต เดฎเตŠเดกเตเดฏเต‚เดณเดฟเดฒเต† เดตเดฟเดญเดตเด™เตเด™เตพ (เด•เตเดฒเดพเดธเตเดธเตเด•เตพ, เดจเดฟเตผเดตเดšเดจเด™เตเด™เตพ) เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดทเตเดŸเดฎเตเดณเตเดณเดคเต เดชเต‡เดฐเดฟเดŸเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ. เด•เต‚เดŸเดพเดคเต†, เด’เดฐเต เดฑเดฟเดธเต‹เดดเตเดธเดฟเดจเตเดฑเต† เดชเต‡เดฐเตเด‚ เดชเดชเตเดชเดฑเตเดฑเต เด† เดตเดฟเดญเดตเดคเตเดคเดฟเดจเตเดฑเต† เดตเดฟเดตเดฐเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ เดคเดฟเดฐเดฏเตเดจเตเดจ เดซเดฏเดฒเดฟเดจเตเดฑเต† เดชเต‡เดฐเตเด‚ เดคเดฎเตเดฎเดฟเตฝ เดจเต‡เดฐเดฟเดŸเตเดŸเตเดณเตเดณ เด•เดคเตเดคเดฟเดŸเดชเดพเดŸเตเด•เตพ เด‰เดฃเตเดŸเต. เดจเดฟเด™เตเด™เตพ เดชเต‡เดฐเดฟเดŸเตฝ เดจเดฟเดฏเดฎเด™เตเด™เตพ เดฒเด‚เด˜เดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดชเดชเตเดชเดฑเตเดฑเต เดฑเดฟเดธเต‹เดดเตเดธเต เดตเดฟเดตเดฐเดฃเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเตเด•เดฏเดฟเดฒเตเดฒ, เด•เต‚เดŸเดพเดคเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดธเดฎเดพเดนเดพเดฐ เดชเดฟเดถเด•เต เดฒเดญเดฟเด•เตเด•เตเด‚.

เดจเดฟเดฏเดฎเด™เตเด™เตพ เดฒเดณเดฟเดคเดฎเดพเดฃเต:

  • เด’เดฐเต เดฎเตŠเดกเตเดฏเต‚เดณเดฟเดฒเต† เดŽเดฒเตเดฒเดพ เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเตเด‚ เดฎเตŠเดกเตเดฏเต‚เตพ เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเดฟเตฝ เด†เดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚. เดฎเตŠเดกเตเดฏเต‚เตพ เดตเดฟเดณเดฟเดšเตเดšเดพเตฝ 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.

เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเตเด•เตพ

เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเตเด•เตพ เดŽเดจเตเดคเดพเดฃเต†เดจเตเดจเต เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เดฑเดฟเดฏเดพเด‚; เดžเดพเตป เด…เดต เด‡เดตเดฟเดŸเต† เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดตเดฟเดตเดฐเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เดชเด•เตเดทเต† เดžเดพเตป เด…เดคเต เดตเต†เดฑเตเดคเต† เดตเดฟเดŸเตเดจเตเดจเต เดตเดฟเด•เตเด•เดฟเดชเต€เดกเดฟเดฏเดฏเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดฒเดฟเด™เตเด•เต.

เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเตเด•เตพ เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚: เด’เดฐเต เดซเด‚เด—เตเดทเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเดฟเดจเตเดฑเต† เด…เตผเดคเตเดฅเด‚ เดตเดฟเดชเตเดฒเต€เด•เดฐเดฟเด•เตเด•เดพเด‚ template, เด‡เดคเต เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดชเดพเดคเดฏเดฟเดฒเต‚เดŸเต† เด•เดŸเดจเตเดจเตเดชเต‹เด•เตเดจเตเดจเต. เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดตเดฟเดญเดตเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดซเดฏเดฒเต เดชเดฐเดพเดฎเต€เดฑเตเดฑเดฑเดฟเดจเตŠเดชเตเดชเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต content. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด‡เดคเตเดชเต‹เดฒเต†:

file { '/tmp/example': content => template('modulename/templatename.erb')

เดชเดพเดค เด•เดพเดฃเตเด• <modulename>/<filename> เดซเดฏเตฝ เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต <rootdir>/modules/<modulename>/templates/<filename>.

เด•เต‚เดŸเดพเดคเต†, เด’เดฐเต เดซเด‚เด—เตเดทเตป เด‰เดฃเตเดŸเต inline_template โ€” เด‡เดคเต เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเต เดŸเต†เด•เตเดธเตเดฑเตเดฑเต เด‡เตปเดชเตเดŸเตเดŸเดพเดฏเดฟ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดซเดฏเดฒเดฟเดจเตเดฑเต† เดชเต‡เดฐเดฒเตเดฒ.

เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเตเด•เตพเด•เตเด•เตเดณเตเดณเดฟเตฝ, เดจเดฟเดฒเดตเดฟเดฒเต† เดธเตเด•เต‹เดชเตเดชเดฟเดฒเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เดชเดชเตเดชเดฑเตเดฑเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚.

ERB, EPP เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเดฒเตเดณเตเดณ เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเตเด•เดณเต† เดชเดชเตเดชเดฑเตเดฑเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต:

เด‡เด†เตผเดฌเดฟเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดšเตเดฐเตเด•เตเด•เดคเตเดคเดฟเตฝ

เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เด˜เดŸเดจเด•เตพ:

  • <%= ะ’ะซะ ะะ–ะ•ะะ˜ะ• %> - เดชเดฆเดชเตเดฐเดฏเต‹เด—เดคเตเดคเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•
  • <% ะ’ะซะ ะะ–ะ•ะะ˜ะ• %> - เด’เดฐเต เดชเดฆเดชเตเดฐเดฏเต‹เด—เดคเตเดคเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ เด•เดฃเด•เตเด•เดพเด•เตเด•เตเด• (เด…เดคเต เดšเต‡เตผเด•เตเด•เดพเดคเต†). เดธเต‹เดชเดพเดงเดฟเด• เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เดณเตเด‚ (เดŽเด™เตเด•เดฟเตฝ) เดฒเต‚เดชเตเดชเตเด•เดณเตเด‚ (เด“เดฐเต‹เดจเตเดจเตเด‚) เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด‡เดตเดฟเดŸเต† เดชเต‹เด•เตเดจเตเดจเต.
  • <%# ะšะžะœะœะ•ะะขะะ ะ˜ะ™ %>

เด‡เด†เตผเดฌเดฟเดฏเดฟเดฒเต† เดŽเด•เตเดธเตเดชเตเดฐเดทเดจเตเด•เตพ เดฑเต‚เดฌเดฟเดฏเดฟเตฝ เดŽเดดเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต (เด‡เด†เตผเดฌเดฟ เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดŽเด‚เดฌเดกเดกเต เดฑเต‚เดฌเดฟเดฏเดพเดฃเต).

เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เด†เด•เตเดธเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต @ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดจเดพเดฎเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต. เด’เดฐเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดจเดฟเตผเดฎเตเดฎเดพเดฃเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚ เดฆเตƒเดถเตเดฏเดฎเดพเด•เตเดจเตเดจ เด’เดฐเต เดฒเตˆเตป เดฌเตเดฐเต‡เด•เตเด•เต เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ เด’เดฐเต เด•เตเดฒเต‹เดธเดฟเด‚เด—เต เดŸเดพเด—เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต -%>.

เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด‰เดฆเดพเดนเดฐเดฃเด‚

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 -%>

เดตเดธเตเดคเตเดคเด•เดณเตเด‚ เดฌเดฟเตฝเดฑเตเดฑเต-เด‡เตป เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเตเด‚

เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเดฑเต† เดชเตเดฐเดคเตเดฏเต‡เด• เดญเดพเด—เด‚ เดจเต‹เดกเดฟเตฝ เด‡เดชเตเดชเต‹เตพ เดŽเดจเตเดคเดพเดฃเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเดจเตเดจเดคเดฟเดจเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดกเต†เดฌเดฟเดฏเตป เดฑเดฟเดฒเต€เดธเต เดŽเดจเตเดคเดพเดฃเต†เดจเตเดจเดคเดฟเดจเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเต, เดจเดฟเด™เตเด™เตพ เดชเดพเด•เตเด•เต‡เดœเดฟเดจเตเดฑเต† เด’เดจเตเดจเต‹ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเดฑเตเดฑเตŠเดฐเต เดชเดคเดฟเดชเตเดชเต‹ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต†เดฒเตเดฒเดพเด‚ เดธเตเดตเดฎเต‡เดงเดฏเดพ เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เดจเต‹เดกเตเด•เตพ เดฎเดพเดฑเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ เดฑเต€เดฑเตˆเดฑเตเดฑเดฟเด‚เด—เต เดชเตเดฐเด•เดŸเดฎเดพเด•เตเด‚. เดŽเดจเตเดจเดพเตฝ เด‡เดคเต เด—เตเดฐเตเดคเดฐเดฎเดพเดฏ เด’เดฐเต เดธเดฎเต€เดชเดจเดฎเดฒเตเดฒ; เด“เดŸเตเดŸเต‹เดฎเต‡เดทเตป เดตเดณเดฐเต† เดฎเดฟเด•เดšเตเดšเดคเดพเดฃเต.

เดจเต‹เดกเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดชเดชเตเดชเดฑเตเดฑเดฟเดจเต เดตเดธเตเดคเตเดคเด•เตพ เดŽเดจเตเดจเตŠเดฐเต เดธเด‚เดตเดฟเดงเดพเดจเด‚ เด‰เดฃเตเดŸเต. เดตเดธเตเดคเตเดคเด•เตพ - เด‡เดคเต เดจเต‹เดกเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเดฎเดพเดฃเต, เด†เด—เต‹เดณ เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเดฒเต† เดธเดพเดงเดพเดฐเดฃ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเตเดŸเต† เดฐเต‚เดชเดคเตเดคเดฟเตฝ เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเตเด•เดณเดฟเตฝ เดฒเดญเตเดฏเดฎเดพเดฃเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดนเต‹เดธเตเดฑเตเดฑเต เดจเดพเดฎเด‚, เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดชเดคเดฟเดชเตเดชเต, เดชเตเดฐเต‹เดธเดธเตผ เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเตผ, เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต† เดฒเดฟเดธเตเดฑเตเดฑเต, เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด‡เดจเตเดฑเตผเดซเต‡เดธเตเด•เดณเตเดŸเต†เดฏเตเด‚ เด…เดตเดฏเตเดŸเต† เดตเดฟเดฒเดพเดธเด™เตเด™เดณเตเดŸเต†เดฏเตเด‚ เดชเดŸเตเดŸเดฟเด•, เด•เต‚เดŸเดพเดคเต† เดฎเดฑเตเดฑเต เดชเดฒเดคเตเด‚. เดตเดธเตโ€Œเดคเตเดคเด•เตพ เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเตเด•เดณเดฟเดฒเตเด‚ เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเตเด•เดณเดฟเดฒเตเด‚ เดธเดพเดงเดพเดฐเดฃ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเดพเดฏเดฟ เดฒเดญเตเดฏเดฎเดพเดฃเต.

เดตเดธเตเดคเตเดคเด•เดณเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚:

notify { "Running OS ${facts['os']['name']} version ${facts['os']['release']['full']}": }
# ั€ะตััƒั€ั ั‚ะธะฟะฐ notify ะฟั€ะพัั‚ะพ ะฒั‹ะฒะพะดะธั‚ ัะพะพะฑั‰ะตะฝะธะต ะฒ ะปะพะณ

เด”เดชเดšเดพเดฐเดฟเด•เดฎเดพเดฏเดฟ เดชเดฑเดžเตเดžเดพเตฝ, เด’เดฐเต เดตเดธเตเดคเตเดคเดฏเตเด•เตเด•เต เด’เดฐเต เดชเต‡เดฐเตเด‚ (เดธเตเดŸเตเดฐเดฟเด‚เด—เต) เด’เดฐเต เดฎเต‚เดฒเตเดฏเดตเตเดฎเตเดฃเตเดŸเต (เดตเดฟเดตเดฟเดง เดคเดฐเด™เตเด™เตพ เดฒเดญเตเดฏเดฎเดพเดฃเต: เดธเตเดŸเตเดฐเดฟเด‚เด—เตเด•เตพ, เด…เดฑเต‡เด•เตพ, เดจเดฟเด˜เดฃเตเดŸเตเด•เตเด•เตพ). เด•เดดเดฟเด•เตเด•เตเด• เด…เดจเตเดคเตผเดจเดฟเตผเดฎเตเดฎเดฟเดค เดตเดธเตเดคเตเดคเด•เดณเตเดŸเต† เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเตเดตเดจเตเดคเดฎเดพเดฏเดฟ เดŽเดดเตเดคเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚. เดตเดธเตเดคเตเดค เดถเต‡เด–เดฐเดฟเด•เตเด•เตเดจเตเดจเดตเตผ เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดฑเต‚เดฌเดฟเดฏเดฟเดฒเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดชเต‹เดฒเต†เด’เดจเตเดจเตเด•เดฟเตฝ เดชเต‹เดฒเต† เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเตพ เดซเดฏเดฒเตเด•เตพ. เดตเดธเตเดคเตเดคเด•เดณเตเด‚ เดซเต‹เดฎเดฟเตฝ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเด•เตเด•เดพเด‚ เดกเดพเดฑเตเดฑเดฏเตเดณเตเดณ เดŸเต†เด•เตเดธเตเดฑเตเดฑเต เดซเดฏเดฒเตเด•เตพ เดจเต‹เดกเตเด•เดณเดฟเตฝ.

เด“เดชเตเดชเดฑเต‡เดทเตป เดธเดฎเดฏเดคเตเดคเต, เดชเดชเตเดชเดฑเตเดฑเต เดเดœเดจเตเดฑเต เด†เดฆเตเดฏเด‚ เดฒเดญเตเดฏเดฎเดพเดฏ เดŽเดฒเตเดฒเดพ เดตเดธเตเดคเตเดค เด•เดณเด•เตเดŸเตผเดฎเดพเดฐเต†เดฏเตเด‚ เดชเดพเดชเตเดชเดฑเตเดฑเตเดธเต†เตผเดตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เดชเด•เตผเดคเตเดคเตเดจเตเดจเต, เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เด…เดคเต เด…เดต เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดถเต‡เด–เดฐเดฟเดšเตเดš เดตเดธเตเดคเตเดคเด•เตพ เดธเต†เตผเดตเดฑเดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต; เด‡เดคเดฟเดจเตเดถเต‡เดทเด‚, เดธเต†เตผเดตเตผ เด•เดพเดฑเตเดฑเดฒเต‹เด—เต เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเดพเตป เดคเตเดŸเด™เตเด™เตเดจเตเดจเต.

เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเตพ เดซเดฏเดฒเตเด•เดณเตเดŸเต† เดฐเต‚เดชเดคเตเดคเดฟเดฒเตเดณเตเดณ เดตเดธเตเดคเตเดคเด•เตพ

เด…เดคเตเดคเดฐเด‚ เดตเดธเตเดคเตเดคเด•เตพ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเดฒเต† เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเดฟเตฝ เดธเตเดฅเดพเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต facts.d. เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เดซเดฏเดฒเตเด•เตพ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเตพ เด†เดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚. เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด…เดตเตผ YAML เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เต€=เดฎเต‚เดฒเตเดฏเด‚ เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเตฝ เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเดฒเต‡เด•เตเด•เต เดตเดฟเดตเดฐเด™เตเด™เตพ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดšเต†เดฏเตเดฏเดฃเด‚.

เดจเดฟเด™เตเด™เดณเตเดŸเต† เดฎเตŠเดกเตเดฏเต‚เตพ เดตเดฟเดจเตเดฏเดธเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดชเต‹เดชเตเดชเดฑเตเดฑเต เดธเต†เตผเดตเตผ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจ เดŽเดฒเตเดฒเดพ เดจเต‹เดกเตเด•เตพเด•เตเด•เตเด‚ เดตเดธเตเดคเตเดคเด•เตพ เดฌเดพเดงเด•เดฎเดพเดฃเต†เดจเตเดจ เด•เดพเดฐเตเดฏเด‚ เดฎเดฑเด•เตเด•เดฐเตเดคเต. เด…เดคเดฟเดจเดพเตฝ, เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเตฝ, เดจเดฟเด™เตเด™เดณเตเดŸเต† เดตเดธเตเดคเตเดค เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดŽเดฒเตเดฒเดพ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เดณเตเด‚ เดซเดฏเดฒเตเด•เดณเตเด‚ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เด‰เดฃเตเดŸเต†เดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเตป เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•.

#!/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).

เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเตเดฑเต† เดชเตเดฐเดธเด•เตเดคเดฎเดพเดฏ เดญเดพเด—เด‚ เด‡เดคเดพ.

เดฌเดฟเตฝเดฑเตเดฑเต-เด‡เตป เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ

เดตเดธเตเดคเตเดคเด•เตพเด•เตเด•เต เดชเตเดฑเดฎเต‡, เด‰เดฃเตเดŸเต เดšเดฟเดฒ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ, เด†เด—เต‹เดณ เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเดฟเตฝ เดฒเดญเตเดฏเดฎเดพเดฃเต.

  • เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฏ เดตเดธเตเดคเตเดคเด•เตพ โ€” เด•เตเดฒเดฏเดจเตเดฑเดฟเดจเตเดฑเต† เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดŽเดŸเตเดคเตเดค เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ (เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด’เดฐเต เดชเต‹เดชเตเดชเดฑเตเดฑเต เดธเต†เตผเดตเดฑเดฟเตฝ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต เดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดเดœเดจเตเดฑเดฟเดจเต เด…เดคเดฟเดจเตเดฑเต† เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต เดŽเดŸเตเด•เตเด•เดพเดจเตเด‚ เดฎเดพเดฑเตเดฑเดพเดจเตเด‚ เด•เดดเดฟเดฏเดฟเดฒเตเดฒ, เด…เดคเดฟเดจเดพเตฝ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ "เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฃเต"): เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเดฟเดจเตเดฑเต† เดชเต‡เดฐเต, เดชเต‡เดฐเต เดนเต‹เดธเตเดฑเตเดฑเตเด‚ เดกเตŠเดฎเต†เดฏเตโ€Œเดจเตเด‚, เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด™เตเด™เตพ.
  • เดธเต†เตผเดตเตผ เดตเดธเตเดคเตเดคเด•เตพ -เดธเต†เตผเดตเดฑเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เดณเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ-เดชเดคเดฟเดชเตเดชเต, เดชเต‡เดฐเต, เดธเต†เตผเดตเตผ IP เดตเดฟเดฒเดพเดธเด‚, เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ.
  • เดเดœเดจเตเดฑเต เดตเดธเตเดคเตเดคเด•เตพ - เดชเดชเตเดชเดฑเตเดฑเต-เดเดœเตปเดฑเต เดจเต‡เดฐเดฟเดŸเตเดŸเต เดšเต‡เตผเดคเตเดค เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ, เดซเดพเด•เตเดŸเตผ เดฎเตเด–เต‡เดจเดฏเดฒเตเดฒ - เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเดฟเดจเตเดฑเต† เดชเต‡เดฐเต, เดเดœเดจเตเดฑเต เดชเดคเดฟเดชเตเดชเต, เดชเดชเตเดชเดฑเตเดฑเต เดชเดคเดฟเดชเตเดชเต.
  • เดฎเดพเดธเตเดฑเตเดฑเตผ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ - เดชเดพเดชเตเดชเดฑเตเดฑเตเดฎเดพเดธเตเดฑเตเดฑเตผ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ (sic!). เด‡เดคเต เดเด•เดฆเต‡เดถเด‚ เด‰เดณเตเดณเดคเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฃเต เดธเต†เตผเดตเตผ เดตเดธเตเดคเตเดคเด•เตพ, เด•เต‚เดŸเดพเดคเต† เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดฒเดญเตเดฏเดฎเดพเดฃเต.
  • เด•เดฎเตเดชเตˆเดฒเตผ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ - เด“เดฐเต‹ เดธเตเด•เต‹เดชเตเดชเดฟเดฒเตเด‚ เดตเตเดฏเดคเตเดฏเดพเดธเดฎเตเดณเตเดณ เด•เดฎเตเดชเตˆเดฒเตผ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ: เดจเดฟเดฒเดตเดฟเดฒเต† เดฎเตŠเดกเตเดฏเต‚เดณเดฟเดจเตเดฑเต† เดชเต‡เดฐเตเด‚ เดจเดฟเดฒเดตเดฟเดฒเต† เด’เดฌเตเดœเด•เตเดฑเตเดฑเต เด†เด•เตเดธเดธเต เดšเต†เดฏเตเดค เดฎเตŠเดกเตเดฏเต‚เดณเดฟเดจเตเดฑเต† เดชเต‡เดฐเตเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเด•เดพเดฐเตเดฏ เด•เตเดฒเดพเดธเตเด•เตพ เดฎเดฑเตเดฑเต เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเต‡เดฐเดฟเดŸเตเดŸเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒเต†เดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเตป เด…เดต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚.

เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เตฝ 1: เด‡เดคเต†เดฒเตเดฒเดพเด‚ เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดกเต€เดฌเด—เต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเดพเด‚?

เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดชเดชเตเดชเดฑเตเดฑเต เด•เต‹เดกเดฟเดจเตเดฑเต† เดจเดฟเดฐเดตเดงเดฟ เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดˆ เด•เต‹เดกเต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดฃเดฎเต†เดจเตเดจเต เดžเด™เตเด™เดณเต‹เดŸเต เดชเดฑเดžเตเดžเดฟเดฒเตเดฒ. เดถเดฐเดฟ, เดžเดพเตป เดŽเดจเตเดจเต†เดคเตเดคเดจเตเดจเต† เดคเดฟเดฐเตเดคเตเดคเตเด•เดฏเดพเดฃเต.

เดชเดชเตเดชเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด’เดฐเต เดเดœเดจเตเดฑเต เดฎเดคเดฟเดฏเดพเด•เตเด‚, เดŽเดจเตเดจเดพเตฝ เดฎเดฟเด•เตเด• เด•เต‡เดธเตเด•เดณเดฟเดฒเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดธเต†เตผเดตเดฑเตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต.

เดเดœเดจเตเดฑเต

เด•เตเดฑเดžเตเดžเดคเต เดชเดคเดฟเดชเตเดชเต XNUMX เดฎเตเดคเตฝ, เดชเดชเตเดชเดฑเตเดฑเต-เดเดœเดจเตเดฑเต เดชเดพเด•เตเด•เต‡เดœเตเด•เตพ เด”เดฆเตเดฏเต‹เด—เดฟเด• เดชเดชเตเดชเดฑเตเดฑเตเดฒเดพเดฌเตเดธเต เดถเต‡เด–เดฐเด‚ เดŽเดฒเตเดฒเดพ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เดณเตเด‚ (เดฑเต‚เดฌเดฟเดฏเตเด‚ เด…เดจเตเดฌเดจเตเดง เดฐเดคเตเดจเด™เตเด™เดณเตเด‚) เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเดพเตฝ เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเด•เตพ เด‡เดฒเตเดฒ (เดžเดพเตป เดกเต†เดฌเดฟเดฏเตป เด…เดงเดฟเดทเตโ€Œเด เดฟเดค เดตเดฟเดคเดฐเดฃเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฃเต เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต - เดžเด™เตเด™เตพ RPM เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เดตเดฟเดคเดฐเดฃเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ).

เดเดฑเตเดฑเดตเตเด‚ เดฒเดณเดฟเดคเดฎเดพเดฏ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดชเดชเตเดชเดฑเตเดฑเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดธเต†เตผเดตเตผเดฒเต†เดธเต เดฎเต‹เดกเดฟเตฝ เดเดœเดจเตเดฑเต เดธเดฎเดพเดฐเด‚เดญเดฟเดšเตเดšเดพเตฝ เดฎเดคเดฟ: เดชเดชเตเดชเดฑเตเดฑเต เด•เต‹เดกเต เดจเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เดชเด•เตผเดคเตเดคเดฟเดฏเดพเตฝ, เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด• 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.

เดธเต†เตผเดตเตผ

เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดชเดพเดชเตเดชเดฑเตเดฑเตเดธเต†เตผเดตเดฑเดฟเดจเตเดฑเต† เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดธเดœเตเดœเต€เด•เดฐเดฃเดตเตเด‚ เด•เต‹เดกเต เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเดจเตเดจเดคเตเด‚ เดžเดพเตป เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เดฟเดฒเตเดฒ; เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดธเด‚เด–เตเดฏเดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด…เดงเดฟเด• เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เดธเต†เตผเดตเดฑเดฟเดจเตเดฑเต† เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเดฏ เด’เดฐเต เดชเดคเดฟเดชเตเดชเต เดฌเต‹เด•เตเดธเดฟเดจเต เดชเตเดฑเดคเตเดคเต เด‰เดฃเตเดŸเต†เดจเตเดจเต เดฎเดพเดคเตเดฐเดฎเต‡ เดžเดพเตป เดชเดฑเดฏเต‚. เดจเต‹เดกเตเด•เตพ (เดชเดฑเดฏเตเด•, เดจเต‚เดฑเต เดตเดฐเต†). เดงเดพเดฐเดพเดณเด‚ เดจเต‹เดกเตเด•เตพเด•เตเด•เต เดŸเตเดฏเต‚เดฃเดฟเด‚เด—เต เด†เดตเดถเตเดฏเดฎเดพเดฃเต - เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ, เดชเดชเตเดชเดฑเตเดฑเตเดธเต†เตผเดตเตผ เดจเดพเดฒเต เดคเตŠเดดเดฟเดฒเดพเดณเดฟเด•เดณเดฟเตฝ เด•เต‚เดŸเตเดคเตฝ เดฒเต‹เดžเตเดšเต เดšเต†เดฏเตเดฏเดฟเดฒเตเดฒ, เดฎเดฟเด•เดšเตเดš เดชเตเดฐเด•เดŸเดจเดคเตเดคเดฟเดจเต เดจเดฟเด™เตเด™เตพ เด…เดตเดฐเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เด•เต‚เดŸเดพเดคเต† เดฎเต†เดฎเตเดฎเดฑเดฟ เดชเดฐเดฟเดงเดฟ เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดฎเดฑเด•เตเด•เดฐเตเดคเต, เด…เดฒเตเดฒเดพเดคเตเดคเดชเด•เตเดทเด‚ เดธเต†เตผเดตเตผ เดฎเดฟเด•เตเด• เดธเดฎเดฏเดคเตเดคเตเด‚ เดฎเดพเดฒเดฟเดจเตเดฏเด™เตเด™เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเด‚.

เด•เต‹เดกเต เดตเดฟเดจเตเดฏเดพเดธเด‚ - เดจเดฟเด™เตเด™เตพเด•เตเด•เดคเต เดตเต‡เด—เดคเตเดคเดฟเดฒเตเด‚ เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเดฒเตเด‚ เดตเต‡เดฃเดฎเต†เด™เตเด•เดฟเตฝ, เดจเต‹เด•เตเด•เต‚ (r10k)[https://github.com/puppetlabs/r10k], เดšเต†เดฑเดฟเดฏ เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเดจเตเด•เตพเด•เตเด•เต เด‡เดคเต เดฎเดคเดฟเดฏเดพเด•เตเด‚.

เด…เดจเตเดฌเดจเตเดงเด‚ 2: เด•เต‹เดกเดฟเด‚เด—เต เดฎเดพเตผเด—เตเด—เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ

  1. เด•เตเดฒเดพเดธเตเด•เดณเดฟเดฒเตเด‚ เดจเดฟเตผเดตเดšเดจเด™เตเด™เดณเดฟเดฒเตเด‚ เดŽเดฒเตเดฒเดพ เดฏเตเด•เตเดคเดฟเด•เดณเตเด‚ เดธเตเดฅเดพเดชเดฟเด•เตเด•เตเด•.
  2. เด•เตเดฒเดพเดธเตเด•เดณเตเด‚ เดจเดฟเตผเดตเดšเดจเด™เตเด™เดณเตเด‚ เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเดฟเตฝ เดธเต‚เด•เตเดทเดฟเด•เตเด•เตเด•, เดจเต‹เดกเตเด•เตพ เดตเดฟเดตเดฐเดฟเด•เตเด•เตเดจเตเดจ เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเตเด•เดณเดฟเดฒเดฒเตเดฒ.
  3. เดตเดธเตเดคเตเดคเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•.
  4. เดนเต‹เดธเตเดฑเตเดฑเตเดจเดพเดฎเด™เตเด™เตพ เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ ifs เด‰เดฃเตเดŸเดพเด•เตเด•เดฐเตเดคเต.
  5. เด•เตเดฒเดพเดธเตเด•เตพเด•เตเด•เตเด‚ เดจเดฟเตผเดตเดšเดจเด™เตเด™เตพเด•เตเด•เตเดฎเดพเดฏเดฟ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดšเต‡เตผเด•เตเด•เดพเตป เดฎเดŸเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ - เด‡เดคเต เด•เตเดฒเดพเดธเดฟเดจเตเดฑเต†/เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจ เดฌเต‹เดกเดฟเดฏเดฟเตฝ เดฎเดฑเดžเตเดžเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด…เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เดฏเตเด•เตเดคเดฟเดฏเต‡เด•เตเด•เดพเตพ เดฎเดฟเด•เดšเตเดšเดคเดพเดฃเต.

เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เดžเดพเตป เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต†เดจเตเดจเต เด…เดŸเตเดคเตเดค เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดžเดพเตป เดตเดฟเดถเดฆเต€เด•เดฐเดฟเด•เตเด•เตเด‚.

เดคเต€เดฐเตเดฎเดพเดจเด‚

เด†เดฎเตเด–เดคเตเดคเต‹เดŸเต† เด…เดตเดธเดพเดจเดฟเดชเตเดชเดฟเด•เตเด•เดพเด‚. เด…เดŸเตเดคเตเดค เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ Hiera, ENC, PuppetDB เดŽเดจเตเดจเดฟเดตเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดžเดพเตป เดจเดฟเด™เตเด™เดณเต‹เดŸเต เดชเดฑเดฏเตเด‚.

เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดค เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เต เดฎเดพเดคเตเดฐเดฎเต‡ เดธเตผเดตเต‡เดฏเดฟเตฝ เดชเด™เตเด•เต†เดŸเตเด•เตเด•เดพเตป เด•เดดเดฟเดฏเต‚. เดธเตˆเตป เด‡เตปเดฆเดฏเดตเดพเดฏเดฟ.

เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เด•เต‚เดŸเตเดคเตฝ เดฎเต†เดฑเตเดฑเต€เดฐเดฟเดฏเดฒเตเด•เตพ เด‰เดฃเตเดŸเต - เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดตเดฟเดทเดฏเด™เตเด™เดณเดฟเตฝ เดŽเดจเดฟเด•เตเด•เต เดฒเต‡เด–เดจเด™เตเด™เตพ เดŽเดดเตเดคเดพเตป เด•เดดเดฟเดฏเตเด‚, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเดพเดฏเดฟเด•เตเด•เดพเตป เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดณเตเดณ เด•เดพเดฐเตเดฏเด™เตเด™เดณเดฟเตฝ เดตเต‹เดŸเตเดŸเตเดšเต†เดฏเตเดฏเตเด•:

  • 59,1%เดตเดฟเดชเตเดฒเดฎเดพเดฏ เดชเดชเตเดชเดฑเตเดฑเต เดจเดฟเตผเดฎเตเดฎเดพเดฃเด™เตเด™เตพ - เดšเดฟเดฒ เด…เดŸเตเดคเตเดค เดฒเต†เดตเตฝ เดทเดฟเดฑเตเดฑเต: เดฒเต‚เดชเตเดชเตเด•เตพ, เดฎเดพเดชเตเดชเดฟเด‚เด—เต, เดฎเดฑเตเดฑเต เดฒเดพเด‚เดก เดŽเด•เตโ€Œเดธเตโ€Œเดชเตเดฐเดทเดจเตเด•เตพ, เดฑเดฟเดธเต‹เดดเตโ€Œเดธเต เด•เดณเด•เตเดŸเดฑเตเด•เตพ, เดŽเด•เตโ€Œเดธเตโ€Œเดชเต‹เตผเดŸเตเดŸเต เดšเต†เดฏเตเดค เดฑเดฟเดธเต‹เดดเตโ€Œเดธเตเด•เตพ, เดชเดชเตเดชเดฑเตเดฑเต, เดŸเดพเด—เตเด•เตพ, เดฆเดพเดคเดพเด•เตเด•เตพ, เด…เดฎเต‚เตผเดคเตเดค เดกเดพเดฑเตเดฑ เดคเดฐเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดต เดตเดดเดฟเดฏเตเดณเตเดณ เด‡เดจเตเดฑเตผ-เดนเต‹เดธเตเดฑเตเดฑเต เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด‚.13
  • 31,8%"เดžเดพเตป เดŽเดจเตเดฑเต† เด…เดฎเตเดฎเดฏเตเดŸเต† เด…เดกเตเดฎเดฟเตป เด†เดฃเต" เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ Avito เดฏเดฟเตฝ เดžเด™เตเด™เตพ เดŽเด™เตเด™เดจเต† เดตเตเดฏเดคเตเดฏเดธเตเดค เดชเดคเดฟเดชเตเดชเตเด•เดณเตเดŸเต† เดจเดฟเดฐเดตเดงเดฟ เดชเต‹เดชเตเดชเดฑเตเดฑเต เดธเต†เตผเดตเดฑเตเด•เดณเตเดฎเดพเดฏเดฟ เดšเด™เตเด™เดพเดคเตเดคเด‚ เดธเตเดฅเดพเดชเดฟเดšเตเดšเต, เด•เต‚เดŸเดพเดคเต†, เดคเดคเตเดตเดคเตเดคเดฟเตฝ, เดชเต‹เดชเตเดชเดฑเตเดฑเต เดธเต†เตผเดตเตผ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดญเดพเด—เด‚.7
  • 81,8%เดžเด™เตเด™เตพ เดชเดชเตเดชเดฑเตเดฑเต เด•เต‹เดกเต เดŽเด™เตเด™เดจเต† เดŽเดดเตเดคเตเดจเตเดจเต: เด‡เตปเดธเตเดŸเตเดฐเตเดฎเต†เดจเตเดฑเต‡เดทเตป, เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป, เดŸเต†เดธเตเดฑเตเดฑเดฟเด‚เด—เต, CI/CD.18

22 เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดตเต‹เดŸเตเดŸเต เดšเต†เดฏเตเดคเต. 9 เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดตเดฟเดŸเตเดŸเตเดจเดฟเดจเตเดจเต.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com