แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜ แƒ—แƒแƒฏแƒ˜แƒœแƒแƒจแƒ˜

Puppet แƒแƒ แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ. แƒ˜แƒ’แƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ›แƒแƒกแƒžแƒ˜แƒœแƒซแƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒš แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒแƒจแƒ˜ แƒ›แƒแƒกแƒแƒงแƒ•แƒแƒœแƒแƒ“ แƒ“แƒ แƒแƒ› แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒœแƒแƒ แƒฉแƒฃแƒœแƒ”แƒ‘แƒšแƒแƒ“.

แƒ›แƒ” แƒฃแƒ™แƒ•แƒ” แƒฎแƒฃแƒ— แƒฌแƒ”แƒšแƒ–แƒ” แƒ›แƒ”แƒขแƒ˜แƒ แƒ•แƒ›แƒฃแƒจแƒแƒแƒ‘ Puppet-แƒ—แƒแƒœ. แƒ”แƒก แƒขแƒ”แƒฅแƒกแƒขแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒ˜แƒ—แƒแƒ“ แƒแƒ แƒ˜แƒก แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒžแƒฃแƒœแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒ แƒ’แƒ›แƒœแƒ˜แƒšแƒ˜ แƒ“แƒ แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ“แƒแƒšแƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒแƒชแƒ˜แƒ, แƒ แƒแƒช แƒ“แƒแƒ›แƒฌแƒงแƒ”แƒ‘แƒ—แƒแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ›แƒ˜แƒกแƒชแƒ”แƒ›แƒก แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ’แƒแƒ˜แƒ’แƒแƒœ แƒ—แƒแƒฏแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒกแƒ˜.

แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜ แƒ—แƒแƒฏแƒ˜แƒœแƒแƒจแƒ˜

แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ

Puppet-แƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒแƒ แƒ˜แƒก แƒ™แƒšแƒ˜แƒ”แƒœแƒข-แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜, แƒ—แƒฃแƒ›แƒชแƒ แƒ˜แƒก แƒแƒกแƒ”แƒ•แƒ” แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก แƒฃแƒกแƒ”แƒ แƒ•แƒ”แƒ แƒฃแƒš แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒก แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒฃแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—.

แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก pull แƒ›แƒแƒ“แƒ”แƒšแƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ: แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒแƒ“, แƒงแƒแƒ•แƒ”แƒš แƒœแƒแƒฎแƒ”แƒ•แƒแƒ  แƒกแƒแƒแƒ—แƒจแƒ˜ แƒ”แƒ แƒ—แƒฎแƒ”แƒš แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒ“แƒแƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ˜แƒแƒœ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ แƒ›แƒแƒก. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ˜แƒ— Ansible-แƒ—แƒแƒœ, แƒ›แƒแƒจแƒ˜แƒœ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ push-แƒ›แƒแƒ“แƒ”แƒšแƒก: แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒขแƒแƒ แƒ˜ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒก, แƒ—แƒแƒ•แƒแƒ“ แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒแƒ แƒแƒคแƒ”แƒ แƒก แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ.

แƒฅแƒกแƒ”แƒšแƒฃแƒ แƒ˜ แƒ™แƒแƒ›แƒฃแƒœแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒ แƒแƒก แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒแƒ แƒ›แƒฎแƒ แƒ˜แƒ•แƒ˜ TLS แƒ“แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ: แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒก แƒ“แƒ แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒก แƒแƒฅแƒ•แƒ— แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒžแƒ˜แƒ แƒแƒ“แƒ˜ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒกแƒ”แƒ แƒ—แƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ”แƒ‘แƒ˜. แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ แƒ’แƒแƒกแƒชแƒ”แƒ›แƒก แƒกแƒ”แƒ แƒ—แƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ”แƒ‘แƒก แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒจแƒ˜ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ’แƒแƒ แƒ” CA-แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ.

แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜

แƒ—แƒแƒฏแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒก แƒขแƒ”แƒ แƒ›แƒ˜แƒœแƒแƒšแƒแƒ’แƒ˜แƒแƒจแƒ˜ แƒ›แƒแƒ แƒ˜แƒแƒœแƒ”แƒขแƒฃแƒš แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜ (แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜). แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒ”แƒ‘แƒจแƒ˜ แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ  แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒœแƒแƒ–แƒ” - Puppet DSL.

Puppet DSL แƒแƒ แƒ˜แƒก แƒ“แƒ”แƒ™แƒšแƒแƒ แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒ”แƒœแƒ. แƒ˜แƒ’แƒ˜ แƒแƒฆแƒฌแƒ”แƒ แƒก แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒš แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒแƒก แƒ˜แƒœแƒ“แƒ˜แƒ•แƒ˜แƒ“แƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ”แƒ™แƒšแƒแƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“:

  • แƒคแƒแƒ˜แƒšแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ“แƒ แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜.
  • แƒžแƒแƒ™แƒ”แƒขแƒ˜ แƒ“แƒแƒ›แƒแƒœแƒขแƒแƒŸแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ.
  • แƒ›แƒแƒ›แƒกแƒแƒฎแƒฃแƒ แƒ”แƒ‘แƒ แƒ“แƒแƒ˜แƒฌแƒงแƒ.

แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒ”แƒ แƒ—แƒ›แƒแƒœแƒ”แƒ—แƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜:

  • แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ’แƒแƒ•แƒšแƒ”แƒœแƒแƒก แƒแƒฎแƒ“แƒ”แƒœแƒ”แƒœ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒแƒ‘แƒแƒ–แƒ”.
    แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, โ€žแƒฏแƒ”แƒ  แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ— แƒžแƒแƒ™แƒ”แƒขแƒ˜, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒชแƒ•แƒแƒšแƒ”แƒ— แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ— แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜โ€œ.
  • แƒแƒ แƒ˜แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ - แƒ—แƒฃ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒ, แƒ˜แƒก แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒก แƒ›แƒแƒกแƒ–แƒ” แƒ’แƒแƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒš แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ–แƒ”.
    แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ—แƒฃ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜ แƒ˜แƒชแƒ•แƒšแƒ”แƒ‘แƒ, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ— แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜.

แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, Puppet DSL-แƒก แƒแƒฅแƒ•แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜, แƒแƒกแƒ”แƒ•แƒ” แƒžแƒ˜แƒ แƒแƒ‘แƒ˜แƒ—แƒ˜ แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒกแƒ”แƒšแƒ”แƒฅแƒขแƒแƒ แƒ”แƒ‘แƒ˜. แƒแƒกแƒ”แƒ•แƒ” แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒจแƒแƒ‘แƒšแƒแƒœแƒ˜แƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ”แƒ‘แƒ˜ - EPP แƒ“แƒ ERB.

แƒ—แƒแƒฏแƒ˜แƒœแƒ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒ แƒฃแƒ‘แƒ˜แƒจแƒ˜, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ แƒ“แƒ แƒขแƒ”แƒ แƒ›แƒ˜แƒœแƒ˜ แƒ˜แƒฅแƒ˜แƒ“แƒแƒœ แƒแƒ แƒ˜แƒก แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜. Ruby แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ’แƒแƒแƒคแƒแƒ แƒ—แƒแƒ•แƒแƒ— Puppet - แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒ แƒ—แƒฃแƒšแƒ˜ แƒšแƒแƒ’แƒ˜แƒ™แƒ, แƒแƒฎแƒแƒšแƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜, แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜.

แƒกแƒแƒœแƒแƒ› Puppet แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก, แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜แƒ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜. แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒแƒ แƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ แƒ“แƒ แƒ›แƒแƒ—แƒ˜ แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒแƒ‘แƒ”แƒ‘แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก, แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒ“แƒ แƒžแƒ˜แƒ แƒแƒ‘แƒ˜แƒ—แƒ˜ แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’.

แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜ แƒ“แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒกแƒขแƒ˜แƒšแƒ˜

แƒแƒฅ แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ“แƒแƒ’แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒแƒ— แƒ’แƒแƒ˜แƒ’แƒแƒ— แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜, แƒ—แƒฃ แƒ›แƒแƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒ˜ แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก:

แƒแƒ˜, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒ˜:

# ะšะพะผะผะตะฝั‚ะฐั€ะธะธ ะฟะธัˆัƒั‚ัั, ะบะฐะบ ะธ ะผะฝะพะณะพ ะณะดะต, ะฟะพัะปะต ั€ะตัˆั‘ั‚ะบะธ.
#
# ะžะฟะธัะฐะฝะธะต ะบะพะฝั„ะธะณัƒั€ะฐั†ะธะธ ะฝะพะดั‹ ะฝะฐั‡ะธะฝะฐะตั‚ัั ั ะบะปัŽั‡ะตะฒะพะณะพ ัะปะพะฒะฐ node,
# ะทะฐ ะบะพั‚ะพั€ั‹ะผ ัะปะตะดัƒะตั‚ ัะตะปะตะบั‚ะพั€ ะฝะพะดั‹ โ€” ั…ะพัั‚ะฝะตะนะผ (ั ะดะพะผะตะฝะพะผ ะธะปะธ ะฑะตะท)
# ะธะปะธ ั€ะตะณัƒะปัั€ะฝะพะต ะฒั‹ั€ะฐะถะตะฝะธะต ะดะปั ั…ะพัั‚ะฝะตะนะผะพะฒ, ะธะปะธ ะบะปัŽั‡ะตะฒะพะต ัะปะพะฒะพ default.
#
# ะŸะพัะปะต ัั‚ะพะณะพ ะฒ ั„ะธะณัƒั€ะฝั‹ั… ัะบะพะฑะบะฐั… ะพะฟะธัั‹ะฒะฐะตั‚ัั ัะพะฑัั‚ะฒะตะฝะฝะพ ะบะพะฝั„ะธะณัƒั€ะฐั†ะธั ะฝะพะดั‹.
#
# ะžะดะฝะฐ ะธ ั‚ะฐ ะถะต ะฝะพะดะฐ ะผะพะถะตั‚ ะฟะพะฟะฐัั‚ัŒ ะฟะพะด ะฝะตัะบะพะปัŒะบะพ ัะตะปะตะบั‚ะพั€ะพะฒ. ะŸั€ะพ ะฟั€ะธะพั€ะธั‚ะตั‚
# ัะตะปะตะบั‚ะพั€ะพะฒ ะฝะฐะฟะธัะฐะฝะพ ะฒ ัั‚ะฐั‚ัŒะต ะฟั€ะพ ัะธะฝั‚ะฐะบัะธั ะพะฟะธัะฐะฝะธั ะฝะพะด.
node 'hostname', 'f.q.d.n', /regexp/ {
  # ะšะพะฝั„ะธะณัƒั€ะฐั†ะธั ะฟะพ ััƒั‚ะธ ัะฒะปัะตั‚ัั ะฟะตั€ะตั‡ะธัะปะตะฝะธะตะผ ั€ะตััƒั€ัะพะฒ ะธ ะธั… ะฟะฐั€ะฐะผะตั‚ั€ะพะฒ.
  #
  # ะฃ ะบะฐะถะดะพะณะพ ั€ะตััƒั€ัะฐ ะตัั‚ัŒ ั‚ะธะฟ ะธ ะฝะฐะทะฒะฐะฝะธะต.
  #
  # ะ’ะฝะธะผะฐะฝะธะต: ะฝะต ะผะพะถะตั‚ ะฑั‹ั‚ัŒ ะดะฒัƒั… ั€ะตััƒั€ัะพะฒ ะพะดะฝะพะณะพ ั‚ะธะฟะฐ ั ะพะดะธะฝะฐะบะพะฒั‹ะผะธ ะฝะฐะทะฒะฐะฝะธัะผะธ!
  #
  # ะžะฟะธัะฐะฝะธะต ั€ะตััƒั€ัะฐ ะฝะฐั‡ะธะฝะฐะตั‚ัั ั ะตะณะพ ั‚ะธะฟะฐ. ะขะธะฟ ะฟะธัˆะตั‚ัั ะฒ ะฝะธะถะฝะตะผ ั€ะตะณะธัั‚ั€ะต.
  # ะŸั€ะพ ั€ะฐะทะฝั‹ะต ั‚ะธะฟั‹ ั€ะตััƒั€ัะพะฒ ะฝะฐะฟะธัะฐะฝะพ ะฝะธะถะต.
  #
  # ะŸะพัะปะต ั‚ะธะฟะฐ ะฒ ั„ะธะณัƒั€ะฝั‹ั… ัะบะพะฑะบะฐั… ะฟะธัˆะตั‚ัั ะฝะฐะทะฒะฐะฝะธะต ั€ะตััƒั€ัะฐ, ะฟะพั‚ะพะผ ะดะฒะพะตั‚ะพั‡ะธะต,
  # ะดะฐะปัŒัˆะต ะธะดั‘ั‚ ะพะฟั†ะธะพะฝะฐะปัŒะฝะพะต ะฟะตั€ะตั‡ะธัะปะตะฝะธะต ะฟะฐั€ะฐะผะตั‚ั€ะพะฒ ั€ะตััƒั€ัะฐ ะธ ะธั… ะทะฝะฐั‡ะตะฝะธะน.
  # ะ—ะฝะฐั‡ะตะฝะธั ะฟะฐั€ะฐะผะตั‚ั€ะพะฒ ัƒะบะฐะทั‹ะฒะฐัŽั‚ัั ั‡ะตั€ะตะท ั‚.ะฝ. hash rocket (=>).
  resource { 'title':
    param1 => value1,
    param2 => value2,
    param3 => value3,
  }
}

แƒจแƒ”แƒฌแƒ”แƒ•แƒ แƒ“แƒ แƒฎแƒแƒ–แƒ˜แƒก แƒฌแƒงแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒ˜แƒก แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ แƒ”แƒ™แƒแƒ›แƒ”แƒœแƒ“แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒขแƒ˜แƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒ. แฒจแƒ”แƒ›แƒแƒฏแƒแƒ›แƒ”แƒ‘แƒ”แƒšแƒ˜:

  • แƒแƒ  แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒแƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒแƒœแƒ˜ แƒจแƒ”แƒฌแƒ”แƒ•แƒ, แƒฉแƒแƒœแƒแƒ แƒ—แƒ”แƒ‘แƒ˜.
  • แƒฎแƒ•แƒ”แƒฃแƒšแƒ˜ แƒ‘แƒ แƒ”แƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜ แƒ’แƒแƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ˜แƒ แƒ˜แƒœแƒขแƒ”แƒ แƒ•แƒแƒšแƒ˜แƒ—; แƒ›แƒกแƒฎแƒ•แƒ˜แƒšแƒ˜ แƒœแƒแƒฌแƒšแƒแƒ•แƒ”แƒ‘แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ แƒ•แƒแƒšแƒ˜แƒ—.
  • แƒ›แƒซแƒ˜แƒ›แƒ”แƒ”แƒ‘แƒ˜ แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ‘แƒแƒšแƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒฉแƒแƒ—แƒ•แƒšแƒ˜แƒ—. แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒชแƒแƒšแƒ™แƒ” แƒฎแƒแƒ–แƒจแƒ˜แƒ. แƒ’แƒแƒ›แƒแƒœแƒแƒ™แƒšแƒ˜แƒกแƒ˜ แƒ™แƒ”แƒ—แƒ“แƒ”แƒ‘แƒ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒ”แƒ แƒ—แƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”: แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒฌแƒ”แƒ แƒแƒ— แƒ”แƒ แƒ— แƒฎแƒแƒ–แƒ–แƒ” แƒ“แƒ แƒ›แƒซแƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ” (แƒ”.แƒ˜. resource { 'title': } ะธ resource { 'title': param => value }).
  • แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ–แƒ” แƒ˜แƒกแƒ แƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ˜แƒ›แƒแƒ•แƒ” แƒ“แƒแƒœแƒ”แƒ–แƒ”.
  • แƒ›แƒแƒ— แƒฌแƒ˜แƒœ แƒ˜แƒฌแƒ”แƒ แƒ”แƒ‘แƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ—แƒแƒœ แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒแƒ‘แƒ˜แƒก แƒ˜แƒกแƒ แƒ”แƒ‘แƒ˜.

แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒ pappetserver-แƒ–แƒ”

แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒแƒฎแƒกแƒœแƒ-แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒ” แƒจแƒ”แƒ›แƒแƒ’แƒ—แƒแƒ•แƒแƒ–แƒ”แƒ‘แƒ— "root directory" แƒ™แƒแƒœแƒชแƒ”แƒคแƒชแƒ˜แƒแƒก. root แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒแƒ แƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก Puppet-แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒก แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

root แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒ Puppet-แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—. แƒ’แƒแƒ แƒ”แƒ›แƒ แƒแƒ แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒ›แƒแƒฃแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒชแƒแƒšแƒ™แƒ”แƒฃแƒš แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜. แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ git-แƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“, แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ’แƒแƒ แƒ”แƒ›แƒ แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ git แƒขแƒแƒขแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ. แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ˜ แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒก แƒแƒ›แƒ แƒ—แƒฃ แƒ˜แƒ› แƒ’แƒแƒ แƒ”แƒ›แƒแƒจแƒ˜. แƒแƒ›แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ—แƒแƒ•แƒแƒ“ แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ”, แƒแƒœ ENC-แƒจแƒ˜, แƒ แƒแƒ–แƒ”แƒช แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘.

  • แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒจแƒ˜ ("แƒซแƒ•แƒ”แƒšแƒ˜ แƒ—แƒแƒฏแƒ˜แƒœแƒ") แƒกแƒแƒ‘แƒแƒ–แƒ˜แƒกแƒ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒ˜แƒงแƒ /etc/puppet. แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒแƒ แƒฉแƒ”แƒ•แƒ˜แƒ—แƒ˜แƒ - แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒ›แƒแƒ— แƒซแƒ•แƒ”แƒš แƒ—แƒแƒฏแƒ˜แƒœแƒแƒกแƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“. แƒ—แƒฃ แƒ’แƒแƒ แƒ”แƒ›แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ /etc/puppet/environments, root แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ. แƒ—แƒฃ แƒ’แƒแƒ แƒ”แƒ›แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜, root แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒกแƒแƒ‘แƒแƒ–แƒ˜แƒกแƒ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ.
  • แƒ›แƒ”แƒแƒ—แƒฎแƒ” แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒ“แƒแƒœ แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒฃแƒšแƒ˜ (โ€žแƒแƒฎแƒแƒšแƒ˜ แƒ—แƒแƒฏแƒ˜แƒœแƒโ€œ) แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ’แƒแƒฎแƒ“แƒ แƒกแƒแƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ แƒ“แƒ แƒกแƒแƒ‘แƒแƒ–แƒ˜แƒกแƒ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ /etc/puppetlabs/code. แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒ’แƒแƒ แƒ”แƒ›แƒ แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ /etc/puppetlabs/code/environments, root แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒแƒ แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ.

root แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒฅแƒ•แƒ”แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ manifests, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒก แƒ”แƒ แƒ— แƒแƒœ แƒ›แƒ”แƒข แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒก. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒฃแƒœแƒ“แƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ“แƒ”แƒก แƒฅแƒ•แƒ”แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ modules, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒก. แƒ แƒ แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜แƒ แƒชแƒแƒขแƒ แƒ›แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒ”แƒขแƒงแƒ•แƒ˜แƒ—. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒซแƒ•แƒ”แƒš แƒ—แƒแƒฏแƒ˜แƒœแƒแƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒก แƒฅแƒ•แƒ”แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒช files, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒ•แƒแƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒ— แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒจแƒ˜. แƒแƒฎแƒแƒš Puppet-แƒจแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒคแƒแƒ˜แƒšแƒ˜ แƒ›แƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒจแƒ˜.

Manifest แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒก แƒแƒฅแƒ•แƒ— แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ .pp.

แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒแƒ‘แƒ แƒซแƒแƒšแƒ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜

แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒแƒกแƒ–แƒ” แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ

แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ” server1.testdomain แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒแƒก แƒคแƒแƒ˜แƒšแƒ˜ /etc/issue แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜แƒ— Debian GNU/Linux n l. แƒคแƒแƒ˜แƒšแƒ˜ แƒฃแƒœแƒ“แƒ แƒ”แƒ™แƒฃแƒ—แƒ•แƒœแƒแƒ“แƒ”แƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒก แƒ“แƒ แƒฏแƒ’แƒฃแƒคแƒก root, แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒฃแƒคแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก 644.

แƒฉแƒ•แƒ”แƒœ แƒ•แƒฌแƒ”แƒ แƒ— แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒก:

node 'server1.testdomain' {   # ะฑะปะพะบ ะบะพะฝั„ะธะณัƒั€ะฐั†ะธะธ, ะพั‚ะฝะพััั‰ะธะนัั ะบ ะฝะพะดะต server1.testdomain
    file { '/etc/issue':   # ะพะฟะธัั‹ะฒะฐะตะผ ั„ะฐะนะป /etc/issue
        ensure  => present,   # ัั‚ะพั‚ ั„ะฐะนะป ะดะพะปะถะตะฝ ััƒั‰ะตัั‚ะฒะพะฒะฐั‚ัŒ
        content => 'Debian GNU/Linux n l',   # ัƒ ะฝะตะณะพ ะดะพะปะถะฝะพ ะฑั‹ั‚ัŒ ั‚ะฐะบะพะต ัะพะดะตั€ะถะธะผะพะต
        owner   => root,   # ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัŒ-ะฒะปะฐะดะตะปะตั†
        group   => root,   # ะณั€ัƒะฟะฟะฐ-ะฒะปะฐะดะตะปะตั†
        mode    => '0644',   # ะฟั€ะฐะฒะฐ ะฝะฐ ั„ะฐะนะป. ะžะฝะธ ะทะฐะดะฐะฝั‹ ะฒ ะฒะธะดะต ัั‚ั€ะพะบะธ (ะฒ ะบะฐะฒั‹ั‡ะบะฐั…), ะฟะพั‚ะพะผัƒ ั‡ั‚ะพ ะธะฝะฐั‡ะต ั‡ะธัะปะพ ั 0 ะฒ ะฝะฐั‡ะฐะปะต ะฑัƒะดะตั‚ ะฒะพัะฟั€ะธะฝัั‚ะพ ะบะฐะบ ะทะฐะฟะธัะฐะฝะฝะพะต ะฒ ะฒะพััŒะผะตั€ะธั‡ะฝะพะน ัะธัั‚ะตะผะต, ะธ ะฒัั‘ ะฟะพะนะดั‘ั‚ ะฝะต ั‚ะฐะบ, ะบะฐะบ ะทะฐะดัƒะผะฐะฝะพ
    }
}

แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒแƒ‘แƒ”แƒ‘แƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ”

แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ” server2.testdomain nginx แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒแƒ“แƒ แƒ” แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒ—.

แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒฎแƒกแƒœแƒแƒ— แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ:

  • แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ nginx.
  • แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒ“แƒแƒœ.
  • แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ nginx.
  • แƒ—แƒฃ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ—.

แƒฉแƒ•แƒ”แƒœ แƒ•แƒฌแƒ”แƒ แƒ— แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒก:

node 'server2.testdomain' {   # ะฑะปะพะบ ะบะพะฝั„ะธะณัƒั€ะฐั†ะธะธ, ะพั‚ะฝะพััั‰ะธะนัั ะบ ะฝะพะดะต server2.testdomain
    package { 'nginx':   # ะพะฟะธัั‹ะฒะฐะตะผ ะฟะฐะบะตั‚ nginx
        ensure => installed,   # ะพะฝ ะดะพะปะถะตะฝ ะฑั‹ั‚ัŒ ัƒัั‚ะฐะฝะพะฒะปะตะฝ
    }
  # ะŸั€ัะผะฐั ัั‚ั€ะตะปะบะฐ (->) ะณะพะฒะพั€ะธั‚ ะพ ั‚ะพะผ, ั‡ั‚ะพ ั€ะตััƒั€ั ะฝะธะถะต ะดะพะปะถะตะฝ
  # ัะพะทะดะฐะฒะฐั‚ัŒัั ะฟะพัะปะต ั€ะตััƒั€ัะฐ, ะพะฟะธัะฐะฝะฝะพะณะพ ะฒั‹ัˆะต.
  # ะขะฐะบะธะต ะทะฐะฒะธัะธะผะพัั‚ะธ ั‚ั€ะฐะฝะทะธั‚ะธะฒะฝั‹.
    -> file { '/etc/nginx':   # ะพะฟะธัั‹ะฒะฐะตะผ ั„ะฐะนะป /etc/nginx
        ensure  => directory,   # ัั‚ะพ ะดะพะปะถะฝะฐ ะฑั‹ั‚ัŒ ะดะธั€ะตะบั‚ะพั€ะธั
        source  => 'puppet:///modules/example/nginx-conf',   # ะตั‘ ัะพะดะตั€ะถะธะผะพะต ะฝัƒะถะฝะพ ะฑั€ะฐั‚ัŒ ั ะฟะฐะฟะฟะตั‚-ัะตั€ะฒะตั€ะฐ ะฟะพ ัƒะบะฐะทะฐะฝะฝะพะผัƒ ะฐะดั€ะตััƒ
        recurse => true,   # ะบะพะฟะธั€ะพะฒะฐั‚ัŒ ั„ะฐะนะปั‹ ั€ะตะบัƒั€ัะธะฒะฝะพ
        purge   => true,   # ะฝัƒะถะฝะพ ัƒะดะฐะปัั‚ัŒ ะปะธัˆะฝะธะต ั„ะฐะนะปั‹ (ั‚ะต, ะบะพั‚ะพั€ั‹ั… ะฝะตั‚ ะฒ ะธัั‚ะพั‡ะฝะธะบะต)
        force   => true,   # ัƒะดะฐะปัั‚ัŒ ะปะธัˆะฝะธะต ะดะธั€ะตะบั‚ะพั€ะธะธ
    }
  # ะ’ะพะปะฝะธัั‚ะฐั ัั‚ั€ะตะปะบะฐ (~>) ะณะพะฒะพั€ะธั‚ ะพ ั‚ะพะผ, ั‡ั‚ะพ ั€ะตััƒั€ั ะฝะธะถะต ะดะพะปะถะตะฝ
  # ะฟะพะดะฟะธัะฐั‚ัŒัั ะฝะฐ ะธะทะผะตะฝะตะฝะธั ั€ะตััƒั€ัะฐ, ะพะฟะธัะฐะฝะฝะพะณะพ ะฒั‹ัˆะต.
  # ะ’ะพะปะฝะธัั‚ะฐั ัั‚ั€ะตะปะบะฐ ะฒะบะปัŽั‡ะฐะตั‚ ะฒ ัะตะฑั ะฟั€ัะผัƒัŽ (->).
    ~> service { 'nginx':   # ะพะฟะธัั‹ะฒะฐะตะผ ัะตั€ะฒะธั nginx
        ensure => running,   # ะพะฝ ะดะพะปะถะตะฝ ะฑั‹ั‚ัŒ ะทะฐะฟัƒั‰ะตะฝ
        enable => true,   # ะตะณะพ ะฝัƒะถะฝะพ ะทะฐะฟัƒัะบะฐั‚ัŒ ะฐะฒั‚ะพะผะฐั‚ะธั‡ะตัะบะธ ะฟั€ะธ ัั‚ะฐั€ั‚ะต ัะธัั‚ะตะผั‹
    }
  # ะšะพะณะดะฐ ั€ะตััƒั€ั ั‚ะธะฟะฐ service ะฟะพะปัƒั‡ะฐะตั‚ ัƒะฒะตะดะพะผะปะตะฝะธะต,
  # ัะพะพั‚ะฒะตั‚ัั‚ะฒัƒัŽั‰ะธะน ัะตั€ะฒะธั ะฟะตั€ะตะทะฐะฟัƒัะบะฐะตั‚ัั.
}

แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ”แƒก แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก, แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒ แƒ›แƒแƒ แƒ˜แƒแƒœแƒ”แƒขแƒฃแƒš แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”:

/etc/puppetlabs/code/environments/production/ # (ัั‚ะพ ะดะปั ะฝะพะฒะพะณะพ ะŸะฐะฟะฟะตั‚ะฐ, ะดะปั ัั‚ะฐั€ะพะณะพ ะบะพั€ะฝะตะฒะพะน ะดะธั€ะตะบั‚ะพั€ะธะตะน ะฑัƒะดะตั‚ /etc/puppet)
โ”œโ”€โ”€ manifests/
โ”‚   โ””โ”€โ”€ site.pp
โ””โ”€โ”€ modules/
    โ””โ”€โ”€ example/
        โ””โ”€โ”€ files/
            โ””โ”€โ”€ nginx-conf/
                โ”œโ”€โ”€ nginx.conf
                โ”œโ”€โ”€ mime.types
                โ””โ”€โ”€ conf.d/
                    โ””โ”€โ”€ some.conf

แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜

แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒแƒฅ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒจแƒ˜, แƒแƒฅ แƒแƒฆแƒ•แƒฌแƒ”แƒ  แƒฎแƒฃแƒ— แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“ แƒขแƒ˜แƒžแƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฉแƒ”แƒ›แƒก แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒแƒจแƒ˜ แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒญแƒ แƒ”แƒšแƒแƒ“.

แƒคแƒแƒ˜แƒšแƒ˜

แƒ›แƒแƒ แƒ—แƒแƒ•แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒก, แƒ™แƒแƒขแƒแƒšแƒแƒ’แƒ”แƒ‘แƒก, แƒกแƒ˜แƒ›แƒ‘แƒแƒšแƒฃแƒ  แƒ‘แƒ›แƒฃแƒšแƒ”แƒ‘แƒก, แƒ›แƒแƒ— แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒก แƒ“แƒ แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒฃแƒคแƒšแƒ”แƒ‘แƒ”แƒ‘แƒก.

แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜:

  • แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ - แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ’แƒ–แƒ (แƒกแƒฃแƒ แƒ•แƒ˜แƒšแƒ˜แƒกแƒแƒ›แƒ”แƒ‘แƒ )
  • แƒ’แƒ–แƒ - แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ’แƒ–แƒ (แƒ—แƒฃ แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜)
  • แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒก - แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒขแƒ˜แƒžแƒ˜:
    • absent - แƒฌแƒแƒจแƒแƒšแƒ” แƒคแƒแƒ˜แƒšแƒ˜
    • present โ€” แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜ (แƒ—แƒฃ แƒคแƒแƒ˜แƒšแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก, แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒคแƒแƒ˜แƒšแƒ˜)
    • file - แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒคแƒแƒ˜แƒšแƒ˜
    • directory - แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ
    • link - แƒกแƒ˜แƒ›แƒ‘แƒšแƒแƒ™แƒ˜
  • แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜ โ€” แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒจแƒ˜แƒ’แƒ—แƒแƒ•แƒกแƒ˜ (แƒ’แƒแƒ›แƒแƒ“แƒ’แƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒ”แƒ แƒ—แƒแƒ“ แƒฌแƒงแƒแƒ แƒ แƒแƒœ แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ”)
  • แƒฌแƒงแƒแƒ แƒ โ€” แƒ‘แƒ›แƒฃแƒšแƒ˜ แƒ˜แƒ› แƒ‘แƒ˜แƒšแƒ˜แƒ™แƒ–แƒ”, แƒกแƒแƒ˜แƒ“แƒแƒœแƒแƒช แƒ’แƒกแƒฃแƒ แƒ— แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜แƒก แƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒ (แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒ”แƒ แƒ—แƒแƒ“ แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜ แƒแƒœ แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ”). แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒแƒก แƒ แƒแƒ’แƒแƒ แƒช URI แƒกแƒฅแƒ”แƒ›แƒ˜แƒ— puppet: (แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ›แƒแƒ แƒ˜แƒแƒœแƒ”แƒขแƒฃแƒšแƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒ“แƒแƒœ) แƒ“แƒ แƒกแƒฅแƒ”แƒ›แƒ˜แƒ— http: (แƒ˜แƒ›แƒ”แƒ“แƒ˜ แƒ›แƒแƒฅแƒ•แƒก, แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒ˜แƒ, แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜) แƒ“แƒ แƒ—แƒฃแƒœแƒ“แƒแƒช แƒ“แƒ˜แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ— file: แƒแƒœ แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ‘แƒกแƒแƒšแƒฃแƒขแƒฃแƒ แƒ˜ แƒ’แƒ–แƒ แƒกแƒฅแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ” (แƒ›แƒแƒจแƒ˜แƒœ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒคแƒแƒ˜แƒšแƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ FS-แƒ“แƒแƒœ แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ”)
  • แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” - แƒกแƒแƒ“แƒแƒช แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ›แƒ‘แƒšแƒแƒ™แƒ˜ (แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒ”แƒ แƒ—แƒแƒ“ แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜ แƒแƒœ แƒฌแƒงแƒแƒ แƒ)
  • แƒ›แƒคแƒšแƒแƒ‘แƒ”แƒšแƒ˜ - แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒœแƒ“แƒ แƒคแƒšแƒแƒ‘แƒ“แƒ”แƒก แƒคแƒแƒ˜แƒšแƒก
  • แƒฏแƒ’แƒฃแƒคแƒ˜ - แƒฏแƒ’แƒฃแƒคแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒคแƒแƒ˜แƒšแƒ˜ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒ”แƒ™แƒฃแƒ—แƒ•แƒœแƒ”แƒ‘แƒแƒ“แƒ”แƒก
  • แƒ แƒ”แƒŸแƒ˜แƒ›แƒ˜ - แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒœแƒ”แƒ‘แƒแƒ แƒ—แƒ•แƒ”แƒ‘แƒ˜ (แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—)
  • แƒฃแƒ™แƒฃแƒชแƒ”แƒ›แƒ - แƒฉแƒแƒ แƒ—แƒแƒ•แƒก แƒ แƒ”แƒ™แƒฃแƒ แƒกแƒ˜แƒฃแƒš แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒแƒก
  • แƒœแƒแƒ‘แƒ˜แƒฏแƒ›แƒ - แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒฌแƒแƒจแƒแƒšแƒแƒ— แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒ  แƒแƒ แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ Puppet-แƒจแƒ˜
  • แƒแƒ˜แƒซแƒฃแƒšแƒ”แƒ‘แƒก - แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒฌแƒแƒจแƒแƒšแƒแƒ— แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒ  แƒแƒ แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ Puppet-แƒจแƒ˜

แƒžแƒแƒ™แƒ”แƒขแƒ˜

แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ“แƒ แƒจแƒšแƒ˜แƒก แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒก. แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ - แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒก แƒžแƒแƒ™แƒ”แƒขแƒก, แƒ—แƒฃ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ reinstall_on_refresh.

แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜:

  • แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ - แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ (แƒกแƒฃแƒ แƒ•แƒ˜แƒšแƒ˜แƒกแƒแƒ›แƒ”แƒ‘แƒ )
  • แƒกแƒแƒฎแƒ”แƒšแƒ˜ - แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ (แƒ—แƒฃ แƒกแƒแƒฎแƒ”แƒšแƒจแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜)
  • แƒžแƒ แƒแƒ•แƒแƒ˜แƒ“แƒ”แƒ แƒ˜ - แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“ แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ›แƒ”แƒœแƒ”แƒฏแƒ”แƒ แƒ˜
  • แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒก - แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒšแƒ˜ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ:
    • present, installed - แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ
    • latest - แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒฃแƒแƒฎแƒšแƒ”แƒกแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ
    • absent - แƒฌแƒแƒจแƒšแƒ˜แƒšแƒ˜แƒ (apt-get remove)
    • purged - แƒฌแƒแƒจแƒšแƒ˜แƒšแƒ˜แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“ (apt-get purge)
    • held - แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒ“แƒแƒ‘แƒšแƒแƒ™แƒ˜แƒšแƒ˜แƒ (apt-mark hold)
    • ะปัŽะฑะฐั ะดั€ัƒะณะฐั ัั‚ั€ะพะบะฐ โ€” แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ
  • reinstall_on_refresh - แƒ—แƒฃ true, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ˜แƒกแƒ—แƒแƒœแƒแƒ•แƒ” แƒžแƒแƒ™แƒ”แƒขแƒ˜ แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ. แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒแƒ แƒฌแƒงแƒแƒ แƒแƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ˜แƒกแƒขแƒ แƒ˜แƒ‘แƒฃแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒกแƒแƒ“แƒแƒช แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ’แƒแƒฎแƒ“แƒ”แƒก แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒฎแƒ”แƒšแƒแƒฎแƒแƒšแƒ˜ แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ build-แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒกแƒแƒก. แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ false.

แƒ›แƒแƒ›แƒกแƒแƒฎแƒฃแƒ แƒ”แƒ‘แƒ

แƒ›แƒแƒ แƒ—แƒแƒ•แƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒก. แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ - แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒ”แƒ‘แƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒก.

แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜:

  • แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ โ€” แƒกแƒแƒ›แƒแƒ แƒ—แƒแƒ•แƒ˜ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜ (แƒแƒ แƒแƒกแƒแƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ)
  • แƒกแƒแƒฎแƒ”แƒšแƒ˜ โ€” แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒแƒช แƒกแƒแƒญแƒ˜แƒ แƒแƒ (แƒ—แƒฃ แƒกแƒแƒฎแƒ”แƒšแƒจแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜)
  • แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒก - แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒšแƒ˜ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ:
    • running - แƒ“แƒแƒ˜แƒฌแƒงแƒ
    • stopped - แƒ’แƒแƒฉแƒ”แƒ แƒ“แƒ
  • แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก โ€” แƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ‘แƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒแƒก:
    • true โ€” แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ autorun (systemctl enable)
    • mask - แƒ’แƒแƒ“แƒแƒชแƒ›แƒฃแƒšแƒ˜ (systemctl mask)
    • false - แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ (systemctl disable)
  • แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ - แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก
  • แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜ - แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒ›แƒแƒ›แƒกแƒแƒฎแƒฃแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜แƒก แƒจแƒ”แƒกแƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒšแƒแƒ“
  • แƒฐแƒแƒ แƒ”แƒกแƒขแƒแƒ แƒขแƒ˜ โ€” แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ—, แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก แƒ—แƒฃ แƒแƒ แƒ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก initscript แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒแƒก. แƒ—แƒฃ false แƒ“แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ - แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒแƒ› แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ. แƒ—แƒฃ false แƒ“แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ - แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜ แƒจแƒ”แƒฉแƒ”แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒ แƒ“แƒแƒ˜แƒฌแƒงแƒ แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ (แƒ›แƒแƒ’แƒ แƒแƒ› systemd แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒแƒก systemctl restart).
  • แƒแƒฅแƒ•แƒก แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜ โ€” แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ—, แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก แƒ—แƒฃ แƒแƒ แƒ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก initscript แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒแƒก status. แƒ—แƒฃ false, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜. แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ true.

แƒแƒฆแƒ›แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜

แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒก แƒ’แƒแƒ แƒ” แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒก. แƒ—แƒฃ แƒแƒ  แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ— แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒก แƒฅแƒ›แƒœแƒ˜แƒก, แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ—แƒฃ, แƒ—แƒฃ แƒแƒ  แƒแƒœ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ˜แƒ—, แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒ แƒงแƒแƒ•แƒ”แƒš แƒฏแƒ”แƒ แƒ–แƒ” Puppet-แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก. แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ - แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒแƒก.

แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜:

  • แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ - แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒก (แƒกแƒฃแƒ แƒ•แƒ˜แƒšแƒ˜แƒกแƒแƒ›แƒ”แƒ‘แƒ )
  • แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ โ€” แƒจแƒ”แƒกแƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ (แƒ—แƒฃ แƒกแƒแƒฎแƒ”แƒšแƒจแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜)
  • แƒ’แƒ–แƒ โ€” แƒ‘แƒ˜แƒšแƒ˜แƒ™แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒจแƒ˜แƒช แƒฃแƒœแƒ“แƒ แƒ•แƒ”แƒซแƒ”แƒ‘แƒแƒ— แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“แƒ˜ แƒคแƒแƒ˜แƒšแƒ˜
  • แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ—แƒฃ - แƒ—แƒฃ แƒแƒ› แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒจแƒ˜ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒœแƒฃแƒšแƒแƒ•แƒแƒœแƒ˜ แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒ—, แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒ
  • แƒ—แƒฃ แƒแƒ  โ€” แƒ—แƒฃ แƒแƒ› แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒจแƒ˜ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒแƒ แƒแƒœแƒฃแƒšแƒแƒ•แƒแƒœแƒ˜ แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒ—, แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒ
  • แƒฅแƒ›แƒœแƒ˜แƒก โ€” แƒ—แƒฃ แƒแƒ› แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒจแƒ˜ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜ แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก, แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒ
  • แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ˜แƒ— - แƒ—แƒฃ true, แƒ›แƒแƒจแƒ˜แƒœ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒแƒจแƒ˜แƒœ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ”แƒก exec แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒแƒก แƒกแƒฎแƒ•แƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ
  • cwd โ€” แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ, แƒกแƒแƒ˜แƒ“แƒแƒœแƒแƒช แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒแƒก
  • แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ - แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜, แƒ•แƒ˜แƒกแƒ’แƒแƒœแƒแƒช แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ
  • แƒžแƒ แƒแƒ•แƒแƒ˜แƒ“แƒ”แƒ แƒ˜ - แƒ แƒแƒ’แƒแƒ  แƒแƒฌแƒแƒ แƒ›แƒแƒแƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ:
    • posix โ€” แƒ‘แƒแƒ•แƒจแƒ•แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜แƒ, แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒšแƒแƒ“ แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ— แƒ’แƒ–แƒ
    • shell - แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒญแƒฃแƒ แƒ•แƒจแƒ˜ /bin/sh, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒ  แƒ˜แƒงแƒแƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒ–แƒ, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ’แƒšแƒแƒ‘แƒ˜แƒœแƒ’แƒ˜, แƒ›แƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒญแƒฃแƒ แƒ•แƒ˜แƒก แƒกแƒฎแƒ•แƒ แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜. แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒ’แƒแƒ›แƒแƒ•แƒšแƒ”แƒœแƒ˜แƒšแƒ˜แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“, แƒ—แƒฃ แƒแƒ แƒ˜แƒก แƒ แƒแƒ˜แƒ›แƒ” แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒ›แƒ‘แƒแƒšแƒ (|, ;, &&, || แƒ“แƒ แƒ.แƒจ.)

cron

แƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ‘แƒก cronjob-แƒ”แƒ‘แƒก.

แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜:

  • แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ - แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒกแƒแƒฎแƒ˜แƒก แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒแƒ แƒ˜
  • แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒก - แƒ’แƒ•แƒ˜แƒ แƒ’แƒ•แƒ˜แƒœแƒ˜แƒก แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ:
    • present - แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒ—แƒฃ แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก
    • absent - แƒฌแƒแƒจแƒแƒšแƒ”, แƒ—แƒฃ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก
  • แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ - แƒ แƒ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒ’แƒแƒฃแƒจแƒ•แƒ
  • แƒ’แƒแƒ แƒ”แƒ›แƒแƒก - แƒ แƒแƒ›แƒ”แƒš แƒ’แƒแƒ แƒ”แƒ›แƒแƒจแƒ˜ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒฃแƒจแƒ•แƒแƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ (แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ แƒ“แƒ แƒ›แƒแƒ—แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜ =)
  • แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ - แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒกแƒ’แƒแƒœ แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ
  • แƒฌแƒฃแƒ—แƒ˜, แƒกแƒแƒแƒ—แƒ˜, แƒ™แƒ•แƒ˜แƒ แƒ˜แƒก แƒ“แƒฆแƒ”, แƒ—แƒ•แƒ˜แƒก, แƒ—แƒ•แƒ˜แƒก แƒ“แƒฆแƒ” โ€” แƒ แƒแƒ“แƒ˜แƒก แƒ’แƒแƒฃแƒจแƒ•แƒแƒ— แƒ™แƒ แƒแƒœแƒ˜. แƒ—แƒฃ แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒ›แƒ” แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒ™แƒ แƒแƒœแƒขแƒแƒ‘แƒจแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ *.

แƒ—แƒแƒฏแƒ˜แƒœแƒแƒจแƒ˜ 6.0 cron แƒ—แƒ˜แƒ—แƒฅแƒแƒก แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒงแƒฃแƒ—แƒ˜แƒ“แƒแƒœ puppetserver-แƒจแƒ˜, แƒแƒกแƒ” แƒ แƒแƒ› แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ แƒ–แƒแƒ’แƒแƒ“ แƒกแƒแƒ˜แƒขแƒ–แƒ”. แฒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒก แƒแƒ แƒ˜แƒก แƒงแƒฃแƒ—แƒจแƒ˜ แƒ—แƒแƒฏแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒก แƒแƒ’แƒ”แƒœแƒขแƒจแƒ˜, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ›แƒ˜แƒกแƒ˜ แƒชแƒแƒšแƒ™แƒ” แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ. แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒœแƒแƒฎแƒแƒ— แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ—แƒแƒฏแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ”แƒฎแƒฃแƒ—แƒ” แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒจแƒ˜แƒแƒœ GitHub-แƒ–แƒ”.

แƒ–แƒแƒ’แƒแƒ“แƒแƒ“ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘

แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ’แƒแƒ•แƒ แƒชแƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ•แƒฎแƒ•แƒ“แƒ”แƒ‘แƒ˜แƒ— แƒ“แƒฃแƒ‘แƒšแƒ˜แƒ™แƒแƒขแƒ˜ แƒ“แƒ”แƒ™แƒšแƒแƒ แƒแƒชแƒ˜แƒ. แƒ”แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ แƒฉแƒœแƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒ”แƒ แƒ—แƒ˜ แƒ“แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒขแƒ˜แƒžแƒ˜แƒก แƒแƒ แƒ˜ แƒแƒœ แƒ›แƒ”แƒขแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒ”แƒ แƒ—แƒ˜ แƒ“แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ—.

แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒฎแƒ”แƒš แƒ“แƒแƒ•แƒฌแƒ”แƒ : แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒ”แƒ แƒ—แƒ˜ แƒ“แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ  แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒ“แƒ”แƒก แƒ˜แƒ›แƒแƒ•แƒ” แƒขแƒ˜แƒžแƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒก แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒกแƒแƒ—แƒแƒฃแƒ แƒ˜แƒ—!

แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ˜แƒ›แƒแƒ•แƒ” แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ”แƒœแƒ”แƒฏแƒ”แƒ แƒ”แƒ‘แƒ˜แƒ—. แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ nameแƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒแƒกแƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒšแƒแƒ“:

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

แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒกแƒฎแƒ•แƒ แƒขแƒ˜แƒžแƒ”แƒ‘แƒก แƒแƒฅแƒ•แƒ— แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ”แƒ‘แƒ˜, แƒ แƒแƒ—แƒ แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒแƒ˜แƒชแƒ˜แƒšแƒแƒœ แƒ“แƒฃแƒ‘แƒšแƒ˜แƒ แƒ”แƒ‘แƒ โˆ’ name ัƒ แƒ›แƒแƒ›แƒกแƒแƒฎแƒฃแƒ แƒ”แƒ‘แƒ, command ัƒ แƒแƒฆแƒ›แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜, แƒ“แƒ แƒแƒกแƒ” แƒจแƒ”แƒ›แƒ“แƒ”แƒ’.

แƒ›แƒ”แƒขแƒแƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜

แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒขแƒ˜แƒžแƒก แƒแƒฅแƒ•แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜, แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ›แƒ˜แƒกแƒ˜ แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ˜แƒกแƒ.

แƒ›แƒ”แƒขแƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ แƒ—แƒแƒฏแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒจแƒ˜.

แƒ›แƒแƒ™แƒšแƒ” แƒกแƒ˜แƒ:

  • แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก โ€” แƒ”แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒ”แƒš แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ–แƒ”แƒ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ”แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜.
  • แƒแƒ“แƒ แƒ” - แƒ”แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก แƒ—แƒฃ แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ› แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ–แƒ”.
  • แƒฎแƒ”แƒšแƒ›แƒแƒฌแƒ”แƒ แƒ โ€” แƒ”แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก, แƒ—แƒฃ แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒก แƒ”แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜.
  • แƒแƒชแƒœแƒแƒ‘แƒแƒก โ€” แƒ”แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜ แƒ˜แƒฆแƒ”แƒ‘แƒ”แƒœ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒก แƒแƒ› แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒ“แƒแƒœ.

แƒงแƒ•แƒ”แƒšแƒ แƒฉแƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒšแƒ˜ แƒ›แƒ”แƒขแƒแƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒแƒœ แƒ”แƒ แƒ— แƒ แƒ”แƒกแƒฃแƒ แƒก แƒ‘แƒ›แƒฃแƒšแƒก แƒแƒœ แƒ™แƒ•แƒแƒ“แƒ แƒแƒขแƒฃแƒš แƒคแƒ แƒฉแƒฎแƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜ แƒ‘แƒ›แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒกแƒ˜แƒ•แƒก.

แƒ‘แƒ›แƒฃแƒšแƒ”แƒ‘แƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ—แƒแƒœ

แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒ‘แƒ›แƒฃแƒšแƒ˜ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒแƒ. แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒแƒฆแƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒแƒ“. แƒแƒ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ–แƒ” แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก.

แƒ‘แƒ›แƒฃแƒšแƒ˜แƒก แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜ แƒแƒกแƒ”แƒ—แƒ˜แƒ: แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒขแƒ˜แƒžแƒ˜ แƒ›แƒ—แƒแƒ•แƒ แƒฃแƒšแƒ˜ แƒแƒกแƒแƒ”แƒ‘แƒ˜แƒ— (แƒ—แƒฃ แƒขแƒ˜แƒžแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒแƒ แƒ›แƒแƒ’ แƒแƒ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒก, แƒ›แƒแƒจแƒ˜แƒœ แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒแƒ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒก แƒจแƒแƒ แƒ˜แƒก แƒแƒ แƒ˜แƒก แƒ“แƒ˜แƒ“แƒ˜ แƒแƒกแƒแƒ”แƒ‘แƒ˜แƒ—), แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒ™แƒ•แƒแƒ“แƒ แƒแƒขแƒฃแƒš แƒคแƒ แƒฉแƒฎแƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜ (แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ แƒแƒ  แƒ˜แƒชแƒ•แƒšแƒ”แƒ‘แƒ!). แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒ”แƒ‘แƒ˜; แƒ™แƒ•แƒแƒ“แƒ แƒแƒขแƒฃแƒšแƒ˜ แƒคแƒ แƒฉแƒฎแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ˜แƒฌแƒ”แƒ แƒ”แƒ‘แƒ แƒฃแƒจแƒฃแƒแƒšแƒแƒ“ แƒขแƒ˜แƒžแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜:

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

แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜

แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ แƒแƒฅ.

แƒ แƒแƒ’แƒแƒ แƒช แƒฃแƒ™แƒ•แƒ” แƒแƒฆแƒ•แƒœแƒ˜แƒจแƒœแƒ”แƒ—, แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ แƒ“แƒแƒ›แƒแƒ•แƒแƒšแƒ˜แƒ. แƒกแƒฎแƒ•แƒแƒ—แƒ แƒจแƒแƒ แƒ˜แƒก, แƒคแƒ แƒ—แƒฎแƒ˜แƒšแƒแƒ“ แƒ˜แƒงแƒแƒ•แƒ˜แƒ— แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒกแƒแƒก - แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒชแƒ˜แƒ™แƒšแƒฃแƒ แƒ˜ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ แƒแƒช แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก.

แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ˜แƒกแƒ’แƒแƒœ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ˜แƒ—, แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ’แƒแƒ แƒ“แƒแƒ›แƒแƒ•แƒแƒšแƒ˜. แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜:

  • แƒ—แƒฃ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒแƒก, แƒ˜แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ“แƒ”แƒ‘แƒ. แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒขแƒ˜แƒžแƒ–แƒ” โˆ’ แƒแƒฆแƒ›แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒแƒก, แƒ›แƒแƒ›แƒกแƒแƒฎแƒฃแƒ แƒ”แƒ‘แƒ แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒ”แƒ‘แƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒก, แƒžแƒแƒ™แƒ”แƒขแƒ˜ แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒžแƒแƒ™แƒ”แƒขแƒก. แƒ—แƒฃ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒก แƒแƒ  แƒแƒฅแƒ•แƒก แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒแƒ แƒแƒคแƒ”แƒ แƒ˜ แƒฎแƒ“แƒ”แƒ‘แƒ.
  • Puppet-แƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒ’แƒแƒœแƒแƒฎแƒšแƒ“แƒ”แƒ‘แƒ แƒแƒ แƒ แƒฃแƒ›แƒ”แƒขแƒ”แƒก แƒ”แƒ แƒ—แƒฎแƒ”แƒš. แƒ”แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒก แƒ“แƒ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒ˜ แƒแƒ  แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒชแƒ˜แƒ™แƒšแƒ”แƒ‘แƒก.
  • แƒ—แƒฃ Puppet แƒชแƒ•แƒšแƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒแƒก, แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒก แƒ›แƒแƒกแƒ–แƒ” แƒ’แƒแƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒš แƒงแƒ•แƒ”แƒšแƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ–แƒ”.
  • แƒ—แƒฃ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒ˜แƒก แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒก แƒ›แƒแƒกแƒ–แƒ” แƒ’แƒแƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒš แƒงแƒ•แƒ”แƒšแƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ–แƒ”.

แƒ“แƒแƒฃแƒ–แƒฃแƒกแƒขแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ

แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒ—แƒฃ แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒ›แƒ” แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒก แƒแƒ  แƒแƒฅแƒ•แƒก แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒ“แƒ แƒ”แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒจแƒ˜, แƒ›แƒแƒจแƒ˜แƒœ Puppet แƒแƒ  แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒก แƒแƒ› แƒ—แƒ•แƒ˜แƒกแƒ”แƒ‘แƒแƒก แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ—แƒฃ แƒขแƒ˜แƒžแƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ owner, แƒ›แƒแƒจแƒ˜แƒœ Puppet แƒแƒ  แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ›แƒคแƒšแƒแƒ‘แƒ”แƒšแƒก.

แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒ˜แƒก, แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜

แƒ“แƒแƒ•แƒฃแƒจแƒ•แƒแƒ—, แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ™แƒ•แƒแƒœแƒซแƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒแƒฅแƒ•แƒ— แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒ“แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒœแƒแƒฌแƒ˜แƒšแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒกแƒ”แƒ•แƒ” แƒแƒ แƒ˜แƒก แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ”แƒ‘แƒ˜ - แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒแƒฆแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ”แƒ แƒ— แƒ‘แƒšแƒแƒ™แƒจแƒ˜ node {}. แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ“แƒแƒแƒ™แƒแƒžแƒ˜แƒ แƒแƒ— แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ˜แƒ“แƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ–แƒแƒ’แƒแƒ“แƒแƒ“ แƒ”แƒก แƒชแƒฃแƒ“แƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜แƒ - แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒ˜แƒ–แƒ แƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒ—แƒฃ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ–แƒแƒ’แƒแƒ“ แƒœแƒแƒฌแƒ˜แƒšแƒก แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒ—, แƒ‘แƒ”แƒ•แƒ แƒ’แƒแƒœ แƒ›แƒแƒ’แƒ˜แƒฌแƒ”แƒ•แƒ— แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒก แƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ. แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, แƒแƒ“แƒ•แƒ˜แƒšแƒ˜แƒ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒ“แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒ“แƒ แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, DRY (แƒแƒ  แƒ’แƒแƒ˜แƒ›แƒ”แƒแƒ แƒ) แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒ’แƒแƒœแƒ”แƒก แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜แƒ—.

แƒแƒ› แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒญแƒ แƒ”แƒšแƒแƒ“ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒ“แƒ˜แƒ–แƒแƒ˜แƒœแƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒ™แƒšแƒแƒกแƒ˜.

แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒ˜

แƒ™แƒšแƒแƒกแƒ˜ แƒแƒ แƒ˜แƒก poppet แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ‘แƒšแƒแƒ™แƒ˜. แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒ˜ แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ™แƒแƒ“แƒ˜แƒก แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“.

แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜ แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ™แƒšแƒแƒกแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ. แƒ—แƒแƒ•แƒแƒ“ แƒแƒฆแƒฌแƒ”แƒ แƒ แƒแƒ แƒกแƒแƒ“ แƒแƒ  แƒแƒ›แƒแƒขแƒ”แƒ‘แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒก. แƒ™แƒšแƒแƒกแƒ˜ แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒ”แƒ‘แƒจแƒ˜:

# ะžะฟะธัะฐะฝะธะต ะบะปะฐััะฐ ะฝะฐั‡ะธะฝะฐะตั‚ัั ั ะบะปัŽั‡ะตะฒะพะณะพ ัะปะพะฒะฐ class ะธ ะตะณะพ ะฝะฐะทะฒะฐะฝะธั.
# ะ”ะฐะปัŒัˆะต ะธะดั‘ั‚ ั‚ะตะปะพ ะบะปะฐััะฐ ะฒ ั„ะธะณัƒั€ะฝั‹ั… ัะบะพะฑะบะฐั….
class example_class {
    ...
}

แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒšแƒแƒกแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ:

# ะฟะตั€ะฒั‹ะน ะฒะฐั€ะธะฐะฝั‚ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธั โ€” ะฒ ัั‚ะธะปะต ั€ะตััƒั€ัะฐ ั ั‚ะธะฟะพะผ class
class { 'example_class': }
# ะฒั‚ะพั€ะพะน ะฒะฐั€ะธะฐะฝั‚ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธั โ€” ั ะฟะพะผะพั‰ัŒัŽ ั„ัƒะฝะบั†ะธะธ include
include example_class
# ะฟั€ะพ ะพั‚ะปะธั‡ะธะต ัั‚ะธั… ะดะฒัƒั… ะฒะฐั€ะธะฐะฝั‚ะพะฒ ะฑัƒะดะตั‚ ั€ะฐััะบะฐะทะฐะฝะพ ะดะฐะปัŒัˆะต

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒฌแƒ˜แƒœแƒ แƒแƒ›แƒแƒชแƒแƒœแƒ˜แƒ“แƒแƒœ - แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒขแƒแƒœแƒแƒ— nginx-แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ แƒ“แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒ™แƒšแƒแƒกแƒจแƒ˜:

class nginx_example {
    package { 'nginx':
        ensure => installed,
    }
    -> file { '/etc/nginx':
        ensure => directory,
        source => 'puppet:///modules/example/nginx-conf',
        recure => true,
        purge  => true,
        force  => true,
    }
    ~> service { 'nginx':
        ensure => running,
        enable => true,
    }
}

node 'server2.testdomain' {
    include nginx_example
}

แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜

แƒฌแƒ˜แƒœแƒ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒก แƒ™แƒšแƒแƒกแƒ˜ แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒแƒฅแƒœแƒ˜แƒšแƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ›แƒแƒก แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒ›แƒแƒแƒฅแƒ•แƒก แƒ˜แƒ’แƒ˜แƒ•แƒ” nginx แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ. แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ— แƒ’แƒ–แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒกแƒ™แƒ”แƒœ, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ”แƒก แƒ™แƒšแƒแƒกแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก nginx-แƒ˜แƒก แƒ“แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒ—.

แƒ”แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ”แƒก แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ: Puppet-แƒจแƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜ แƒฃแƒชแƒ•แƒšแƒ”แƒšแƒ˜แƒ!

แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒฌแƒ•แƒ“แƒแƒ›แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒช แƒ’แƒแƒ›แƒแƒชแƒฎแƒแƒ“แƒ“แƒ”แƒ‘แƒ, แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ undef.

แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜:

# ัะพะทะดะฐะฝะธะต ะฟะตั€ะตะผะตะฝะฝั‹ั…
$variable = 'value'
$var2 = 1
$var3 = true
$var4 = undef
# ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะต ะฟะตั€ะตะผะตะฝะฝั‹ั…
$var5 = $var6
file { '/tmp/text': content => $variable }
# ะธะฝั‚ะตั€ะฟะพะปัั†ะธั ะฟะตั€ะตะผะตะฝะฝั‹ั… โ€” ั€ะฐัะบั€ั‹ั‚ะธะต ะทะฝะฐั‡ะตะฝะธั ะฟะตั€ะตะผะตะฝะฝั‹ั… ะฒ ัั‚ั€ะพะบะฐั…. ะ ะฐะฑะพั‚ะฐะตั‚ ั‚ะพะปัŒะบะพ ะฒ ะดะฒะพะนะฝั‹ั… ะบะฐะฒั‹ั‡ะบะฐั…!
$var6 = "Variable with name variable has value ${variable}"

แƒ—แƒแƒฏแƒ˜แƒœแƒแƒก แƒแƒฅแƒ•แƒก แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒ”แƒ‘แƒ˜, แƒ“แƒ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒก, แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒแƒฅแƒ•แƒ— แƒฎแƒ˜แƒšแƒ•แƒแƒ“แƒแƒ‘แƒ˜แƒก แƒ–แƒแƒœแƒ: แƒชแƒ•แƒšแƒแƒ“แƒ˜ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ— แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒœแƒ˜แƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜. แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒแƒ›แƒแƒฎแƒกแƒœแƒ˜แƒกแƒแƒก แƒชแƒ•แƒšแƒแƒ“แƒ˜ แƒ˜แƒซแƒ”แƒ‘แƒœแƒ”แƒ‘แƒ แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒ˜แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ” แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜ แƒ“แƒ แƒ.แƒจ.

แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒ˜:

  • แƒ’แƒšแƒแƒ‘แƒแƒšแƒฃแƒ แƒ˜ - แƒ˜แƒฅ แƒ›แƒ˜แƒ“แƒ˜แƒก แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜ แƒ™แƒšแƒแƒกแƒ˜แƒก แƒแƒœ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ—;
  • แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ” แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒแƒจแƒ˜;
  • แƒ™แƒšแƒแƒกแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ” แƒ™แƒšแƒแƒกแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒแƒจแƒ˜.

แƒชแƒ•แƒšแƒแƒ“แƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒกแƒแƒก แƒ’แƒแƒฃแƒ แƒ™แƒ•แƒ”แƒ•แƒšแƒแƒ‘แƒ˜แƒก แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒแƒกแƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒšแƒแƒ“, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒ— แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ” แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒจแƒ˜:

# ะฟะตั€ะตะผะตะฝะฝะฐั ะฑะตะท ะฟั€ะพัั‚ั€ะฐะฝัั‚ะฒะฐ ะธะผั‘ะฝ
$var
# ะฟะตั€ะตะผะตะฝะฝะฐั ะฒ ะณะปะพะฑะฐะปัŒะฝะพะผ ะฟั€ะพัั‚ั€ะฐะฝัั‚ะฒะต ะธะผั‘ะฝ
$::var
# ะฟะตั€ะตะผะตะฝะฝะฐั ะฒ ะฟั€ะพัั‚ั€ะฐะฝัั‚ะฒะต ะธะผั‘ะฝ ะบะปะฐััะฐ
$classname::var
$::classname::var

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒ—แƒแƒœแƒฎแƒ›แƒ“แƒ”แƒ—, แƒ แƒแƒ› nginx แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒ–แƒ แƒชแƒ•แƒšแƒแƒ“แƒจแƒ˜แƒ $nginx_conf_source. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒšแƒแƒกแƒ˜ แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ:

class nginx_example {
    package { 'nginx':
        ensure => installed,
    }
    -> file { '/etc/nginx':
        ensure => directory,
        source => $nginx_conf_source,   # ะทะดะตััŒ ะธัะฟะพะปัŒะทัƒะตะผ ะฟะตั€ะตะผะตะฝะฝัƒัŽ ะฒะผะตัั‚ะพ ั„ะธะบัะธั€ะพะฒะฐะฝะฝะพะน ัั‚ั€ะพะบะธ
        recure => true,
        purge  => true,
        force  => true,
    }
    ~> service { 'nginx':
        ensure => running,
        enable => true,
    }
}

node 'server2.testdomain' {
    $nginx_conf_source = 'puppet:///modules/example/nginx-conf'
    include nginx_example
}

แƒ—แƒฃแƒ›แƒชแƒ, แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒชแƒฃแƒ“แƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ โ€žแƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒ แƒชแƒแƒ“แƒœแƒโ€œ, แƒ แƒแƒ› แƒกแƒแƒ“แƒฆแƒแƒช แƒ™แƒšแƒแƒกแƒจแƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒชแƒ•แƒšแƒแƒ“แƒ˜ แƒแƒ›แƒ แƒ—แƒฃ แƒ˜แƒ› แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ—. แƒ‘แƒ”แƒ•แƒ แƒแƒ“ แƒฃแƒคแƒ แƒ แƒกแƒฌแƒแƒ แƒ˜แƒ แƒแƒ› แƒชแƒแƒ“แƒœแƒ˜แƒก แƒ–แƒแƒ’แƒแƒ“แƒ˜ แƒคแƒแƒ แƒ›แƒ˜แƒ แƒ”แƒ‘แƒ - แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒ— แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜.

แƒ™แƒšแƒแƒกแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ แƒแƒ แƒ˜แƒก แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜ แƒ™แƒšแƒแƒกแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ™แƒšแƒแƒกแƒ˜แƒก แƒกแƒแƒ—แƒแƒฃแƒ แƒจแƒ˜ แƒ“แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜ แƒ™แƒšแƒแƒกแƒ˜แƒก แƒกแƒฎแƒ”แƒฃแƒšแƒจแƒ˜. แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒจแƒ˜ แƒ™แƒšแƒแƒกแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒก.

แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒงแƒ”แƒœแƒ“แƒ”แƒก แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ• แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒ–แƒ”. แƒ—แƒฃ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒก แƒแƒ  แƒแƒฅแƒ•แƒก แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒ“แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒ”แƒก แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ”แƒ•แƒก แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก.

แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒแƒขแƒแƒ แƒแƒ— แƒ™แƒšแƒแƒกแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒแƒงแƒ•แƒแƒœแƒ˜แƒšแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— แƒแƒ แƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜: แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜, แƒกแƒแƒญแƒ˜แƒ แƒ, แƒแƒ แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒ–แƒ, แƒฎแƒแƒšแƒ แƒ›แƒ”แƒแƒ แƒ”, แƒกแƒฃแƒ แƒ•แƒ˜แƒšแƒ˜แƒกแƒแƒ›แƒ”แƒ‘แƒ , แƒแƒ แƒ˜แƒก แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ nginx-แƒ˜แƒ— (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, Debian-แƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜ nginx, nginx-light, nginx-full).

# ะฟะตั€ะตะผะตะฝะฝั‹ะต ะพะฟะธัั‹ะฒะฐัŽั‚ัั ัั€ะฐะทัƒ ะฟะพัะปะต ะธะผะตะฝะธ ะบะปะฐััะฐ ะฒ ะบั€ัƒะณะปั‹ั… ัะบะพะฑะบะฐั…
class nginx_example (
  $conf_source,
  $package_name = 'nginx-light', # ะฟะฐั€ะฐะผะตั‚ั€ ัะพ ะทะฝะฐั‡ะตะฝะธะตะผ ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ
) {
  package { $package_name:
    ensure => installed,
  }
  -> file { '/etc/nginx':
    ensure  => directory,
    source  => $conf_source,
    recurse => true,
    purge   => true,
    force   => true,
  }
  ~> service { 'nginx':
    ensure => running,
    enable => true,
  }
}

node 'server2.testdomain' {
  # ะตัะปะธ ะผั‹ ั…ะพั‚ะธะผ ะทะฐะดะฐั‚ัŒ ะฟะฐั€ะฐะผะตั‚ั€ั‹ ะบะปะฐััะฐ, ั„ัƒะฝะบั†ะธั include ะฝะต ะฟะพะดะพะนะดั‘ั‚* โ€” ะฝัƒะถะฝะพ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ resource-style declaration
  # *ะฝะฐ ัะฐะผะพะผ ะดะตะปะต ะฟะพะดะพะนะดั‘ั‚, ะฝะพ ะฟั€ะพ ัั‚ะพ ั€ะฐััะบะฐะถัƒ ะฒ ัะปะตะดัƒัŽั‰ะตะน ัะตั€ะธะธ. ะšะปัŽั‡ะตะฒะพะต ัะปะพะฒะพ "Hiera".
  class { 'nginx_example':
    conf_source => 'puppet:///modules/example/nginx-conf',   # ะทะฐะดะฐั‘ะผ ะฟะฐั€ะฐะผะตั‚ั€ั‹ ะบะปะฐััะฐ ั‚ะพั‡ะฝะพ ั‚ะฐะบ ะถะต, ะบะฐะบ ะฟะฐั€ะฐะผะตั‚ั€ั‹ ะดะปั ะดั€ัƒะณะธั… ั€ะตััƒั€ัะพะฒ
  }
}

Puppet-แƒจแƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜ แƒ˜แƒ‘แƒ”แƒญแƒ“แƒ”แƒ‘แƒ. แƒญแƒแƒ›แƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒขแƒ˜แƒžแƒ˜. แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒกแƒ แƒ“แƒ แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ”แƒ‘แƒจแƒ˜ แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒแƒ“แƒแƒกแƒขแƒฃแƒ แƒ”แƒ‘แƒšแƒแƒ“. แƒ—แƒฃ แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒแƒ  แƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒš แƒขแƒ˜แƒžแƒก, แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ.

แƒขแƒ˜แƒžแƒ˜ แƒ˜แƒฌแƒ”แƒ แƒ”แƒ‘แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒฌแƒ˜แƒœ:

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

แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒ˜: แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก classname vs class{'classname':}

แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ™แƒšแƒแƒกแƒ˜ แƒแƒ แƒ˜แƒก แƒขแƒ˜แƒžแƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒ™แƒšแƒแƒกแƒ˜. แƒ แƒแƒ’แƒแƒ แƒช แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒกแƒฎแƒ•แƒ แƒขแƒ˜แƒžแƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜, แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒ”แƒ แƒ—แƒ˜ แƒ“แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ™แƒšแƒแƒกแƒ˜แƒก แƒแƒ แƒ˜ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ แƒ”แƒ แƒ—แƒกแƒ แƒ“แƒ แƒ˜แƒ›แƒแƒ•แƒ” แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ”.

แƒ—แƒฃ แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ— แƒ™แƒšแƒแƒกแƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒแƒก แƒ˜แƒ›แƒแƒ•แƒ” แƒ™แƒ•แƒแƒœแƒซแƒจแƒ˜ แƒแƒ แƒฏแƒ”แƒ  แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— class { 'classname':} (แƒแƒ แƒแƒ•แƒ˜แƒ—แƒแƒ แƒ˜ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ, แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒœ แƒ˜แƒ“แƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒ—), แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒ™แƒšแƒแƒกแƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒกแƒขแƒ˜แƒšแƒจแƒ˜, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— แƒ›แƒ˜แƒกแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒจแƒ˜.

แƒ—แƒฃแƒ›แƒชแƒ, แƒ—แƒฃ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— include, แƒ›แƒแƒจแƒ˜แƒœ แƒ™แƒšแƒแƒกแƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒฏแƒ”แƒ แƒแƒช แƒ’แƒกแƒฃแƒ แƒ—. แƒคแƒแƒฅแƒขแƒ˜แƒ แƒ แƒแƒ› include แƒแƒ แƒ˜แƒก แƒ˜แƒ“แƒ”แƒ›แƒžแƒแƒขแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก, แƒ“แƒแƒ”แƒ›แƒแƒขแƒ แƒ—แƒฃ แƒแƒ แƒ แƒ™แƒšแƒแƒกแƒ˜ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜. แƒ—แƒฃ แƒ™แƒšแƒแƒกแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜, แƒ˜แƒก แƒแƒ›แƒแƒขแƒ”แƒ‘แƒก แƒ›แƒแƒก แƒ“แƒ แƒ—แƒฃ แƒฃแƒ™แƒ•แƒ” แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก, แƒแƒ แƒแƒคแƒ”แƒ แƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ include แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ™แƒšแƒแƒกแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ™แƒšแƒแƒกแƒ˜แƒก แƒ“แƒ”แƒ™แƒšแƒแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒ แƒแƒก - แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒญแƒ˜แƒ แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒแƒ แƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒงแƒแƒ แƒแƒจแƒ˜ - Hiera แƒแƒœ ENC. แƒ›แƒแƒ— แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ›แƒแƒ›แƒ“แƒ”แƒ•แƒœแƒ แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘แƒ—.

แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก

แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ˜แƒœแƒ แƒ‘แƒšแƒแƒ™แƒจแƒ˜ แƒ˜แƒ—แƒฅแƒ•แƒ, แƒ”แƒ แƒ—แƒ˜ แƒ“แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ™แƒšแƒแƒกแƒ˜ แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒ”แƒ แƒ—แƒ–แƒ” แƒ›แƒ”แƒขแƒฏแƒ”แƒ  แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ”. แƒ—แƒฃแƒ›แƒชแƒ, แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ’แƒ”แƒซแƒšแƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ™แƒแƒ“แƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒ“แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ‘แƒšแƒแƒ™แƒ˜ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒ— แƒ˜แƒ›แƒแƒ•แƒ” แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ”. แƒกแƒฎแƒ•แƒ แƒกแƒ˜แƒขแƒงแƒ•แƒ”แƒ‘แƒ˜แƒ— แƒ แƒแƒ› แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒขแƒ˜แƒžแƒ˜.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, PHP แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ“แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“ Avito-แƒจแƒ˜ แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒก:

  1. แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ— แƒžแƒแƒ™แƒ”แƒขแƒ˜ แƒแƒ› แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒ—.
  2. แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜ แƒแƒ› แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.
  3. แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒกแƒ˜แƒ›แƒšแƒ˜แƒœแƒ™แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒกแƒ—แƒแƒœ php-fpm-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.
  4. แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒกแƒ˜แƒ›แƒ‘แƒแƒšแƒฃแƒ  แƒ‘แƒ›แƒฃแƒšแƒก php cli แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒแƒกแƒ”แƒ— แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ”แƒ‘แƒจแƒ˜, แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒ“แƒ˜แƒ–แƒแƒ˜แƒœแƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ (แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ, แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒฃแƒšแƒ˜ แƒขแƒ˜แƒžแƒ˜, แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒฃแƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒขแƒ˜แƒžแƒ˜). A Define แƒ™แƒšแƒแƒกแƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒ˜แƒก แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ”แƒ‘แƒ˜: แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜, แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ Define แƒแƒ แƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒขแƒ˜แƒžแƒ˜ แƒ“แƒ แƒแƒ แƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜; แƒ›แƒ”แƒแƒ แƒ”แƒช, แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒแƒก แƒแƒฅแƒ•แƒก แƒ˜แƒ›แƒžแƒšแƒ˜แƒชแƒ˜แƒขแƒฃแƒ แƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ $title, แƒกแƒแƒ“แƒแƒช แƒ˜แƒฌแƒ”แƒ แƒ”แƒ‘แƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒ”แƒ™แƒšแƒแƒ แƒแƒชแƒ˜แƒ˜แƒกแƒแƒก. แƒ˜แƒกแƒ”แƒ•แƒ”, แƒ แƒแƒ’แƒแƒ แƒช แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒฏแƒ”แƒ  แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜, แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒแƒช แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ.

แƒ’แƒแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ PHP แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒ—:

define php74::module (
  $php_module_name = $title,
  $php_package_name = "php7.4-${title}",
  $version = 'installed',
  $priority = '20',
  $data = "extension=${title}.son",
  $php_module_path = '/etc/php/7.4/mods-available',
) {
  package { $php_package_name:
    ensure          => $version,
    install_options => ['-o', 'DPkg::NoTriggers=true'],  # ั‚ั€ะธะณะณะตั€ั‹ ะดะตะฑะธะฐะฝะพะฒัะบะธั… php-ะฟะฐะบะตั‚ะพะฒ ัะฐะผะธ ัะพะทะดะฐัŽั‚ ัะธะผะปะธะฝะบะธ ะธ ะฟะตั€ะตะทะฐะฟัƒัะบะฐัŽั‚ ัะตั€ะฒะธั php-fpm - ะฝะฐะผ ัั‚ะพ ะฝะต ะฝัƒะถะฝะพ, ั‚ะฐะบ ะบะฐะบ ะธ ัะธะผะปะธะฝะบะฐะผะธ, ะธ ัะตั€ะฒะธัะพะผ ะผั‹ ัƒะฟั€ะฐะฒะปัะตะผ ั ะฟะพะผะพั‰ัŒัŽ Puppet
  }
  -> file { "${php_module_path}/${php_module_name}.ini":
    ensure  => $ensure,
    content => $data,
  }
  file { "/etc/php/7.4/cli/conf.d/${priority}-${php_module_name}.ini":
    ensure  => link,
    target  => "${php_module_path}/${php_module_name}.ini",
  }
  file { "/etc/php/7.4/fpm/conf.d/${priority}-${php_module_name}.ini":
    ensure  => link,
    target  => "${php_module_path}/${php_module_name}.ini",
  }
}

node server3.testdomain {
  php74::module { 'sqlite3': }
  php74::module { 'amqp': php_package_name => 'php-amqp' }
  php74::module { 'msgpack': priority => '10' }
}

แƒ“แƒฃแƒ‘แƒšแƒ˜แƒ™แƒแƒขแƒ˜ แƒ“แƒ”แƒ™แƒšแƒแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒก แƒฃแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒกแƒ˜ แƒ’แƒ–แƒ แƒแƒ แƒ˜แƒก Define-แƒจแƒ˜. แƒ”แƒก แƒฎแƒ“แƒ”แƒ‘แƒ แƒ˜แƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ—แƒฃ แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒ‘แƒแƒก แƒแƒฅแƒ•แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ•แƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ— แƒ“แƒ แƒแƒ แƒ˜แƒก แƒแƒ› แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒ˜ แƒแƒœ แƒ›แƒ”แƒขแƒ˜ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ”.

แƒแƒ›แƒ˜แƒกแƒ’แƒแƒœ แƒ—แƒแƒ•แƒ˜แƒก แƒ“แƒแƒชแƒ•แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ: แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ— แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒงแƒ•แƒ”แƒšแƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒก แƒฃแƒœแƒ“แƒ แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒ˜แƒ›แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— $title. แƒแƒšแƒขแƒ”แƒ แƒœแƒแƒขแƒ˜แƒ•แƒ แƒแƒ แƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒแƒžแƒแƒขแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ; แƒฃแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒ‘แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒ”แƒ แƒ—แƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜ แƒชแƒแƒšแƒ™แƒ” แƒ™แƒšแƒแƒกแƒจแƒ˜ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒขแƒแƒœแƒแƒ— แƒ“แƒ แƒ”แƒก แƒ™แƒšแƒแƒกแƒ˜ แƒจแƒ”แƒ˜แƒขแƒแƒœแƒแƒ— แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒแƒจแƒ˜ - แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒจแƒ˜. include แƒฃแƒซแƒšแƒฃแƒ แƒ˜.

แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒ˜แƒ›แƒžแƒแƒขแƒ”แƒœแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒฆแƒฌแƒ”แƒ•แƒ˜แƒก แƒกแƒฎแƒ•แƒ แƒ’แƒ–แƒ”แƒ‘แƒ˜, แƒ™แƒ”แƒ แƒซแƒแƒ“ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ defined ะธ ensure_resources, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ›แƒแƒ›แƒ“แƒ”แƒ•แƒœแƒ แƒ”แƒžแƒ˜แƒ–แƒแƒ“แƒจแƒ˜ แƒ›แƒแƒ’แƒ˜แƒงแƒ•แƒ”แƒ‘แƒ˜แƒ—.

แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ”แƒœ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฌแƒ”แƒกแƒ”แƒ‘แƒก แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒแƒจแƒ˜:

  • แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ แƒ™แƒšแƒแƒกแƒ–แƒ”/define แƒแƒ›แƒแƒขแƒ”แƒ‘แƒก แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒก แƒ™แƒšแƒแƒกแƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ–แƒ”/define;
  • แƒ™แƒšแƒแƒกแƒ˜แƒก/แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ˜แƒก แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ แƒแƒ›แƒแƒขแƒ”แƒ‘แƒก แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ™แƒšแƒแƒกแƒ˜แƒก/แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒก;
  • class/define แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ แƒแƒชแƒœแƒแƒ‘แƒ”แƒ‘แƒก แƒ™แƒšแƒแƒกแƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒก/define;
  • class/define แƒ’แƒแƒ›แƒแƒฌแƒ”แƒ แƒ แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ”แƒ แƒก แƒ™แƒšแƒแƒกแƒ˜แƒก/define-แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒก.

แƒžแƒ˜แƒ แƒแƒ‘แƒ˜แƒ—แƒ˜ แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒกแƒ”แƒšแƒ”แƒฅแƒขแƒแƒ แƒ”แƒ‘แƒ˜

แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ แƒแƒฅ.

if

แƒแƒฅ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ:

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

แƒ—แƒฃ แƒแƒ 

แƒ—แƒฃ แƒแƒ  แƒแƒ แƒ˜แƒก if แƒกแƒแƒžแƒ˜แƒ แƒ˜แƒกแƒžแƒ˜แƒ แƒ: แƒ™แƒแƒ“แƒ˜แƒก แƒ‘แƒšแƒแƒ™แƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒ, แƒ—แƒฃ แƒ’แƒแƒ›แƒแƒ—แƒฅแƒ›แƒ แƒ›แƒชแƒ“แƒแƒ แƒ˜แƒ.

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

แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜

แƒแƒฅแƒแƒช แƒแƒ แƒแƒคแƒ”แƒ แƒ˜แƒ แƒ แƒ—แƒฃแƒšแƒ˜. แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒแƒ“ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ แƒ”แƒ’แƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜ (แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ”แƒ‘แƒ˜, แƒ แƒ˜แƒชแƒฎแƒ•แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ.แƒจ.), แƒ แƒ”แƒ’แƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒœแƒแƒ—แƒฅแƒ•แƒแƒ›แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜.

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

แƒกแƒ”แƒšแƒ”แƒฅแƒขแƒแƒ แƒ”แƒ‘แƒ˜

แƒกแƒ”แƒšแƒ”แƒฅแƒขแƒแƒ แƒ˜ แƒแƒ แƒ˜แƒก แƒ”แƒœแƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ case, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ™แƒแƒ“แƒ˜แƒก แƒ‘แƒšแƒแƒ™แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“, แƒ˜แƒก แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒก.

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

แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜

แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒ›แƒชแƒ˜แƒ แƒ”แƒ, แƒ˜แƒก แƒแƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒ”แƒ แƒ— แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒจแƒ˜. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒแƒช แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒข แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒก แƒแƒฆแƒ•แƒฌแƒ”แƒ แƒ—, แƒ›แƒ˜แƒ— แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜ แƒ™แƒšแƒแƒกแƒ˜ แƒ“แƒ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒ แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒจแƒ˜, แƒ˜แƒก แƒ˜แƒ–แƒ แƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒฃแƒฎแƒ”แƒ แƒฎแƒฃแƒšแƒ˜ แƒฎแƒ“แƒ”แƒ‘แƒ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ.

แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒฎแƒ”แƒšแƒแƒฎแƒแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ - แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒงแƒ•แƒ”แƒšแƒ แƒ™แƒแƒ“แƒ˜ แƒ”แƒ แƒ— แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒจแƒ˜แƒ, แƒซแƒœแƒ”แƒšแƒ˜แƒ แƒแƒ› แƒ™แƒแƒ“แƒ˜แƒก แƒกแƒฎแƒ•แƒ”แƒ‘แƒ—แƒแƒœ แƒ’แƒแƒ–แƒ˜แƒแƒ แƒ”แƒ‘แƒ. แƒแƒ› แƒแƒ แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒญแƒ แƒ”แƒšแƒแƒ“, Puppet-แƒก แƒแƒฅแƒ•แƒก แƒ”แƒ แƒ—แƒ”แƒฃแƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ”แƒฌแƒแƒ“แƒ”แƒ‘แƒ แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜.

แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜ - แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒ›แƒžแƒšแƒ”แƒฅแƒขแƒ˜, แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒ—แƒแƒฏแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒก แƒ”แƒ แƒ—แƒ”แƒฃแƒšแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒชแƒแƒšแƒ™แƒ” แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜. แƒกแƒฎแƒ•แƒ แƒกแƒ˜แƒขแƒงแƒ•แƒ”แƒ‘แƒ˜แƒ— แƒ แƒแƒ› แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒแƒ แƒ˜แƒก แƒ›แƒแƒ แƒ˜แƒแƒœแƒ”แƒขแƒฃแƒšแƒ˜ แƒšแƒแƒ’แƒ˜แƒ™แƒ˜แƒก แƒ“แƒแƒ›แƒแƒฃแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก nginx-แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒ“แƒ แƒ›แƒแƒกแƒจแƒ˜ แƒ˜แƒงแƒแƒก แƒ˜แƒก, แƒ แƒแƒช แƒ“แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒก แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ nginx-แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒœ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก PHP-แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒ“แƒ แƒ.แƒจ.

แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ”แƒ แƒ—แƒ›แƒแƒœแƒ”แƒ—แƒ–แƒ” แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜. แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒฆแƒ˜แƒ แƒกแƒแƒชแƒแƒ•แƒ˜ - แƒ—แƒแƒฏแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒงแƒแƒšแƒ‘แƒ”แƒ‘แƒ.

แƒ›แƒแƒ แƒ˜แƒแƒœแƒ”แƒขแƒฃแƒš แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ root แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒก แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒฅแƒ•แƒ”แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜. แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ— แƒแƒ แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ˜ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒกแƒฅแƒ”แƒ›แƒ - แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜, แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜, แƒจแƒแƒ‘แƒšแƒแƒœแƒ”แƒ‘แƒ˜, lib แƒ“แƒ แƒ.แƒจ.

แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ แƒ›แƒแƒ“แƒฃแƒšแƒจแƒ˜

แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒคแƒ”แƒกแƒ•แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒ“แƒ”แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒ”แƒ‘แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒ—แƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒ—:

  • manifests - แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒ”แƒ‘แƒก
  • files - แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒก
  • templates - แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒจแƒแƒ‘แƒšแƒแƒœแƒ”แƒ‘แƒก
  • lib - แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก Ruby แƒ™แƒแƒ“แƒก

แƒ”แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ› แƒ“แƒ แƒแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ.

แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒจแƒ˜

แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ แƒแƒฅ.

แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜ (แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒ˜, แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ”แƒ‘แƒ˜) แƒ›แƒแƒ“แƒฃแƒšแƒจแƒ˜ แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒกแƒแƒฎแƒ”แƒšแƒ“แƒ”แƒก แƒ˜แƒกแƒ”, แƒ แƒแƒ’แƒแƒ แƒช แƒ’แƒกแƒฃแƒ แƒ—. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ แƒ˜ แƒ›แƒ˜แƒ›แƒแƒฌแƒ”แƒ แƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒกแƒ แƒ“แƒ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒก แƒจแƒแƒ แƒ˜แƒก, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช Puppet แƒ”แƒซแƒ”แƒ‘แƒก แƒแƒ› แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒแƒก. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ“แƒแƒแƒ แƒฆแƒ•แƒ”แƒ•แƒ— แƒ“แƒแƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒก, แƒ›แƒแƒจแƒ˜แƒœ Puppet แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ•แƒ”แƒ  แƒ˜แƒžแƒแƒ•แƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒแƒก แƒ“แƒ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก.

แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ:

  • แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜. แƒ—แƒฃ แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ foo, แƒ›แƒแƒจแƒ˜แƒœ แƒ›แƒแƒกแƒจแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ“แƒแƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ foo::<anything>, แƒแƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ foo.
  • แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ— แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒคแƒแƒ˜แƒšแƒจแƒ˜ init.pp.
  • แƒกแƒฎแƒ•แƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ“แƒแƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒฅแƒ”แƒ›แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜แƒ:
    • แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒžแƒ แƒ”แƒคแƒ˜แƒฅแƒกแƒ˜ แƒ’แƒแƒฃแƒฅแƒ›แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ
    • แƒงแƒ•แƒ”แƒšแƒ แƒแƒ แƒ›แƒแƒ’แƒ˜ แƒแƒ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜, แƒแƒกแƒ”แƒ—แƒ˜แƒก แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒจแƒ”แƒ˜แƒชแƒ•แƒšแƒ”แƒ‘แƒ แƒจแƒขแƒ แƒ˜แƒฎแƒ”แƒ‘แƒ˜แƒ—
    • แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ .pp

แƒ“แƒ”แƒ›แƒแƒœแƒกแƒขแƒ แƒ˜แƒ แƒ”แƒ‘แƒแƒก แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒ—. แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ•แƒฌแƒ”แƒ  แƒ›แƒแƒ“แƒฃแƒšแƒก nginx. แƒ˜แƒ’แƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒก:

  • แƒ™แƒšแƒแƒกแƒ˜ nginx แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒจแƒ˜ init.pp;
  • แƒ™แƒšแƒแƒกแƒ˜ nginx::service แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒจแƒ˜ service.pp;
  • แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ nginx::server แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒจแƒ˜ server.pp;
  • แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ nginx::server::location แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒจแƒ˜ server/location.pp.

Templates

แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒ—แƒฅแƒ•แƒ”แƒœ แƒ—แƒ•แƒ˜แƒ—แƒแƒœ แƒ˜แƒชแƒ˜แƒ—, แƒ แƒ แƒแƒ แƒ˜แƒก แƒจแƒแƒ‘แƒšแƒแƒœแƒ”แƒ‘แƒ˜; แƒ›แƒ” แƒ›แƒแƒ— แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒ  แƒแƒฆแƒ•แƒฌแƒ”แƒ  แƒแƒฅ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒแƒ•แƒขแƒแƒ•แƒ”แƒ‘ แƒ‘แƒ›แƒฃแƒšแƒ˜ แƒ•แƒ˜แƒ™แƒ˜แƒžแƒ”แƒ“แƒ˜แƒแƒ–แƒ”.

แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— แƒจแƒแƒ‘แƒšแƒแƒœแƒ”แƒ‘แƒ˜: แƒจแƒแƒ‘แƒšแƒแƒœแƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ•แƒ“แƒ”แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— template, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ’แƒแƒ˜แƒ•แƒšแƒ˜แƒก แƒ’แƒ–แƒ แƒจแƒแƒ‘แƒšแƒแƒœแƒ˜แƒกแƒ™แƒ”แƒœ. แƒขแƒ˜แƒžแƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“ content. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒแƒกแƒ”:

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

แƒ‘แƒ˜แƒšแƒ˜แƒ™แƒ˜แƒก แƒœแƒแƒฎแƒ•แƒ <modulename>/<filename> แƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒแƒ‘แƒก แƒคแƒแƒ˜แƒšแƒก <rootdir>/modules/<modulename>/templates/<filename>.

แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ inline_template - แƒ˜แƒก แƒ˜แƒฆแƒ”แƒ‘แƒก แƒจแƒแƒ‘แƒšแƒแƒœแƒ˜แƒก แƒขแƒ”แƒฅแƒกแƒขแƒก แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ— แƒ“แƒ แƒแƒ แƒ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒก.

แƒจแƒแƒ‘แƒšแƒแƒœแƒ”แƒ‘แƒจแƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ—แƒแƒฏแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒชแƒ•แƒšแƒแƒ“แƒ˜ แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒจแƒ˜.

แƒ—แƒแƒฏแƒ˜แƒœแƒ แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก แƒจแƒแƒ‘แƒšแƒแƒœแƒ”แƒ‘แƒก ERB แƒ“แƒ EPP แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜:

แƒ›แƒแƒ™แƒšแƒ”แƒ“ ERB-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘

แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ”แƒ‘แƒ˜:

  • <%= ะ’ะซะ ะะ–ะ•ะะ˜ะ• %> - แƒฉแƒแƒ“แƒ”แƒ— แƒ’แƒแƒ›แƒแƒฎแƒแƒขแƒ•แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ
  • <% ะ’ะซะ ะะ–ะ•ะะ˜ะ• %> โ€” แƒ’แƒแƒ›แƒแƒ—แƒ•แƒแƒšแƒ”แƒ— แƒ’แƒแƒ›แƒแƒฎแƒแƒขแƒ•แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ (แƒ›แƒ˜แƒกแƒ˜ แƒฉแƒแƒกแƒ›แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”). แƒžแƒ˜แƒ แƒแƒ‘แƒ˜แƒ—แƒ˜ แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜ (แƒ—แƒฃ) แƒ“แƒ แƒ›แƒแƒ แƒงแƒฃแƒŸแƒ”แƒ‘แƒ˜ (แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜) แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒ›แƒ˜แƒ“แƒ˜แƒก แƒแƒฅ.
  • <%# ะšะžะœะœะ•ะะขะะ ะ˜ะ™ %>

ERB-แƒจแƒ˜ แƒ’แƒแƒ›แƒแƒœแƒแƒ—แƒฅแƒ•แƒแƒ›แƒ”แƒ‘แƒ˜ แƒ˜แƒฌแƒ”แƒ แƒ”แƒ‘แƒ Ruby-แƒจแƒ˜ (ERB แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒ แƒ˜แƒก Embedded Ruby).

แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒ˜แƒก แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— @ แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ–แƒ”. แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒแƒ›แƒแƒ˜แƒฆแƒแƒ— แƒฎแƒแƒ–แƒ˜แƒก แƒฌแƒงแƒ•แƒ”แƒขแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ“แƒแƒฎแƒฃแƒ แƒ•แƒ˜แƒก แƒขแƒ”แƒ’แƒ˜ -%>.

แƒจแƒแƒ‘แƒšแƒแƒœแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜

แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ•แƒฌแƒ”แƒ  แƒ›แƒแƒ“แƒฃแƒšแƒก ZooKeeper-แƒ˜แƒก แƒ’แƒแƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ‘แƒšแƒแƒ“. แƒ™แƒšแƒแƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ›แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“, แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ:

class zookeeper::configure (
  Array[String] $nodes,
  Integer $port_client,
  Integer $port_quorum,
  Integer $port_leader,
  Hash[String, Any] $properties,
  String $datadir,
) {
  file { '/etc/zookeeper/conf/zoo.cfg':
    ensure  => present,
    content => template('zookeeper/zoo.cfg.erb'),
  }
}

แƒ“แƒ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒจแƒแƒ‘แƒšแƒแƒœแƒ˜ zoo.cfg.erb - แฒ˜แƒกแƒ”:

<% if @nodes.length > 0 -%>
<% @nodes.each do |node, id| -%>
server.<%= id %>=<%= node %>:<%= @port_leader %>:<%= @port_quorum %>;<%= @port_client %>
<% end -%>
<% end -%>

dataDir=<%= @datadir %>

<% @properties.each do |k, v| -%>
<%= k %>=<%= v %>
<% end -%>

แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜

แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒ แƒฎแƒ“แƒ”แƒ‘แƒ แƒแƒ›แƒŸแƒแƒ›แƒแƒ“ แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ”. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ˜แƒ›แƒ˜แƒกแƒ“แƒ แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒ—แƒฃ แƒ แƒ แƒแƒ แƒ˜แƒก Debian แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒแƒ— แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒแƒœ แƒกแƒฎแƒ•แƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒ. แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฎแƒ”แƒšแƒ˜แƒ—, แƒ’แƒแƒ“แƒแƒฌแƒ”แƒ แƒ แƒ•แƒšแƒ˜แƒœแƒ“แƒ”แƒ‘แƒ, แƒ—แƒฃ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜ แƒ˜แƒชแƒ•แƒšแƒ”แƒ‘แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒ”แƒ แƒ˜แƒแƒ–แƒฃแƒšแƒ˜ แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ; แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ‘แƒ”แƒ•แƒ แƒแƒ“ แƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ˜แƒ.

แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒฆแƒ”แƒ‘แƒแƒ“ แƒ—แƒแƒฏแƒ˜แƒœแƒแƒก แƒแƒฅแƒ•แƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜ แƒ”แƒฌแƒแƒ“แƒ”แƒ‘แƒ. แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜ - แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒ”แƒ‘แƒจแƒ˜ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ— แƒ’แƒšแƒแƒ‘แƒแƒšแƒฃแƒ  แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฐแƒแƒกแƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜, แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ, แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜แƒก แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ, แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ, แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ แƒ“แƒ แƒ›แƒแƒ—แƒ˜ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒกแƒฎแƒ•แƒ. แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒ”แƒ‘แƒกแƒ แƒ“แƒ แƒจแƒแƒ‘แƒšแƒแƒœแƒ”แƒ‘แƒจแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜.

แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜:

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

แƒคแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒแƒ“ แƒ แƒแƒ› แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒคแƒแƒฅแƒขแƒก แƒแƒฅแƒ•แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ (แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜) แƒ“แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ (แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜: แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ”แƒ‘แƒ˜, แƒ›แƒแƒกแƒ˜แƒ•แƒ”แƒ‘แƒ˜, แƒšแƒ”แƒฅแƒกแƒ˜แƒ™แƒแƒœแƒ”แƒ‘แƒ˜). แƒญแƒแƒ›แƒ” แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜. แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒฌแƒ”แƒ แƒแƒ— แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜. แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒแƒ“ Ruby-แƒจแƒ˜แƒแƒœ แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“แƒ˜ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜. แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜ แƒ˜แƒงแƒแƒก แƒคแƒแƒ แƒ›แƒ˜แƒ— แƒขแƒ”แƒฅแƒกแƒขแƒฃแƒ แƒ˜ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒ— แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ–แƒ”.

แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒ แƒแƒก แƒ›แƒแƒ แƒ˜แƒแƒœแƒ”แƒขแƒฃแƒšแƒ˜ แƒแƒ’แƒ”แƒœแƒขแƒ˜ แƒฏแƒ”แƒ  แƒแƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ› แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ”แƒšแƒก pappetserver-แƒ“แƒแƒœ แƒ™แƒ•แƒแƒœแƒซแƒจแƒ˜, แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒแƒช แƒ˜แƒก แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒ›แƒแƒ— แƒ“แƒ แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒก แƒจแƒ”แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒฃแƒš แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”; แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒ™แƒแƒขแƒแƒšแƒแƒ’แƒ˜แƒก แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒแƒก.

แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“แƒ˜ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—

แƒแƒกแƒ”แƒ—แƒ˜ แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜ แƒ›แƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒจแƒ˜ facts.d. แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“แƒ˜. แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒ›แƒแƒ— แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒแƒฌแƒแƒ“แƒแƒœ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒš แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ–แƒ” YAML แƒแƒœ key=value แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜.

แƒแƒ  แƒ“แƒแƒ’แƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒ”แƒ—, แƒ แƒแƒ› แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜ แƒ”แƒฎแƒ”แƒ‘แƒ แƒงแƒ•แƒ”แƒšแƒ แƒ™แƒ•แƒแƒœแƒซแƒก, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ‘แƒก poppet แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ–แƒ”แƒ“แƒแƒช แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ˜. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒจแƒ˜ แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ˜แƒ—, แƒ แƒแƒ› แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒงแƒ•แƒ”แƒšแƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒ“แƒ แƒคแƒแƒ˜แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒคแƒแƒฅแƒขแƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

#!/bin/sh
echo "testfact=success"
#!/bin/sh
echo '{"testyamlfact":"success"}'

แƒšแƒแƒšแƒ˜แƒก แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜

แƒแƒกแƒ”แƒ—แƒ˜ แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜ แƒ›แƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒจแƒ˜ lib/facter.

# ะฒัั‘ ะฝะฐั‡ะธะฝะฐะตั‚ัั ั ะฒั‹ะทะพะฒะฐ ั„ัƒะฝะบั†ะธะธ Facter.add ั ะธะผะตะฝะตะผ ั„ะฐะบั‚ะฐ ะธ ะฑะปะพะบะพะผ ะบะพะดะฐ
Facter.add('ladvd') do
# ะฒ ะฑะปะพะบะฐั… confine ะพะฟะธัั‹ะฒะฐัŽั‚ัั ัƒัะปะพะฒะธั ะฟั€ะธะผะตะฝะธะผะพัั‚ะธ ั„ะฐะบั‚ะฐ โ€” ะบะพะด ะฒะฝัƒั‚ั€ะธ ะฑะปะพะบะฐ ะดะพะปะถะตะฝ ะฒะตั€ะฝัƒั‚ัŒ true, ะธะฝะฐั‡ะต ะทะฝะฐั‡ะตะฝะธะต ั„ะฐะบั‚ะฐ ะฝะต ะฒั‹ั‡ะธัะปัะตั‚ัั ะธ ะฝะต ะฒะพะทะฒั€ะฐั‰ะฐะตั‚ัั
  confine do
    Facter::Core::Execution.which('ladvdc') # ะฟั€ะพะฒะตั€ะธะผ, ั‡ั‚ะพ ะฒ PATH ะตัั‚ัŒ ั‚ะฐะบะพะน ะธัะฟะพะปะฝัะตะผั‹ะน ั„ะฐะนะป
  end
  confine do
    File.socket?('/var/run/ladvd.sock') # ะฟั€ะพะฒะตั€ะธะผ, ั‡ั‚ะพ ะตัั‚ัŒ ั‚ะฐะบะพะน UNIX-domain socket
  end
# ะฒ ะฑะปะพะบะต setcode ะฟั€ะพะธัั…ะพะดะธั‚ ัะพะฑัั‚ะฒะตะฝะฝะพ ะฒั‹ั‡ะธัะปะตะฝะธะต ะทะฝะฐั‡ะตะฝะธั ั„ะฐะบั‚ะฐ
  setcode do
    hash = {}
    if (out = Facter::Core::Execution.execute('ladvdc -b'))
      out.split.each do |l|
        line = l.split('=')
        next if line.length != 2
        name, value = line
        hash[name.strip.downcase.tr(' ', '_')] = value.strip.chomp(''').reverse.chomp(''').reverse
      end
    end
    hash  # ะทะฝะฐั‡ะตะฝะธะต ะฟะพัะปะตะดะฝะตะณะพ ะฒั‹ั€ะฐะถะตะฝะธั ะฒ ะฑะปะพะบะต setcode ัะฒะปัะตั‚ัั ะทะฝะฐั‡ะตะฝะธะตะผ ั„ะฐะบั‚ะฐ
  end
end

แƒขแƒ”แƒฅแƒกแƒขแƒ˜แƒก แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜

แƒแƒกแƒ”แƒ—แƒ˜ แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜ แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ–แƒ” /etc/facter/facts.d แƒซแƒ•แƒ”แƒš แƒ—แƒแƒฏแƒ˜แƒœแƒแƒจแƒ˜ แƒแƒœ /etc/puppetlabs/facts.d แƒแƒฎแƒแƒš แƒ—แƒแƒฏแƒ˜แƒœแƒแƒจแƒ˜.

examplefact=examplevalue
---
examplefact2: examplevalue2
anotherfact: anothervalue

แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒแƒฎแƒ•แƒ”แƒ“แƒ แƒ

แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒ˜แƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒ˜ แƒ’แƒ–แƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก:

  • แƒšแƒ”แƒฅแƒกแƒ˜แƒ™แƒแƒœแƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ— $facts: $facts['fqdn'];
  • แƒคแƒแƒฅแƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒแƒ“: $fqdn.

แƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ˜แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒšแƒ”แƒฅแƒกแƒ˜แƒ™แƒแƒœแƒ˜ $facts, แƒแƒœ แƒ™แƒ˜แƒ“แƒ”แƒ• แƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ˜, แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ— แƒ’แƒšแƒแƒ‘แƒแƒšแƒฃแƒ แƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ” ($::facts).

แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜.

แƒฉแƒแƒ›แƒแƒœแƒขแƒแƒŸแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜

แƒ’แƒแƒ แƒ“แƒ แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜แƒกแƒ, แƒแƒ แƒ˜แƒก แƒแƒกแƒ”แƒ•แƒ” แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ˜, แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ แƒ’แƒšแƒแƒ‘แƒแƒšแƒฃแƒ  แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜.

  • แƒกแƒแƒœแƒ“แƒ แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜ - แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒกแƒ”แƒ แƒ—แƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ˜แƒ“แƒแƒœ (แƒ แƒแƒ“แƒ’แƒแƒœ แƒกแƒ”แƒ แƒ—แƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ˜ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒ’แƒแƒ˜แƒชแƒ”แƒ›แƒ poppet แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”, แƒแƒ’แƒ”แƒœแƒขแƒก แƒแƒ  แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ›แƒ˜แƒ˜แƒฆแƒแƒก แƒ“แƒ แƒจแƒ”แƒชแƒ•แƒแƒšแƒแƒก แƒ›แƒ˜แƒกแƒ˜ แƒกแƒ”แƒ แƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ˜, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜ "แƒกแƒแƒœแƒ“แƒ"): แƒกแƒ”แƒ แƒ—แƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜, แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒฐแƒแƒกแƒขแƒ˜ แƒ“แƒ แƒ“แƒแƒ›แƒ”แƒœแƒ˜, แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒกแƒ”แƒ แƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ˜แƒกแƒ’แƒแƒœ.
  • แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜ โ€” แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜ โ€” แƒ•แƒ”แƒ แƒกแƒ˜แƒ, แƒกแƒแƒฎแƒ”แƒšแƒ˜, แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก IP แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜, แƒ’แƒแƒ แƒ”แƒ›แƒ.
  • แƒแƒ’แƒ”แƒœแƒขแƒ˜แƒก แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜ - แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒฃแƒจแƒฃแƒแƒšแƒแƒ“ แƒ›แƒแƒ แƒ˜แƒแƒœแƒ”แƒขแƒฃแƒšแƒ˜ แƒแƒ’แƒ”แƒœแƒขแƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ“แƒ แƒแƒ แƒ แƒคแƒแƒฅแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— - แƒกแƒ”แƒ แƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜, แƒแƒ’แƒ”แƒœแƒขแƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ, แƒ›แƒแƒ แƒ˜แƒแƒœแƒ”แƒขแƒฃแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ.
  • แƒกแƒแƒ›แƒแƒ’แƒ˜แƒกแƒขแƒ แƒ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜ - Pappetmaster แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜ (sic!). แƒ”แƒก แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒ, แƒ แƒแƒช แƒจแƒ˜แƒ’แƒœแƒ˜แƒ— แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜, แƒžแƒšแƒฃแƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ.
  • แƒจแƒ”แƒ›แƒ“แƒ’แƒ”แƒœแƒ”แƒšแƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜ - แƒจแƒ”แƒ›แƒ“แƒ’แƒ”แƒœแƒ”แƒšแƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒ‘แƒจแƒ˜: แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒ“แƒ แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒฌแƒ•แƒ“แƒแƒ›แƒ แƒ˜แƒฅแƒœแƒ แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ–แƒ”. แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ˜แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒšแƒแƒ“, แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒžแƒ˜แƒ แƒแƒ“แƒ˜ แƒ’แƒแƒ™แƒ•แƒ”แƒ—แƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒแƒ  แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒกแƒฎแƒ•แƒ แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ.

แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ 1: แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒฃแƒจแƒ•แƒแƒ— แƒ“แƒ แƒ’แƒแƒ›แƒแƒ แƒ—แƒแƒ— แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜?

แƒกแƒขแƒแƒขแƒ˜แƒ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ›แƒแƒ แƒ˜แƒแƒœแƒ”แƒขแƒฃแƒšแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ‘แƒ”แƒ•แƒ  แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒแƒ  แƒ’แƒ•แƒ˜แƒ—แƒฎแƒ แƒ, แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒฃแƒจแƒ•แƒแƒ— แƒ”แƒก แƒ™แƒแƒ“แƒ˜. แƒ˜แƒกแƒ”, แƒ—แƒแƒ•แƒก แƒ•แƒ˜แƒกแƒฌแƒแƒ แƒ”แƒ‘.

แƒแƒ’แƒ”แƒœแƒขแƒ˜ แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ Puppet-แƒ˜แƒก แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฃแƒ›แƒ”แƒขแƒ”แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ“แƒแƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒช.

แƒแƒ’แƒ”แƒœแƒขแƒ˜

แƒงแƒแƒ•แƒ”แƒš แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ›แƒ”-XNUMX แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒ“แƒแƒœ, แƒ›แƒแƒ แƒ˜แƒแƒœแƒ”แƒขแƒฃแƒšแƒ˜ แƒแƒ’แƒ”แƒœแƒขแƒ˜แƒก แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜ แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ—แƒแƒฏแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒชแƒแƒ•แƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒแƒก (แƒ แƒฃแƒ‘แƒ˜ แƒ“แƒ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒซแƒ•แƒ˜แƒ แƒคแƒแƒกแƒ˜ แƒฅแƒ•แƒ”แƒ‘แƒ˜), แƒแƒกแƒ” แƒ แƒแƒ›, แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ”แƒ”แƒ‘แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก (แƒ›แƒ” แƒ•แƒกแƒแƒฃแƒ‘แƒ แƒแƒ‘ Debian-แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒš แƒ“แƒ˜แƒกแƒขแƒ แƒ˜แƒ‘แƒฃแƒชแƒ˜แƒแƒ–แƒ” - แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— 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.

แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜

แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒแƒ  แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ• pappetserver-แƒ˜แƒก แƒกแƒ แƒฃแƒš แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก แƒ“แƒ แƒ›แƒแƒกแƒ–แƒ” แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒแƒก; แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ•แƒ˜แƒขแƒงแƒ•แƒ˜, แƒ แƒแƒ› แƒงแƒฃแƒ—แƒ˜แƒ“แƒแƒœ แƒแƒ แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒแƒ“ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ  แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒก แƒ›แƒชแƒ˜แƒ แƒ” แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒ— แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒ“. แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜ (แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒแƒกแƒแƒ›แƒ“แƒ”). แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒฃแƒคแƒ แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒก แƒ“แƒแƒ แƒ”แƒ’แƒฃแƒšแƒ˜แƒ แƒ”แƒ‘แƒแƒก - แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒแƒ“, แƒ—แƒแƒฏแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ แƒฃแƒจแƒ•แƒ”แƒ‘แƒก แƒแƒ แƒแƒฃแƒ›แƒ”แƒขแƒ”แƒก แƒแƒ—แƒฎ แƒ›แƒฃแƒจแƒแƒ™แƒก, แƒฃแƒคแƒ แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ›แƒแƒ—แƒ˜ แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒก แƒ’แƒแƒ–แƒ แƒ“แƒ แƒ“แƒ แƒแƒ  แƒ“แƒแƒ’แƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒ”แƒ— แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒšแƒ˜แƒ›แƒ˜แƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ–แƒ แƒ“แƒ, แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ แƒฃแƒ›แƒ”แƒขแƒ”แƒก แƒ“แƒ แƒแƒก แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒก แƒœแƒแƒ’แƒแƒ•แƒก.

แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ•แƒ แƒชแƒ”แƒšแƒ”แƒ‘แƒ - แƒ—แƒฃ แƒ”แƒก แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ“แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“, แƒ›แƒแƒจแƒ˜แƒœ แƒœแƒแƒฎแƒ”แƒ— (r10k)[https://github.com/puppetlabs/r10k], แƒ›แƒชแƒ˜แƒ แƒ” แƒ“แƒแƒœแƒแƒ“แƒ’แƒแƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ”แƒก แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก.

แƒ“แƒแƒœแƒแƒ แƒ—แƒ˜ 2: แƒ™แƒแƒ“แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒ แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒ”แƒ‘แƒ˜

  1. แƒ›แƒแƒแƒ—แƒแƒ•แƒกแƒ”แƒ— แƒ›แƒ—แƒ”แƒšแƒ˜ แƒšแƒแƒ’แƒ˜แƒ™แƒ แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒจแƒ˜ แƒ“แƒ แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ”แƒ‘แƒจแƒ˜.
  2. แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒ”แƒ— แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒจแƒ˜ แƒ“แƒ แƒแƒ แƒ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒจแƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒฆแƒฌแƒ”แƒ แƒ”แƒœ แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒ”แƒ‘แƒก.
  3. แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒคแƒแƒฅแƒขแƒ”แƒ‘แƒ˜.
  4. แƒœแƒฃ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— if-แƒ”แƒ‘แƒก แƒฐแƒแƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒงแƒ แƒ“แƒœแƒแƒ‘แƒ˜แƒ—.
  5. แƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒšแƒแƒ“ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก - แƒ”แƒก แƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ˜แƒ, แƒ•แƒ˜แƒ“แƒ แƒ” แƒ™แƒšแƒแƒกแƒ˜แƒก แƒกแƒฎแƒ”แƒฃแƒšแƒจแƒ˜ แƒ“แƒแƒ›แƒแƒšแƒฃแƒšแƒ˜ แƒ˜แƒ›แƒžแƒšแƒ˜แƒชแƒ˜แƒขแƒฃแƒ แƒ˜ แƒšแƒแƒ’แƒ˜แƒ™แƒ/แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ.

แƒ แƒแƒขแƒแƒ› แƒ’แƒ˜แƒ แƒฉแƒ”แƒ•แƒ— แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒแƒ’แƒ˜แƒฎแƒกแƒœแƒ˜แƒ—.

แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ

แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒแƒกแƒ แƒฃแƒšแƒแƒ— แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒ›แƒแƒ’แƒ˜แƒงแƒ•แƒ”แƒ‘แƒ˜แƒ— Hiera-แƒก, ENC-แƒกแƒ แƒ“แƒ PuppetDB-แƒ–แƒ”.

แƒ’แƒแƒ›แƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒจแƒ˜ แƒ›แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒแƒ‘แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ“แƒแƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒš แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒก. แฒจแƒ”แƒ‘แƒ แƒซแƒแƒœแƒ“แƒ˜แƒ—แƒ’แƒ—แƒฎแƒแƒ•แƒ—

แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜, แƒ’แƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ— แƒ›แƒ”แƒขแƒ˜ แƒ›แƒแƒกแƒแƒšแƒแƒ - แƒจแƒ”แƒ›แƒ˜แƒซแƒšแƒ˜แƒ แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ แƒกแƒขแƒแƒขแƒ˜แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ—แƒ”แƒ›แƒ”แƒ‘แƒ–แƒ”, แƒ›แƒ˜แƒ•แƒชแƒ” แƒฎแƒ›แƒ แƒ˜แƒ›แƒแƒก, แƒ แƒ˜แƒกแƒ˜ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒช แƒ’แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒก:

  • 59,1%แƒ›แƒแƒฌแƒ˜แƒœแƒแƒ•แƒ” แƒ›แƒแƒ แƒ˜แƒแƒœแƒ”แƒขแƒฃแƒšแƒ˜ แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ - แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ“แƒแƒœแƒ˜แƒก แƒกแƒ˜แƒกแƒฃแƒšแƒ”แƒšแƒ”แƒ”แƒ‘แƒ˜: แƒ›แƒแƒ แƒงแƒฃแƒŸแƒ”แƒ‘แƒ˜, แƒ แƒฃแƒ™แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒšแƒแƒ›แƒ‘แƒ“แƒ แƒ’แƒแƒ›แƒแƒœแƒแƒ—แƒฅแƒ•แƒแƒ›แƒ”แƒ‘แƒ˜, แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜, แƒ”แƒฅแƒกแƒžแƒแƒ แƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒแƒกแƒžแƒ˜แƒœแƒซแƒ”แƒšแƒ—แƒ แƒจแƒแƒ แƒ˜แƒก แƒ™แƒแƒ›แƒฃแƒœแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ—แƒแƒฏแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒก, แƒขแƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก, แƒžแƒ แƒแƒ•แƒแƒ˜แƒ“แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒแƒ‘แƒกแƒขแƒ แƒแƒฅแƒขแƒฃแƒšแƒ˜ แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—.13
  • 31,8%โ€žแƒ›แƒ” แƒ•แƒแƒ  แƒ“แƒ”แƒ“แƒแƒฉแƒ”แƒ›แƒ˜แƒก แƒแƒ“แƒ›แƒ˜แƒœแƒ˜โ€œ แƒแƒœ แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒ›แƒ”แƒ’แƒแƒ‘แƒ แƒ“แƒ˜แƒ— Avito-แƒจแƒ˜ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒžแƒแƒžแƒ”แƒข แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ—แƒแƒœ แƒ“แƒ, แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒจแƒ˜, แƒžแƒแƒžแƒ”แƒขแƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒฌแƒ˜แƒšแƒ—แƒแƒœ.7
  • 81,8%แƒ แƒแƒ’แƒแƒ  แƒ•แƒฌแƒ”แƒ แƒ— แƒ›แƒแƒ แƒ˜แƒแƒœแƒ”แƒขแƒฃแƒš แƒ™แƒแƒ“แƒก: แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ, แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ, แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ, CI/CD.18

แƒ›แƒ˜แƒกแƒชแƒ แƒฎแƒ›แƒ 22 แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ›แƒ. 9 แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ›แƒ แƒ—แƒแƒ•แƒ˜ แƒจแƒ”แƒ˜แƒ™แƒแƒ•แƒ.

แƒฌแƒงแƒแƒ แƒ: www.habr.com