เชœเชตเชพเชฌ เช†เชชเชตเชพ เชฏเซ‹เช—เซเชฏ เชฌเซ‡เชเชฟเช•เซเชธ, เชœเซ‡เชจเชพ เชตเชฟเชจเชพ เชคเชฎเชพเชฐเซ€ เชชเซเชฒเซ‡เชฌเซเช• เชธเซเชŸเซ€เช•เซ€ เชชเชพเชธเซเชคเชพเชจเซ‹ เช—เช เซเช เซ‹ เชนเชถเซ‡

เชนเซเช‚ เช…เชจเซเชฏ เชฒเซ‹เช•เซ‹เชจเชพ เชœเชตเชพเชฌเซ€ เช•เซ‹เชกเชจเซ€ เช˜เชฃเซ€ เชฌเชงเซ€ เชธเชฎเซ€เช•เซเชทเชพเช“ เช•เชฐเซเช‚ เช›เซเช‚ เช…เชจเซ‡ เชชเซ‹เชคเซ‡ เช˜เชฃเซเช‚ เชฒเช–เซเช‚ เช›เซเช‚. เชญเซ‚เชฒเซ‹เชจเชพ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เชฆเชฐเชฎเชฟเชฏเชพเชจ (เช…เชจเซเชฏ เชฒเซ‹เช•เซ‹เชจเซ€ เช…เชจเซ‡ เชฎเชพเชฐเซ€ เชชเซ‹เชคเชพเชจเซ€), เชคเซ‡เชฎเชœ เชธเช‚เช–เซเชฏเชพเชฌเช‚เชง เช‡เชจเซเชŸเชฐเชตเซเชฏเซ, เชฎเชจเซ‡ เชธเชฎเชœเชพเชฏเซเช‚ เช•เซ‡ เชœเชตเชพเชฌเชฆเชพเชฐ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชœเซ‡ เชฎเซเช–เซเชฏ เชญเซ‚เชฒ เช•เชฐเซ‡ เช›เซ‡ - เชคเซ‡เช“ เชฎเซ‚เชณเชญเซ‚เชค เชฌเชพเชฌเชคเซ‹เชฎเชพเช‚ เชจเชฟเชชเซเชฃเชคเชพ เชฎเซ‡เชณเชตเซเชฏเชพ เชตเชฟเชจเชพ เชœเชŸเชฟเชฒ เชฌเชพเชฌเชคเซ‹เชฎเชพเช‚ เชชเซเชฐเชตเซ‡เชถ เช•เชฐเซ‡ เช›เซ‡.

เช† เชธเชพเชฐเซเชตเชคเซเชฐเชฟเช• เช…เชจเซเชฏเชพเชฏเชจเซ‡ เชธเซเชงเชพเชฐเชตเชพ เชฎเชพเชŸเซ‡, เชฎเซ‡เช‚ เชœเซ‡เช“ เชคเซ‡เชจเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชœเชพเชฃเชคเชพ เชนเซ‹เชฏ เชคเซ‡เชฎเชจเชพ เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌ เช†เชชเชตเชพเชจเซเช‚ เชชเชฐเชฟเชšเชฏ เชฒเช–เชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚. เชนเซเช‚ เชคเชฎเชจเซ‡ เชšเซ‡เชคเชตเชฃเซ€ เช†เชชเซเช‚ เช›เซเช‚ เช•เซ‡, เช† เชฎเชพเชฃเชธเซ‹เชจเซ€ เชฐเซ€เชŸเซ‡เชฒเชฟเช‚เช— เชจเชฅเซ€, เช† เช˜เชฃเชพ เชฌเชงเชพ เช…เช•เซเชทเชฐเซ‹ เช…เชจเซ‡ เช•เซ‹เชˆ เชšเชฟเชคเซเชฐเซ‹ เชธเชพเชฅเซ‡เชจเซ€ เชฒเชพเช‚เชฌเซ€ เชตเชพเช‚เชšเชจ เช›เซ‡.

เชตเชพเชšเช•เชจเซเช‚ เช…เชชเซ‡เช•เซเชทเชฟเชค เชธเซเชคเชฐ เช เช›เซ‡ เช•เซ‡ เชฏเชฎเชฒเชพเชจเซ€ เชนเชœเชพเชฐเซ‹ เชชเช‚เช•เซเชคเชฟเช“ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชฒเช–เชพเชˆ เช—เชˆ เช›เซ‡, เช•เช‚เชˆเช• เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชจเชฟเชฐเซเชฎเชพเชฃเชฎเชพเช‚ เช›เซ‡, เชชเชฐเช‚เชคเซ "เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡ เชฌเชงเซเช‚ เชตเชพเช‚เช•เชพเชšเซ‚เช‚เช•เชพ เช›เซ‡."

เชจเชพเชฎเซ‹

เชœเชตเชพเชฌ เช†เชชเชจเชพเชฐ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชœเซ‡ เชฎเซเช–เซเชฏ เชญเซ‚เชฒ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡ เช เชจเชฅเซ€ เชœเชพเชฃเชตเซเช‚ เช•เซ‡ เช•เช‚เชˆเช• เชถเซเช‚ เช•เชนเซ‡เชตเชพเชฏ เช›เซ‡. เชœเซ‹ เชคเชฎเซ‡ เชจเชพเชฎเซ‹ เชœเชพเชฃเชคเชพ เชจเชฅเซ€, เชคเซ‹ เชคเชฎเซ‡ เชธเชฎเชœเซ€ เชถเช•เชคเชพ เชจเชฅเซ€ เช•เซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœ เชถเซเช‚ เช•เชนเซ‡ เช›เซ‡. เชเช• เชœเซ€เชตเช‚เชค เช‰เชฆเชพเชนเชฐเชฃ: เชเช• เช‡เชจเซเชŸเชฐเชตเซเชฏเซ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เชเช• เชตเซเชฏเช•เซเชคเชฟ เชœเซ‡ เชเชตเซเช‚ เช•เชนเซ‡เชคเซ€ เชนเซ‹เชฏ เช•เซ‡ เชคเซ‡เชฃเซ‡ เชœเชตเชพเชฌเชฎเชพเช‚ เช˜เชฃเซเช‚ เชฒเช–เซเชฏเซเช‚ เช›เซ‡ เชคเซ‡ เชชเซเชฐเชถเซเชจเชจเซ‹ เชœเชตเชพเชฌ เช†เชชเซ€ เชถเช•เซเชฏเซ‹ เชจ เชนเชคเซ‹ "เชชเซเชฒเซ‡เชฌเซเช•เชฎเชพเช‚ เช•เชฏเชพ เช˜เชŸเช•เซ‹เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡?" เช…เชจเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชฎเซ‡เช‚ เชธเซ‚เชšเชตเซเชฏเซเช‚ เช•เซ‡ "เชœเชตเชพเชฌ เช…เชชเซ‡เช•เซเชทเชฟเชค เชนเชคเซ‹ เช•เซ‡ เชชเซเชฒเซ‡เชฌเซเช•เชฎเชพเช‚ เชจเชพเชŸเช•เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡," เชคเซเชฏเชพเชฐเซ‡ "เช…เชฎเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเชพ เชจเชฅเซ€" เชเชตเซ€ เชจเชฟเช‚เชฆเชพเช•เชพเชฐเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช†เชตเซ€. เชฒเซ‹เช•เซ‹ เชชเซˆเชธเชพ เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌ เชฒเช–เซ‡ เช›เซ‡ เช…เชจเซ‡ เชจเชพเชŸเช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเชพ เชจเชฅเซ€. เชคเซ‡เช“ เช–เชฐเซ‡เช–เชฐ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เชถเซเช‚ เช›เซ‡ เชคเซ‡ เชœเชพเชฃเชคเชพ เชจเชฅเซ€.

เชคเซ‹ เชšเชพเชฒเซ‹ เช•เช‚เชˆเช• เชธเชฐเชณ เชธเชพเชฅเซ‡ เชถเชฐเซ‚ เช•เชฐเซ€เช: เชคเซ‡เชจเซ‡ เชถเซเช‚ เช•เชนเซ‡เชตเชพเชฏ เช›เซ‡. เช•เชฆเชพเชš เชคเชฎเซ‡ เช† เชœเชพเชฃเซ‹ เช›เซ‹, เช…เชฅเชตเชพ เช•เชฆเชพเชš เชคเชฎเซ‡ เชจเชฅเซ€, เช•เชพเชฐเชฃ เช•เซ‡ เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹ เชตเชพเช‚เชšเซ‹ เชคเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชงเซเชฏเชพเชจ เช†เชชเซเชฏเซเช‚ เชจ เชนเชคเซเช‚.

เชœเชตเชพเชฌเซ€-เชชเซเชฒเซ‡เชฌเซเช• เชชเซเชฒเซ‡เชฌเซเช• เชšเชฒเชพเชตเซ‡ เช›เซ‡. เชชเซเชฒเซ‡เชฌเซเช• เช yml/yaml เชเช•เซเชธเซเชŸเซ‡เช‚เชถเชจ เชธเชพเชฅเซ‡เชจเซ€ เชซเชพเช‡เชฒ เช›เซ‡, เชœเซ‡เชจเซ€ เช…เช‚เชฆเชฐ เช•เช‚เชˆเช• เช†เชจเชพ เชœเซ‡เชตเซเช‚ เช›เซ‡:

---
- hosts: group1
  roles:
    - role1

- hosts: group2,group3
  tasks:
    - debug:

เช…เชฎเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชธเชฎเชœเซ€ เช—เชฏเชพ เช›เซ€เช เช•เซ‡ เช† เช†เช–เซ€ เชซเชพเช‡เชฒ เชชเซเชฒเซ‡เชฌเซเช• เช›เซ‡. เช…เชฎเซ‡ เชฌเชคเชพเชตเซ€ เชถเช•เซ€เช เช›เซ€เช เช•เซ‡ เชญเซ‚เชฎเชฟเช•เชพเช“ เช•เซเชฏเชพเช‚ เช›เซ‡ เช…เชจเซ‡ เช•เชพเชฐเซเชฏเซ‹ เช•เซเชฏเชพเช‚ เช›เซ‡. เชชเชฃ เชจเชพเชŸเช• เช•เซเชฏเชพเช‚ เช›เซ‡? เช…เชจเซ‡ เชชเซเชฒเซ‡ เช…เชจเซ‡ เชฐเซ‹เชฒ เช•เซ‡ เชชเซเชฒเซ‡เชฌเซเช• เชตเชšเซเชšเซ‡ เชถเซเช‚ เชคเชซเชพเชตเชค เช›เซ‡?

เชคเซ‡ เชฌเชงเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃเชฎเชพเช‚ เช›เซ‡. เช…เชจเซ‡ เชคเซ‡เช“ เชคเซ‡เชจเซ‡ เชšเซ‚เช•เซ€ เชœเชพเชฏ เช›เซ‡. เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• - เช•เชพเชฐเชฃ เช•เซ‡ เชคเซเชฏเชพเช‚ เช˜เชฃเซเช‚ เชฌเชงเซเช‚ เช›เซ‡ เช…เชจเซ‡ เชคเชฎเชจเซ‡ เชเช• เชœ เชธเชฎเชฏเซ‡ เชฌเชงเซเช‚ เชฏเชพเชฆ เชฐเชนเซ‡เชถเซ‡ เชจเชนเซ€เช‚. เช…เชจเซเชญเชตเซ€ - เช•เชพเชฐเชฃ เช•เซ‡ "เชคเซเชšเซเช› เชตเชธเซเชคเซเช“". เชœเซ‹ เชคเชฎเซ‡ เช…เชจเซเชญเชตเซ€ เช›เซ‹, เชคเซ‹ เชฆเชฐ เช› เชฎเชนเชฟเชจเซ‡ เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ เชเช• เชตเช–เชค เช† เชชเซƒเชทเซเช เซ‹เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชตเชพเช‚เชšเซ‹, เช…เชจเซ‡ เชคเชฎเชพเชฐเซ‹ เช•เซ‹เชก เชตเชฐเซเช—-เช…เช—เซเชฐเชฃเซ€ เชฌเชจเซ€ เชœเชถเซ‡.

เชคเซ‡เชฅเซ€, เชฏเชพเชฆ เชฐเชพเช–เซ‹: เชชเซเชฒเซ‡เชฌเซเช• เช เชชเซเชฒเซ‡ เช…เชจเซ‡ เชชเซเชฒเซ‡เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เช•เชฐเชคเซ€ เชธเซ‚เชšเชฟ เช›เซ‡ import_playbook.
เช† เชเช• เชจเชพเชŸเช• เช›เซ‡:

- hosts: group1
  roles:
    - role1

เช…เชจเซ‡ เช† เชชเชฃ เชฌเซ€เชœเซเช‚ เชจเชพเชŸเช• เช›เซ‡:

- hosts: group2,group3
  tasks:
    - debug:

เชจเชพเชŸเช• เชถเซเช‚ เช›เซ‡? เชคเซ‡เชฃเซ€ เชถเชพ เชฎเชพเชŸเซ‡ เช›เซ‡?

เชชเซเชฒเซ‡เชฌเซเช• เชฎเชพเชŸเซ‡ เชชเซเชฒเซ‡ เช เชฎเซเช–เซเชฏ เชคเชคเซเชต เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เชชเซเชฒเซ‡ เช…เชจเซ‡ เช“เชจเซเชฒเซ€ เชชเซเชฒเซ‡ เช เชญเซ‚เชฎเชฟเช•เชพเช“ เช…เชจเซ‡/เช…เชฅเชตเชพ เช•เชพเชฐเซเชฏเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชจเซ‡ เชนเซ‹เชธเซเชŸเชจเซ€ เชธเซ‚เชšเชฟ เชธเชพเชฅเซ‡ เชธเชพเช‚เช•เชณเซ‡ เช›เซ‡ เช•เซ‡ เชœเซ‡เชจเชพ เชชเชฐ เชคเซ‡เช“เชจเซ‡ เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เช•เชฐเชตเซเช‚ เช†เชตเชถเซเชฏเช• เช›เซ‡. เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃเชจเชพ เชŠเช‚เชกเชพเชฃเชฎเชพเช‚ เชคเชฎเซ‡ เช‰เชฒเซเชฒเซ‡เช– เชถเซ‹เชงเซ€ เชถเช•เซ‹ เช›เซ‹ delegate_to, เชธเซเชฅเชพเชจเชฟเช• เชฒเซเช•เช…เชช เชชเซเชฒเช—เช‡เชจเซเชธ, เชจเซ‡เชŸเชตเชฐเซเช•-เช•เซเชฒเซ€-เชตเชฟเชถเชฟเชทเซเชŸ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ, เชœเชฎเซเชช เชนเซ‹เชธเซเชŸเซเชธ, เชตเช—เซ‡เชฐเซ‡. เชคเซ‡เช“ เชคเชฎเชจเซ‡ เชœเซเชฏเชพเช‚ เช•เชพเชฐเซเชฏเซ‹ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชคเซ‡ เชธเซเชฅเชพเชจเชจเซ‡ เชธเชนเซ‡เชœ เชฌเชฆเชฒเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ, เชคเซ‡ เชตเชฟเชถเซ‡ เชญเซ‚เชฒเซ€ เชœเชพเช“. เช† เชฆเชฐเซ‡เช• เชนเซ‹เช‚เชถเชฟเชฏเชพเชฐ เชตเชฟเช•เชฒเซเชชเซ‹เชฎเชพเช‚ เช–เซ‚เชฌ เชœ เชšเซ‹เช•เซเช•เชธ เช‰เชชเชฏเซ‹เช—เซ‹ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡ เชšเซ‹เช•เซเช•เชธเชชเชฃเซ‡ เชธเชพเชฐเซเชตเชคเซเชฐเชฟเช• เชจเชฅเซ€. เช…เชจเซ‡ เช…เชฎเซ‡ เชฎเซ‚เชณเชญเซ‚เชค เชฌเชพเชฌเชคเซ‹ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช เชœเซ‡ เชฆเชฐเซ‡เช• เชตเซเชฏเช•เซเชคเชฟเช เชœเชพเชฃเชตเซ€ เชœเซ‹เชˆเช เช…เชจเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชœเซ‹เชˆเช.

เชœเซ‹ เชคเชฎเซ‡ "เช•เช‚เชˆเช•" "เช•เซเชฏเชพเช‚เช•" เช•เชฐเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹, เชคเซ‹ เชคเชฎเซ‡ เชจเชพเชŸเช• เชฒเช–เซ‹. เชญเซ‚เชฎเชฟเช•เชพ เชจเชฅเซ€. เชฎเซ‹เชกเซเชฏเซเชฒเซ‹ เช…เชจเซ‡ เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเช“ เชธเชพเชฅเซ‡เชจเซ€ เชญเซ‚เชฎเชฟเช•เชพ เชจเชฅเซ€. เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชฒเซ‹ เช…เชจเซ‡ เชจเชพเชŸเช• เชฒเช–เซ‹. เชœเซ‡เชฎเชพเช‚, เชนเซ‹เชธเซเชŸ เชซเซ€เชฒเซเชกเชฎเชพเช‚ เชคเชฎเซ‡ เช•เซเชฏเชพเช‚ เชเช•เซเชเซ€เช•เซเชฏเซเชŸ เช•เชฐเชตเชพ เช…เชจเซ‡ เชฐเซ‹เชฒ/เชŸเชพเชธเซเช•เชฎเชพเช‚ - เชถเซเช‚ เชเช•เซเชเซ€เช•เซเชฏเซเชŸ เช•เชฐเชตเซเช‚ เชคเซ‡เชจเซ€ เชฏเชพเชฆเซ€ เช†เชชเซ‹ เช›เซ‹.

เชธเชฐเชณ, เชฌเชฐเชพเชฌเชฐ? เชคเซ‡ เช…เชจเซเชฏเชฅเชพ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชนเซ‹เชˆ เชถเช•เซ‡?

เชฒเชพเช•เซเชทเชฃเชฟเช• เช•เซเชทเชฃเซ‹เชฎเชพเช‚เชจเซ€ เชเช• เชœเซเชฏเชพเชฐเซ‡ เชฒเซ‹เช•เซ‹ เช†เชจเซ‡ เชจเชพเชŸเช• เชฆเซเชตเชพเชฐเชพ เชจเชนเซ€เช‚ เช•เชฐเชตเชพเชจเซ€ เช‡เชšเซเช›เชพ เชงเชฐเชพเชตเซ‡ เช›เซ‡ เชคเซ‡ เช›เซ‡ "เชญเซ‚เชฎเชฟเช•เชพ เชœเซ‡ เชฌเชงเซเช‚ เชธเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡." เชฎเชจเซ‡ เชเชตเซ€ เชญเซ‚เชฎเชฟเช•เชพ เช—เชฎเชถเซ‡ เช•เซ‡ เชœเซ‡ เชชเซเชฐเชฅเชฎ เชชเซเชฐเช•เชพเชฐเชจเชพ เชธเชฐเซเชตเชฐ เช…เชจเซ‡ เชฌเซ€เชœเชพ เชชเซเชฐเช•เชพเชฐเชจเชพ เชธเชฐเซเชตเชฐ เชฌเช‚เชจเซ‡เชจเซ‡ เช—เซ‹เช เชตเซ‡.

เชเช• เชชเซเชฐเชพเชคเชคเซเชตเซ€เชฏ เช‰เชฆเชพเชนเชฐเชฃ เชฎเซ‹เชจเซ€เชŸเชฐเซ€เช‚เช— เช›เซ‡. เชนเซเช‚ เชฎเซ‹เชจเชฟเชŸเชฐเชฟเช‚เช—เชจเซ€ เชญเซ‚เชฎเชฟเช•เชพ เชˆเชšเซเช›เซเช‚ เช›เซเช‚ เชœเซ‡ เชฎเซ‹เชจเชฟเชŸเชฐเชฟเช‚เช—เชจเซ‡ เช—เซ‹เช เชตเชถเซ‡. เชฎเซ‹เชจเชฟเชŸเชฐเชฟเช‚เช—เชจเซ€ เชญเซ‚เชฎเชฟเช•เชพ เชฎเซ‹เชจเชฟเชŸเชฐเชฟเช‚เช— เชนเซ‹เชธเซเชŸเชจเซ‡ เชธเซ‹เช‚เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡ (เชชเซเชฒเซ‡ เชฎเซเชœเชฌ). เชชเชฐเช‚เชคเซ เชคเซ‡ เชคเชพเชฐเชฃ เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ เชฆเซ‡เช–เชฐเซ‡เช– เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซ‡ เชœเซ‡ เชนเซ‹เชธเซเชŸเซเชธ เชชเชฐ เช…เชฎเซ‡ เชฆเซ‡เช–เชฐเซ‡เช– เชฐเชพเช–เซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช เชคเซ‡เชฎเชจเซ‡ เชชเซ‡เช•เซ‡เชœเซ‹ เชชเชนเซ‹เช‚เชšเชพเชกเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชถเชพ เชฎเชพเชŸเซ‡ เชกเซ‡เชฒเชฟเช—เซ‡เชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชจ เช•เชฐเชตเซ‹? เชคเชฎเชพเชฐเซ‡ iptables เชจเซ‡ เชชเชฃ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟ? เชฎเซ‹เชจเชฟเชŸเชฐเชฟเช‚เช—เชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซ‡ DBMS เชฎเชพเชŸเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพ เชฒเช–เชตเชพเชจเซ€/เชธเซเชงเชพเชฐเชตเชพเชจเซ€ เชชเชฃ เชœเชฐเซ‚เชฐ เช›เซ‡. เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟ เช…เชจเซ‡ เชœเซ‹ เชธเชฐเซเชœเชจเชพเชคเซเชฎเช•เชคเชพเชจเซ‹ เช…เชญเชพเชต เชนเซ‹เชฏ, เชคเซ‹ เชคเชฎเซ‡ เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเชฎเช‚เชกเชณ เชฌเชจเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹ include_role เชจเซ‡เชธเซเชŸเซ‡เชก เชฒเซ‚เชชเชฎเชพเช‚ เชœเซ‚เชฅเซ‹เชจเซ€ เชธเซ‚เชšเชฟ เชชเชฐ เช…เชจเซ‡ เช…เช‚เชฆเชฐ เชเช• เชฎเซเชถเซเช•เซ‡เชฒ เชซเชฟเชฒเซเชŸเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ include_role เชคเชฎเซ‡ เชตเชงเซ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ delegate_to เชซเชฐเซ€. เช…เชจเซ‡ เช†เชชเชฃเซ‡ เชฆเซ‚เชฐ เชœเชˆเช เช›เซ€เช ...

เชเช• เชธเชพเชฐเซ€ เช‡เชšเซเช›เชพ - เชเช• เชœ เชฆเซ‡เช–เชฐเซ‡เช–เชจเซ€ เชญเซ‚เชฎเชฟเช•เชพ, เชœเซ‡ "เชฌเชงเซเช‚ เช•เชฐเซ‡ เช›เซ‡" - เช†เชชเชฃเชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ เชจเชฐเช•เชฎเชพเช‚ เชฒเชˆ เชœเชพเชฏ เช›เซ‡ เชœเซ‡เชฎเชพเช‚เชฅเซ€ เชฎเซ‹เชŸเชพเชญเชพเช—เซ‡ เชเช• เชœ เชฐเชธเซเชคเซ‹ เชนเซ‹เชฏ เช›เซ‡: เชถเชฐเซ‚เช†เชคเชฅเซ€ เชฌเชงเซเช‚ เชซเชฐเซ€เชฅเซ€ เชฒเช–เชตเซเช‚.

เช…เชนเซ€เช‚ เชญเซ‚เชฒ เช•เซเชฏเชพเช‚ เชฅเชˆ? เชœเซ‡ เช•เซเชทเชฃเซ‡ เชคเชฎเซ‡ เชถเซ‹เชงเซเชฏเซเช‚ เช•เซ‡ เชนเซ‹เชธเซเชŸ X เชชเชฐ "x" เช•เชพเชฐเซเชฏ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซ‡ เชฏเชœเชฎเชพเชจ Y เชชเชฐ เชœเชตเซเช‚ เชชเชกเชถเซ‡ เช…เชจเซ‡ เชคเซเชฏเชพเช‚ "y" เช•เชฐเชตเซเช‚ เชชเชกเชถเซ‡, เชคเชฎเชพเชฐเซ‡ เชเช• เชธเชฐเชณ เช•เชธเชฐเชค เช•เชฐเชตเซ€ เชชเชกเชถเซ‡: เชœเชพเช“ เช…เชจเซ‡ เชจเชพเชŸเช• เชฒเช–เซ‹, เชœเซ‡ เชฏเชœเชฎเชพเชจ Y เชชเชฐ Y เช•เชฐเซ‡ เช›เซ‡. "x" เชฎเชพเช‚ เช•เช‚เชˆเช• เช‰เชฎเซ‡เชฐเชถเซ‹ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เชคเซ‡เชจเซ‡ เชถเชฐเซ‚เช†เชคเชฅเซ€ เชฒเช–เซ‹. เชนเชพเชฐเซเชกเช•เซ‹เชกเซ‡เชก เชšเชฒเซ‹ เชธเชพเชฅเซ‡ เชชเชฃ.

เชเชตเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เช‰เชชเชฐเชจเชพ เชซเช•เชฐเชพเชฎเชพเช‚ เชฌเชงเซเช‚ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡. เชชเชฐเช‚เชคเซ เช† เชคเชฎเชพเชฐเซ‹ เช•เซ‡เชธ เชจเชฅเซ€! เช•เชพเชฐเชฃ เช•เซ‡ เชคเชฎเซ‡ เชซเชฐเซ€เชฅเซ€ เชตเชพเชชเชฐเซ€ เชถเช•เชพเชฏ เชคเซ‡เชตเชพ เช•เซ‹เชก เชฒเช–เชตเชพ เชฎเชพเช‚เช—เซ‹ เช›เซ‹ เชœเซ‡ DRY เช…เชจเซ‡ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€-เชœเซ‡เชตเซ‹ เช›เซ‡, เช…เชจเซ‡ เชคเชฎเชพเชฐเซ‡ เชคเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซเช‚ เชคเซ‡ เชฎเชพเชŸเซ‡เชจเซ€ เชชเชฆเซเชงเชคเชฟ เชถเซ‹เชงเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เช† เชคเซ‡ เช›เซ‡ เชœเซเชฏเชพเช‚ เชฌเซ€เชœเซ€ เช—เช‚เชญเซ€เชฐ เชญเซ‚เชฒ เช›เซ‚เชชเชพเชฏเซ‡เชฒเซ€ เช›เซ‡. เชเช• เชญเซ‚เชฒ เชœเซ‡เชฃเซ‡ เช˜เชฃเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธเชจเซ‡ เชธเชนเชจเชถเซ€เชฒ เชฐเซ€เชคเซ‡ เชฒเช–เซ‡เชฒเชพ (เชคเซ‡ เชตเชงเซ เชธเชพเชฐเซเช‚ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชฌเชงเซเช‚ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชธเชฎเชพเชชเซเชค เช•เชฐเชตเซเช‚ เชธเชฐเชณ เช›เซ‡) เชเช• เชธเช‚เชชเซ‚เชฐเซเชฃ เชญเชฏเชพเชจเช•เชคเชพเชฎเชพเช‚ เชซเซ‡เชฐเชตเซเชฏเซเช‚ เช›เซ‡ เชœเซ‡ เชฒเซ‡เช–เช• เชชเชฃ เชธเชฎเชœเซ€ เชถเช•เชคเชพ เชจเชฅเซ€. เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชญเช—เชตเชพเชจ เชคเชฎเชจเซ‡ เช•เช‚เชˆเชชเชฃ เชฌเชฆเชฒเชตเชพเชจเซ€ เชฎเชจเชพเชˆ เช•เชฐเซ‡ เช›เซ‡.

เชญเซ‚เชฒ เช›เซ‡: เชญเซ‚เชฎเชฟเช•เชพ เช เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€ เช•เชพเชฐเซเชฏ เช›เซ‡. เช† เชธเชพเชฎเซเชฏเชคเชพเช เชเชŸเชฒเซ€ เชฌเชงเซ€ เชธเชพเชฐเซ€ เชถเชฐเซ‚เช†เชคเชจเซ‡ เชฌเชฐเชฌเชพเชฆ เช•เชฐเซ€ เชฆเซ€เชงเซ€ เช›เซ‡ เช•เซ‡ เชคเซ‡ เชœเซ‹เชˆเชจเซ‡ เชฆเซเชƒเช– เชฅเชพเชฏ เช›เซ‡. เชญเซ‚เชฎเชฟเช•เชพ เช เชชเซเชธเซเชคเช•เชพเชฒเชฏเชจเซเช‚ เช•เชพเชฐเซเชฏ เชจเชฅเซ€. เชคเซ‡ เช—เชฃเชคเชฐเซ€เช“ เช•เชฐเซ€ เชถเช•เชคเซ€ เชจเชฅเซ€ เช…เชจเซ‡ เชคเซ‡ เชชเซเชฒเซ‡-เชฒเซ‡เชตเชฒเชจเชพ เชจเชฟเชฐเซเชฃเชฏเซ‹ เชฒเชˆ เชถเช•เชคเซ€ เชจเชฅเซ€. เชฎเชจเซ‡ เชฏเชพเชฆ เช•เชฐเชพเชตเซ‹ เช•เซ‡ เชจเชพเชŸเช• เช•เชฏเชพ เชจเชฟเชฐเซเชฃเชฏเซ‹ เชฒเซ‡ เช›เซ‡?

เช†เชญเชพเชฐ, เชคเชฎเซ‡ เชธเชพเชšเชพ เช›เซ‹. เชชเซเชฒเซ‡ เช•เชฏเชพ เชนเซ‹เชธเซเชŸ เชชเชฐ เช•เชฏเชพ เช•เชพเชฐเซเชฏเซ‹ เช…เชจเซ‡ เชญเซ‚เชฎเชฟเช•เชพเช“ เช•เชฐเชตเชพ เชคเซ‡ เชตเชฟเชถเซ‡ เชจเชฟเชฐเซเชฃเชฏ เชฒเซ‡ เช›เซ‡ (เชตเชงเซ เชธเซเชชเชทเซเชŸ เชฐเซ€เชคเซ‡, เชคเซ‡เชฎเชพเช‚ เชฎเชพเชนเชฟเชคเซ€ เชถเชพเชฎเซ‡เชฒ เช›เซ‡).

เชœเซ‹ เชคเชฎเซ‡ เช† เชจเชฟเชฐเซเชฃเชฏเชจเซ‡ เช•เซ‹เชˆ เชญเซ‚เชฎเชฟเช•เชพเชฎเชพเช‚ เชธเซ‹เช‚เชชเซ‹ เช›เซ‹, เช…เชจเซ‡ เช—เชฃเชคเชฐเซ€เช“ เชธเชพเชฅเซ‡ เชชเชฃ, เชคเซ‹ เชคเชฎเซ‡ เชคเชฎเชพเชฐเซ€ เชœเชพเชคเชจเซ‡ (เช…เชจเซ‡ เชœเซ‡ เชคเชฎเชพเชฐเชพ เช•เซ‹เชกเชจเซ‡ เชตเชฟเชถเซเชฒเซ‡เชทเชฟเชค เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเชถเซ‡) เชเช• เช•เช‚เช—เชพเชณ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เช†เชตเชถเซ‡. เชญเซ‚เชฎเชฟเช•เชพ เชจเช•เซเช•เซ€ เช•เชฐเชคเซ€ เชจเชฅเซ€ เช•เซ‡ เชคเซ‡ เช•เซเชฏเชพเช‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช† เชจเชฟเชฐเซเชฃเชฏ เชจเชพเชŸเช• เชฆเซเชตเชพเชฐเชพ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชญเซ‚เชฎเชฟเช•เชพ เชคเซ‡เชจเซ‡ เชœเซ‡ เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซเชฏเชพเช‚ เชคเซ‡เชจเซ‡ เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชคเซ‡ เช•เชฐเซ‡ เช›เซ‡.

เชถเชพ เชฎเชพเชŸเซ‡ เชเชจเซเชธเชฟเชฌเชฒเชฎเชพเช‚ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เช•เชฐเชตเซเช‚ เชœเซ‹เช–เชฎเซ€ เช›เซ‡ เช…เชจเซ‡ เช•เซ‹เชฌเซ‹เชฒ เชเชจเซเชธเชฟเชฌเชฒ เช•เชฐเชคเชพเช‚ เชถเชพ เชฎเชพเชŸเซ‡ เชธเชพเชฐเซเช‚ เช›เซ‡ เช…เชฎเซ‡ เชšเชฒ เช…เชจเซ‡ เชœเชฟเชจเซเชœเชพ เชตเชฟเชถเซ‡ เชชเซเชฐเช•เชฐเชฃเชฎเชพเช‚ เชตเชพเชค เช•เชฐเซ€เชถเซเช‚. เชนเชฎเชฃเชพเช‚ เชฎเชพเชŸเซ‡, เชšเชพเชฒเซ‹ เชเช• เชตเชพเชค เช•เชนเซ€เช - เชคเชฎเชพเชฐเซ€ เชฆเชฐเซ‡เช• เช—เชฃเชคเชฐเซ€เช“ เชตเซˆเชถเซเชตเชฟเช• เชšเชฒเซ‹เชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเชพ เช…เชตเชฟเชถเซเชตเชธเชจเซ€เชฏ เชŸเซเชฐเซ‡เชธ เช›เซ‹เชกเซ€ เชœเชพเชฏ เช›เซ‡, เช…เชจเซ‡ เชคเชฎเซ‡ เชคเซ‡เชจเชพ เชตเชฟเชถเซ‡ เช•เช‚เชˆ เช•เชฐเซ€ เชถเช•เชคเชพ เชจเชฅเซ€. เชœเชฒเชฆเซ€ เชฌเซ‡ "เชŸเซเชฐเซ‡เชธ" เช›เซ‡เชฆเซ‡ เช›เซ‡, เชฌเชงเซเช‚ เช…เชฆเซƒเชถเซเชฏ เชฅเชˆ เช—เชฏเซเช‚.

เชธเซเช•เซเชตเชฟเชฎเชฟเชถ เชฎเชพเชŸเซ‡ เชจเซ‹เช‚เชง: เชญเซ‚เชฎเชฟเช•เชพ เชšเซ‹เช•เซเช•เชธเชชเชฃเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เชชเซเชฐเชตเชพเชนเชจเซ‡ เชชเซเชฐเชญเชพเชตเชฟเชค เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡. เช–เชพเชตเซเช‚ delegate_to เช…เชจเซ‡ เชคเซ‡เชจเซ‹ เชตเชพเชœเชฌเซ€ เช‰เชชเชฏเซ‹เช—เซ‹ เช›เซ‡. เช–เชพเชตเซเช‚ meta: end host/play. เชชเชฃ! เชฏเชพเชฆ เชฐเชพเช–เซ‹ เช•เซ‡ เช†เชชเชฃเซ‡ เชฎเซ‚เชณเชญเซ‚เชค เชฌเชพเชฌเชคเซ‹ เชถเซ€เช–เชตเซ€เช เช›เซ€เช? เชตเชฟเชถเซ‡ เชญเซ‚เชฒเซ€ เช—เชฏเชพ delegate_to. เช…เชฎเซ‡ เชธเซŒเชฅเซ€ เชธเชฐเชณ เช…เชจเซ‡ เชธเซŒเชฅเซ€ เชธเซเช‚เชฆเชฐ เชœเชตเชพเชฌเซ€ เช•เซ‹เชก เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช. เชœเซ‡ เชตเชพเช‚เชšเชตเชพเชฎเชพเช‚ เชธเชฐเชณ, เชฒเช–เชตเชพเชฎเชพเช‚ เชธเชฐเชณ, เชกเซ€เชฌเช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเชฐเชณ, เชšเช•เชพเชธเชตเชพเชฎเชพเช‚ เชธเชฐเชณ เช…เชจเซ‡ เชชเซ‚เชฐเซเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เชธเชฐเชณ เช›เซ‡. เชคเซ‡เชฅเซ€, เชซเชฐเซ€ เชเช•เชตเชพเชฐ:

เชชเซเชฒเซ‡ เชเชจเซเชก เช“เชจเซเชฒเซ€ เชชเซเชฒเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ เช•เชฏเชพ เชนเซ‹เชธเซเชŸ เชชเชฐ เชถเซเช‚ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เช† เชตเชฟเชญเชพเช—เชฎเชพเช‚, เช…เชฎเซ‡ เชฐเชฎเชค เช…เชจเซ‡ เชญเซ‚เชฎเชฟเช•เชพ เชตเชšเซเชšเซ‡เชจเชพ เชตเชฟเชฐเซ‹เชง เชธเชพเชฅเซ‡ เชตเซเชฏเชตเชนเชพเชฐ เช•เชฐเซเชฏเซ‹. เชนเชตเซ‡ เชšเชพเชฒเซ‹ เช•เชพเชฐเซเชฏเซ‹ เชตเชฟ เชญเซ‚เชฎเชฟเช•เชพ เชธเช‚เชฌเช‚เชง เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€เช.

เช•เชพเชฐเซเชฏเซ‹ เช…เชจเซ‡ เชญเซ‚เชฎเชฟเช•เชพเช“

เชฐเชฎเชคเชจเซ‹ เชตเชฟเชšเชพเชฐ เช•เชฐเซ‹:

- hosts: somegroup
  pre_tasks:
    - some_tasks1:
  roles:
     - role1
     - role2
  post_tasks:
     - some_task2:
     - some_task3:

เชšเชพเชฒเซ‹ เช•เชนเซ€เช เช•เซ‡ เชคเชฎเชพเชฐเซ‡ foo เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช…เชจเซ‡ เชเชตเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡ foo: name=foobar state=present. เชฎเชพเชฐเซ‡ เช† เช•เซเชฏเชพเช‚ เชฒเช–เชตเซเช‚ เชœเซ‹เชˆเช? เชชเซ‚เชฐเซเชตเชฎเชพเช‚? เชชเซ‹เชธเซเชŸ? เชญเซ‚เชฎเชฟเช•เชพ เชฌเชจเชพเชตเซ‹?

...เช…เชจเซ‡ เช•เชพเชฐเซเชฏเซ‹ เช•เซเชฏเชพเช‚ เช—เชฏเชพ?

เช…เชฎเซ‡ เชซเชฐเซ€เชฅเซ€ เชฌเซ‡เชเชฟเช•เซเชธ เชธเชพเชฅเซ‡ เชถเชฐเซ‚ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช - เชชเซเชฒเซ‡ เชกเชฟเชตเชพเช‡เชธ. เชœเซ‹ เชคเชฎเซ‡ เช† เชฎเซเชฆเซเชฆเชพ เชชเชฐ เชซเซเชฒเซ‹เชŸ เช•เชฐเซ‹ เช›เซ‹, เชคเซ‹ เชคเชฎเซ‡ เชฌเชพเช•เซ€เชจเซ€ เชฆเชฐเซ‡เช• เชตเชธเซเชคเซเชจเชพ เช†เชงเชพเชฐ เชคเชฐเซ€เช•เซ‡ เชจเชพเชŸเช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เชคเชพ เชจเชฅเซ€, เช…เชจเซ‡ เชคเชฎเชพเชฐเซเช‚ เชชเชฐเชฟเชฃเชพเชฎ "เช…เชธเซเชฅเชฟเชฐ" เชนเชถเซ‡.

เชชเซเชฒเซ‡ เชกเชฟเชตเชพเช‡เชธ: เชนเซ‹เชธเซเชŸ เชกเชพเชฏเชฐเซ‡เช•เซเชŸเซ€เชต, เชชเซเชฒเซ‡ เชฎเชพเชŸเซ‡ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เช…เชจเซ‡ เชชเซเชฐเซ€_เชŸเชพเชธเซเช•, เช•เชพเชฐเซเชฏเซ‹, เชญเซ‚เชฎเชฟเช•เชพเช“, เชชเซ‹เชธเซเชŸ_เชŸเชพเชธเซเช• เชตเชฟเชญเชพเช—เซ‹. เชฐเชฎเชค เชฎเชพเชŸเซ‡เชจเชพ เชฌเชพเช•เซ€เชจเชพ เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชนเชตเซ‡ เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชจเชฅเซ€.

เช•เชพเชฐเซเชฏเซ‹ เช…เชจเซ‡ เชญเซ‚เชฎเชฟเช•เชพเช“ เชธเชพเชฅเซ‡เชจเชพ เชคเซ‡เชฎเชจเชพ เชตเชฟเชญเชพเช—เซ‹เชจเซ‹ เช•เซเชฐเชฎ: pre_tasks, roles, tasks, post_tasks. เช…เชฐเซเชฅเชชเซ‚เชฐเซเชฃ เชฐเซ€เชคเซ‡ เช…เชฎเชฒเชจเซ‹ เช•เซเชฐเชฎ เชตเชšเซเชšเซ‡ เช›เซ‡ tasks ะธ roles เชธเซเชชเชทเซเชŸ เชจเชฅเซ€, เชคเซ‹ เชถเซเชฐเซ‡เชทเซเช  เชชเซเชฐเชฅเชพเช“ เช•เชนเซ‡ เช›เซ‡ เช•เซ‡ เช…เชฎเซ‡ เชเช• เชตเชฟเชญเชพเช— เช‰เชฎเซ‡เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช tasks, เชฎเชพเชคเซเชฐ เชœเซ‹ เชจเชนเซ€เช‚ roles... เชœเซ‹ เชคเซเชฏเชพเช‚ roles, เชชเช›เซ€ เชฌเชงเชพ เชœเซ‹เชกเชพเชฏเซ‡เชฒ เช•เชพเชฐเซเชฏเซ‹ เชตเชฟเชญเชพเช—เซ‹เชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ pre_tasks/post_tasks.

เชœเซ‡ เชฌเชพเช•เซ€ เช›เซ‡ เชคเซ‡ เช เช›เซ‡ เช•เซ‡ เชฌเชงเซเช‚ เช…เชฐเซเชฅเชชเซ‚เชฐเซเชฃ เชฐเซ€เชคเซ‡ เชธเซเชชเชทเซเชŸ เช›เซ‡: เชชเซเชฐเชฅเชฎ pre_tasks, เชชเช›เซ€ roles, เชชเช›เซ€ post_tasks.

เชชเชฐเช‚เชคเซ เช…เชฎเซ‡ เชนเชœเซ€ เชชเชฃ เชชเซเชฐเชถเซเชจเชจเซ‹ เชœเชตเชพเชฌ เช†เชชเซเชฏเซ‹ เชจเชฅเซ€: เชฎเซ‹เชกเซเชฏเซเชฒ เช•เซ‰เชฒ เช•เซเชฏเชพเช‚ เช›เซ‡? foo เชฒเช–เซ‹? เชถเซเช‚ เช†เชชเชฃเซ‡ เชฆเชฐเซ‡เช• เชฎเซ‹เชกเซเชฏเซเชฒ เชฎเชพเชŸเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ เชญเซ‚เชฎเชฟเช•เชพ เชฒเช–เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡? เช…เชฅเชตเชพ เชฆเชฐเซ‡เช• เชตเชธเซเชคเซ เชฎเชพเชŸเซ‡ เชœเชพเชกเซ€ เชญเซ‚เชฎเชฟเช•เชพ เชนเซ‹เชฏ เชคเซ‡ เชตเชงเซ เชธเชพเชฐเซเช‚ เช›เซ‡? เช…เชจเซ‡ เชœเซ‹ เชฐเซ‹เชฒ เชจ เชนเซ‹เชฏ เชคเซ‹ เชนเซเช‚ เช•เซเชฏเชพเช‚ เชฒเช–เซเช‚ - เชชเชนเซ‡เชฒเชพ เช•เซ‡ เชชเซ‹เชธเซเชŸเชฎเชพเช‚?

เชœเซ‹ เช† เชชเซเชฐเชถเซเชจเซ‹เชจเชพ เช•เซ‹เชˆ เชคเชฐเซเช•เชธเช‚เช—เชค เชœเชตเชพเชฌเซ‹ เชจเชฅเซ€, เชคเซ‹ เช† เช…เช‚เชคเชฐเซเชœเซเชžเชพเชจเชจเชพ เช…เชญเชพเชตเชจเซ€ เชจเชฟเชถเชพเชจเซ€ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡, เชคเซ‡ เชœ "เช…เชธเซเชฅเชฟเชฐ เชชเชพเชฏเชพ." เชšเชพเชฒเซ‹ เชคเซ‡เชจเซ‡ เช†เช•เซƒเชคเชฟ เช•เชฐเซ€เช. เชชเซเชฐเชฅเชฎ, เชเช• เชธเซเชฐเช•เซเชทเชพ เชชเซเชฐเชถเซเชจ: เชœเซ‹ เชจเชพเชŸเช• เชนเซ‹เชฏ pre_tasks ะธ post_tasks (เช…เชจเซ‡ เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เช•เชพเชฐเซเชฏเซ‹ เช…เชฅเชตเชพ เชญเซ‚เชฎเชฟเช•เชพเช“ เชจเชฅเซ€), เชคเซ‹ เชชเช›เซ€ เชœเซ‹ เชนเซเช‚ เชชเซเชฐเชฅเชฎ เช•เชพเชฐเซเชฏ เช…เชนเซ€เช‚เชฅเซ€ เช•เชฐเซเช‚ เชคเซ‹ เช•เช‚เชˆเช• เชคเซ‚เชŸเซ€ เชถเช•เซ‡ เช›เซ‡ post_tasks เชนเซเช‚ เชคเซ‡เชจเซ‡ เช…เช‚เชค เชธเซเชงเซ€ เช–เชธเซ‡เชกเซ€เชถ pre_tasks?

เช…เชฒเชฌเชคเซเชค, เชชเซเชฐเชถเซเชจเชจเซ‹ เชถเชฌเซเชฆเชถเชฌเซเชฆ เชธเช‚เช•เซ‡เชค เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ เชคเซ‡ เชคเซ‚เชŸเซ€ เชœเชถเซ‡. เชชเชฐเช‚เชคเซ เชฌเชฐเชพเชฌเชฐ เชถเซเช‚?

... เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ. เชฌเซ‡เชเชฟเช•เซเชธ เชตเชพเช‚เชšเชตเชพเชฅเซ€ เชเช• เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชนเช•เซ€เช•เชค เชœเชพเชฃเชตเชพ เชฎเชณเซ‡ เช›เซ‡: เชฆเชฐเซ‡เช• เชตเชฟเชญเชพเช— เชชเช›เซ€ เชฌเชงเชพ เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ เช†เชชเชฎเซ‡เชณเซ‡ เชซเซเชฒเชถ เชฅเชพเชฏ เช›เซ‡. เชคเซ‡. เชฅเซ€ เชคเชฎเชพเชฎ เช•เชพเชฐเซเชฏเซ‹ pre_tasks, เชชเช›เซ€ เชคเชฎเชพเชฎ เชนเซ‡เชจเซเชกเชฒเชฐเซเชธเชจเซ‡ เชธเซ‚เชšเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชนเชคเชพ. เชชเช›เซ€ เชคเชฎเชพเชฎ เชญเซ‚เชฎเชฟเช•เชพเช“ เช…เชจเซ‡ เชคเชฎเชพเชฎ เชนเซ‡เชจเซเชกเชฒเชฐ เช•เซ‡ เชœเซ‡เช“เชจเซ‡ เชญเซ‚เชฎเชฟเช•เชพเช“เชฎเชพเช‚ เชธเซ‚เชšเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชนเชคเชพ เชคเซ‡ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชชเช›เซ€ post_tasks เช…เชจเซ‡ เชคเซ‡เชฎเชจเชพ เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ.

เช†เชฎ, เชœเซ‹ เชคเชฎเซ‡ เชฎเชพเช‚เชฅเซ€ เช•เซ‹เชˆ เช•เชพเชฐเซเชฏ เช–เซ‡เช‚เชšเซ‹ post_tasks ะฒ pre_tasks, เชคเซ‹ เชชเช›เซ€ เชนเซ‡เชจเซเชกเชฒเชฐ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚ เชธเช‚เชญเชตเชฟเชค เชฐเซ€เชคเซ‡ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เช•เชฐเชถเซ‹. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเซ‹ เชฎเชพเช‚ pre_tasks เชตเซ‡เชฌ เชธเชฐเซเชตเชฐ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช…เชจเซ‡ เช—เซ‹เช เชตเซ‡เชฒ เช›เซ‡, เช…เชจเซ‡ post_tasks เชคเซ‡เชจเซ‡ เช•เช‚เชˆเช• เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชชเช›เซ€ เช† เช•เชพเชฐเซเชฏเชจเซ‡ เชตเชฟเชญเชพเช—เชฎเชพเช‚ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเซ‹ pre_tasks เช เชนเช•เซ€เช•เชค เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชœเชถเซ‡ เช•เซ‡ "เชฎเซ‹เช•เชฒเชตเชพเชจเชพ" เชธเชฎเชฏเซ‡ เชธเชฐเซเชตเชฐ เชนเชœเซ€ เชšเชพเชฒเชถเซ‡ เชจเชนเซ€เช‚ เช…เชจเซ‡ เชฌเชงเซเช‚ เชคเซ‚เชŸเซ€ เชœเชถเซ‡.

เชนเชตเซ‡ เชšเชพเชฒเซ‹ เชซเชฐเซ€ เชตเชฟเชšเชพเชฐเซ€เช เช•เซ‡ เช†เชชเชฃเชจเซ‡ เชถเชพ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐ เช›เซ‡ pre_tasks ะธ post_tasks? เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชญเซ‚เชฎเชฟเช•เชพ เชชเซ‚เชฐเซ€ เช•เชฐเชคเชพเช‚ เชชเชนเซ‡เชฒเชพเช‚ เชœเชฐเซ‚เชฐเซ€ เชฌเชงเซเช‚ (เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ เชธเชนเชฟเชค) เชชเซ‚เชฐเซเชฃ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡. เช post_tasks เช…เชฎเชจเซ‡ เชญเซ‚เชฎเชฟเช•เชพเช“ เชšเชฒเชพเชตเชตเชพเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ‹ (เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ เชธเชนเชฟเชค) เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชถเซ‡.

เชเช• เชšเชคเซเชฐ เชœเชตเชพเชฌเซ€ เชจเชฟเชทเซเชฃเชพเชค เช…เชฎเชจเซ‡ เชœเชฃเชพเชตเชถเซ‡ เช•เซ‡ เชคเซ‡ เชถเซเช‚ เช›เซ‡. meta: flush_handlers, เชชเชฐเช‚เชคเซ เชœเซ‹ เช†เชชเชฃเซ‡ เชจเชพเชŸเช•เชฎเชพเช‚ เชตเชฟเชญเชพเช—เซ‹เชจเชพ เช…เชฎเชฒเชจเชพ เช•เซเชฐเชฎ เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ€ เชถเช•เซ€เช เชคเซ‹ เช†เชชเชฃเชจเซ‡ เชซเซเชฒเชถ_เชนเซ‡เชจเซเชกเชฒเชฐเซเชธเชจเซ€ เชถเชพ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐ เช›เซ‡? เชตเชงเซเชฎเชพเช‚, meta: flush_handlers เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชกเซเชชเซเชฒเชฟเช•เซ‡เชŸ เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ เชธเชพเชฅเซ‡ เช…เชฎเชจเซ‡ เช…เชฃเชงเชพเชฐเซ€ เชตเชธเซเชคเซเช“ เช†เชชเซ€ เชถเช•เซ‡ เช›เซ‡, เชœเซเชฏเชพเชฐเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซเชฏเชพเชฐเซ‡ เช…เชฎเชจเซ‡ เชตเชฟเชšเชฟเชคเซเชฐ เชšเซ‡เชคเชตเชฃเซ€เช“ เช†เชชเซ€ เชถเช•เซ‡ เช›เซ‡. when ัƒ block เชตเช—เซ‡เชฐเซ‡ เชคเชฎเซ‡ เชœเซ‡เชŸเชฒเซ€ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เชœเชตเชพเชฌเซ‹ เชœเชพเชฃเซ‹ เช›เซ‹, เชคเซ‡เชŸเชฒเซ€ เชตเชงเซ เช˜เซ‹เช‚เช˜เชพเชŸ เชคเชฎเซ‡ "เชฎเซเชถเซเช•เซ‡เชฒ" เช‰เช•เซ‡เชฒ เชฎเชพเชŸเซ‡ เชจเชพเชฎ เช†เชชเซ€ เชถเช•เซ‹ เช›เซ‹. เช…เชจเซ‡ เชเช• เชธเชฐเชณ เช‰เช•เซ‡เชฒ - เชชเซ‚เชฐเซเชต/เชญเซ‚เชฎเชฟเช•เชพ/เชชเซ‹เชธเซเชŸ เชตเชšเซเชšเซ‡ เช•เซเชฆเชฐเชคเซ€ เชตเชฟเชญเชพเชœเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ - เช˜เซ‹เช‚เช˜เชพเชŸเชจเซเช‚ เช•เชพเชฐเชฃ เชจเชฅเซ€.

เช…เชจเซ‡, เชชเชพเช›เชพ เช…เชฎเชพเชฐเชพ 'foo' เชชเชฐ. เชฎเชพเชฐเซ‡ เชคเซ‡เชจเซ‡ เช•เซเชฏเชพเช‚ เชฎเซ‚เช•เชตเซเช‚ เชœเซ‹เชˆเช? เชชเซ‚เชฐเซเชต, เชชเซ‹เชธเซเชŸ เช…เชฅเชตเชพ เชญเซ‚เชฎเชฟเช•เชพเชฎเชพเช‚? เชฆเซ‡เช–เซ€เชคเซ€ เชฐเซ€เชคเซ‡, เช† เชคเซ‡เชจเชพ เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ‡ เช›เซ‡ เช•เซ‡ เชถเซเช‚ เช†เชชเชฃเชจเซ‡ foo เชฎเชพเชŸเซ‡ เชนเซ‡เชจเซเชกเชฒเชฐเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ‹เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชœเซ‹ เชคเซ‡เช“ เชคเซเชฏเชพเช‚ เชจ เชนเซ‹เชฏ, เชคเซ‹ foo เชจเซ‡ เชชเซ‚เชฐเซเชต เช…เชฅเชตเชพ เชชเซ‹เชธเซเชŸเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€ - เช† เชตเชฟเชญเชพเช—เซ‹เชจเซ‹ เชตเชฟเชถเซ‡เชท เช…เชฐเซเชฅ เช›เซ‡ - เช•เซ‹เชกเชจเชพ เชฎเซเช–เซเชฏ เชญเชพเช— เชชเชนเซ‡เชฒเชพเช‚ เช…เชจเซ‡ เชชเช›เซ€เชจเชพ เช•เชพเชฐเซเชฏเซ‹เชจเซ‹ เช…เชฎเชฒ.

เชนเชตเซ‡ "เชญเซ‚เชฎเชฟเช•เชพ เช…เชฅเชตเชพ เช•เชพเชฐเซเชฏ" เชชเซเชฐเชถเซเชจเชจเซ‹ เชœเชตเชพเชฌ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชฐเชฎเชคเชฎเชพเช‚ เช›เซ‡ เชคเซ‡เชจเชพ เชชเชฐ เช†เชตเซ‡ เช›เซ‡ - เชœเซ‹ เชคเซเชฏเชพเช‚ เช•เชพเชฐเซเชฏเซ‹ เช›เซ‡, เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชฎเชจเซ‡ เช•เชพเชฐเซเชฏเซ‹เชฎเชพเช‚ เช‰เชฎเซ‡เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชœเซ‹ เชคเซเชฏเชพเช‚ เชญเซ‚เชฎเชฟเช•เชพเช“ เชนเซ‹เชฏ, เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เชญเซ‚เชฎเชฟเช•เชพ เชฌเชจเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ (เชเช• เช•เชพเชฐเซเชฏเชฎเชพเช‚เชฅเซ€ เชชเชฃ). เชšเชพเชฒเซ‹ เชนเซเช‚ เชคเชฎเชจเซ‡ เชฏเชพเชฆ เช•เชฐเชพเชตเซเช‚ เช•เซ‡ เช•เชพเชฐเซเชฏเซ‹ เช…เชจเซ‡ เชญเซ‚เชฎเชฟเช•เชพเช“ เชเช• เชœ เชธเชฎเชฏเซ‡ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชคเชพ เชจเชฅเซ€.

เชœเชตเชพเชฌเชจเซ€ เชฎเซ‚เชณเชญเซ‚เชค เชฌเชพเชฌเชคเซ‹เชจเซ‡ เชธเชฎเชœเชตเชพเชฅเซ€ เชธเซเชตเชพเชฆเชจเชพ เชฆเซ‡เช–เซ€เชคเชพ เชชเซเชฐเชถเซเชจเซ‹เชจเชพ เชตเชพเชœเชฌเซ€ เชœเชตเชพเชฌเซ‹ เชฎเชณเซ‡ เช›เซ‡.

เช•เชพเชฐเซเชฏเซ‹ เช…เชจเซ‡ เชญเซ‚เชฎเชฟเช•เชพเช“ (เชญเชพเช— เชฌเซ‡)

เชนเชตเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชชเซเชฒเซ‡เชฌเซเช• เชฒเช–เชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ‹ เช›เซ‹ เชคเซเชฏเชพเชฐเซ‡ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเชจเซ€ เชšเชฐเซเชšเชพ เช•เชฐเซ€เช. เชคเชฎเชพเชฐเซ‡ foo, bar เช…เชจเซ‡ baz เชฌเชจเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชถเซเช‚ เช† เชคเซเชฐเชฃ เช•เชพเชฐเซเชฏเซ‹ เช›เซ‡, เชเช• เชญเซ‚เชฎเชฟเช•เชพ เช›เซ‡ เช•เซ‡ เชคเซเชฐเชฃ เชญเซ‚เชฎเชฟเช•เชพเช“? เชชเซเชฐเชถเซเชจเชจเซ‹ เชธเชพเชฐเชพเช‚เชถ เช†เชชเชตเชพ เชฎเชพเชŸเซ‡: เชคเชฎเชพเชฐเซ‡ เช•เชฏเชพ เชคเชฌเช•เซเช•เซ‡ เชญเซ‚เชฎเชฟเช•เชพเช“ เชฒเช–เชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช? เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เช•เชพเชฐเซเชฏเซ‹ เชฒเช–เซ€ เชถเช•เซ‹ เชคเซเชฏเชพเชฐเซ‡ เชญเซ‚เชฎเชฟเช•เชพเช“ เชฒเช–เชตเชพเชจเซ‹ เช…เชฐเซเชฅ เชถเซเช‚ เช›เซ‡?... เชญเซ‚เชฎเชฟเช•เชพ เชถเซเช‚ เช›เซ‡?

เชธเซŒเชฅเซ€ เชฎเซ‹เชŸเซ€ เชญเซ‚เชฒเซ‹เชฎเชพเช‚เชจเซ€ เชเช• (เชฎเซ‡เช‚ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช† เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€ เช›เซ‡) เช เชตเชฟเชšเชพเชฐเชตเซเช‚ เช›เซ‡ เช•เซ‡ เชญเซ‚เชฎเชฟเช•เชพ เช เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชจเซ€ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชจเชพ เชซเช‚เช•เซเชถเชจ เชœเซ‡เชตเซ€ เช›เซ‡. เชธเชพเชฎเชพเชจเซเชฏ เช•เชพเชฐเซเชฏ เชตเชฐเซเชฃเชจ เช•เซ‡เชตเซเช‚ เชฆเซ‡เช–เชพเชฏ เช›เซ‡? เชคเซ‡ เช‡เชจเชชเซเชŸ เชฆเชฒเซ€เชฒเซ‹ เชธเซเชตเซ€เช•เชพเชฐเซ‡ เช›เซ‡, เช†เชกเช…เชธเชฐเซ‹เชจเชพ เช•เชพเชฐเชฃเซ‹ เชธเชพเชฅเซ‡ เช•เซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพ เช•เชฐเซ‡ เช›เซ‡, เช†เชกเช…เชธเชฐเซ‹ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชฎเซ‚เชฒเซเชฏ เชชเชฐเชค เช•เชฐเซ‡ เช›เซ‡.

เชนเชตเซ‡, เชงเซเชฏเชพเชจ. เชญเซ‚เชฎเชฟเช•เชพเชฎเชพเช‚ เช†เชฎเชพเช‚เชฅเซ€ เชถเซเช‚ เช•เชฐเซ€ เชถเช•เชพเชฏ? เช†เชกเช…เชธเชฐเซ‹ เช•เชนเซ‡เชตเชพ เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซเช‚ เชนเช‚เชฎเซ‡เชถเชพ เชธเซเชตเชพเช—เชค เช›เซ‡, เช† เชธเชฎเช—เซเชฐ เชœเชตเชพเชฌเชจเซ‹ เชธเชพเชฐ เช›เซ‡ - เช†เชกเช…เชธเชฐเซ‹ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡. เชฌเชพเชœเซเชจเชพ เช•เชพเชฐเชฃเซ‹ เช›เซ‡? เชชเซเชฐเชพเชฅเชฎเชฟเช•. เชชเชฐเช‚เชคเซ "เชฎเซ‚เชฒเซเชฏ เชชเชพเชธ เช•เชฐเซ‹ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชชเชฐเชค เช•เชฐเซ‹" เชธเชพเชฅเซ‡ - เชคเซ‡ เชœเซเชฏเชพเช‚ เช•เชพเชฎ เช•เชฐเชคเซเช‚ เชจเชฅเซ€. เชชเซเชฐเชฅเชฎ, เชคเชฎเซ‡ เช•เซ‹เชˆ เชญเซ‚เชฎเชฟเช•เชพเชจเซ‡ เชฎเซ‚เชฒเซเชฏ เช†เชชเซ€ เชถเช•เชคเชพ เชจเชฅเซ€. เชคเชฎเซ‡ เชญเซ‚เชฎเชฟเช•เชพ เชฎเชพเชŸเซ‡ vars เชตเชฟเชญเชพเช—เชฎเชพเช‚ เชฐเชฎเชคเชจเชพ เช†เชœเซ€เชตเชจ เช•เชฆ เชธเชพเชฅเซ‡ เชตเซˆเชถเซเชตเชฟเช• เชšเชฒ เชธเซ‡เชŸ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เชคเชฎเซ‡ เชญเซ‚เชฎเชฟเช•เชพเชจเซ€ เช…เช‚เชฆเชฐ เช†เชœเซ€เชตเชจ เชฐเชฎเชค เชธเชพเชฅเซ‡ เชตเซˆเชถเซเชตเชฟเช• เชšเชฒ เชธเซ‡เชŸ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เช…เชฅเชตเชพ เชชเซเชฒเซ‡เชฌเซเช•เซเชธเชจเชพ เชœเซ€เชตเชจเช•เชพเชณ เชธเชพเชฅเซ‡ เชชเชฃ (set_fact/register). เชชเชฐเช‚เชคเซ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ "เชธเซเชฅเชพเชจเชฟเช• เชšเชฒเซ‹" เชนเซ‹เชˆ เชถเช•เชคเชพ เชจเชฅเซ€. เชคเชฎเซ‡ "เชฎเซ‚เชฒเซเชฏ เชฒเชˆ เชถเช•เชคเชพ เชจเชฅเซ€" เช…เชจเซ‡ "เชคเซ‡ เชชเชฐเชค เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹".

เชฎเซเช–เซเชฏ เชตเชธเซเชคเซ เช†เชจเชพเชฅเซ€ เชจเซ€เชšเซ‡ เช†เชตเซ‡ เช›เซ‡: เชคเชฎเซ‡ เช†เชกเช…เชธเชฐ เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เชœเชตเชพเชฌเชฎเชพเช‚ เช•เช‚เชˆเช• เชฒเช–เซ€ เชถเช•เชคเชพ เชจเชฅเซ€. เชตเซˆเชถเซเชตเชฟเช• เชšเชฒเซ‹เชจเซ‡ เชฌเชฆเชฒเชตเซเช‚ เช เชนเช‚เชฎเซ‡เชถเชพ เชซเช‚เช•เซเชถเชจ เชฎเชพเชŸเซ‡ เช†เชกเช…เชธเชฐ เช›เซ‡. เชฐเชธเซเชŸเชฎเชพเช‚, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชตเซˆเชถเซเชตเชฟเช• เชšเชฒ เชฌเชฆเชฒเชตเชพเชจเซเช‚ เช›เซ‡ unsafe. เช…เชจเซ‡ เชเชจเซเชธเชฟเชฌเชฒเชฎเชพเช‚ เชญเซ‚เชฎเชฟเช•เชพ เชฎเชพเชŸเซ‡เชจเชพ เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ‡ เชชเซเชฐเชญเชพเชตเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชเช•เชฎเชพเชคเซเชฐ เชชเชฆเซเชงเชคเชฟ เช›เซ‡. เชตเชชเชฐเชพเชฏเซ‡เชฒ เชถเชฌเซเชฆเซ‹เชจเซ€ เชจเซ‹เช‚เชง เชฒเซ‹: "เชญเซ‚เชฎเชฟเช•เชพ เชฎเชพเชŸเซ‡ เชฎเซ‚เชฒเซเชฏ เชชเชธเชพเชฐ เช•เชฐเซ‹" เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ "เชญเซ‚เชฎเชฟเช•เชพ เชตเชพเชชเชฐเซ‡ เช›เซ‡ เชคเซ‡ เชฎเซ‚เชฒเซเชฏเซ‹ เชฌเชฆเชฒเซ‹". เชญเซ‚เชฎเชฟเช•เชพเช“ เชตเชšเซเชšเซ‡ เช•เซ‹เชˆ เช…เชฒเช—เชคเชพ เชจเชฅเซ€. เช•เชพเชฐเซเชฏเซ‹ เช…เชจเซ‡ เชญเซ‚เชฎเชฟเช•เชพเช“ เชตเชšเซเชšเซ‡ เช•เซ‹เชˆ เช…เชฒเช—เชคเชพ เชจเชฅเซ€.

เช•เซเชฒ: เชญเซ‚เชฎเชฟเช•เชพ เช เช•เชพเชฐเซเชฏ เชจเชฅเซ€.

เชญเซ‚เชฎเชฟเช•เชพ เชตเชฟเชถเซ‡ เชถเซเช‚ เชธเชพเชฐเซเช‚ เช›เซ‡? เชชเซเชฐเชฅเชฎ, เชญเซ‚เชฎเชฟเช•เชพเชฎเชพเช‚ เชฎเซ‚เชณเชญเซ‚เชค เชฎเซ‚เชฒเซเชฏเซ‹ เช›เซ‡ (/default/main.yaml), เชฌเซ€เชœเซเช‚, เชญเซ‚เชฎเชฟเช•เชพเชฎเชพเช‚ เชซเชพเช‡เชฒเซ‹เชจเซ‡ เชธเซเชŸเซ‹เชฐ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชตเชงเชพเชฐเชพเชจเซ€ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เช“ เช›เซ‡.

เชกเชฟเชซเซ‰เชฒเซเชŸ เชฎเซ‚เชฒเซเชฏเซ‹เชจเชพ เชซเชพเชฏเชฆเชพ เชถเซเช‚ เช›เซ‡? เช•เชพเชฐเชฃ เช•เซ‡ เชฎเชพเชธเซเชฒเซ‹เชจเชพ เชชเชฟเชฐเชพเชฎเชฟเชกเชฎเชพเช‚, เชเชจเซเชธเชฟเชฌเชฒเชจเซเช‚ เชšเชฒ เช…เช—เซเชฐเชคเชพเชจเชพ เชฌเชฆเชฒเซ‡ เชตเชฟเช•เซƒเชค เช•เซ‹เชทเซเชŸเช•, เชฐเซ‹เชฒ เชกเชฟเชซเซ‹เชฒเซเชŸ เช เชธเซŒเชฅเซ€ เช“เช›เซ€ เช…เช—เซเชฐเชคเชพ เช›เซ‡ (เชฎเชพเชˆเชจเชธ เชเชจเซเชธเชฟเชฌเชฒ เช•เชฎเชพเชจเซเชก เชฒเชพเช‡เชจ เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐเซเชธ). เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชœเซ‹ เชคเชฎเชพเชฐเซ‡ เชกเชฟเชซเซ‰เชฒเซเชŸ เชฎเซ‚เชฒเซเชฏเซ‹ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ เช…เชจเซ‡ เช‡เชจเซเชตเซ‡เชจเซเชŸเชฐเซ€ เช…เชฅเชตเชพ เชœเซ‚เชฅ เชšเชฒเซ‹เชฎเชพเช‚เชฅเซ€ เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ‡ เช“เชตเชฐเชฐเชพเช‡เชก เช•เชฐเชตเชพเชจเซ€ เชšเชฟเช‚เชคเชพ เชจ เช•เชฐเซ‹, เชคเซ‹ เชชเช›เซ€ เชฐเซ‹เชฒ เชกเชฟเชซเซ‹เชฒเซเชŸเซเชธ เชคเชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชเช•เชฎเชพเชคเซเชฐ เชฏเซ‹เช—เซเชฏ เชธเซเชฅเชพเชจ เช›เซ‡. (เชนเซเช‚ เชฅเซ‹เชกเซเช‚ เช–เซ‹เชŸเซเช‚ เชฌเซ‹เชฒเซเช‚ เช›เซเช‚ - เชคเซเชฏเชพเช‚ เชตเชงเซ เช›เซ‡ |d(your_default_here), เชชเชฐเช‚เชคเซ เชœเซ‹ เช†เชชเชฃเซ‡ เชธเซเชฅเชฟเชฐ เชธเซเชฅเชพเชจเซ‹ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€เช, เชคเซ‹ เชฎเชพเชคเซเชฐ เชญเซ‚เชฎเชฟเช•เชพ เชกเชฟเชซเซ‹เชฒเซเชŸ).

เชญเซ‚เชฎเชฟเช•เชพเช“ เชตเชฟเชถเซ‡ เชฌเซ€เชœเซเช‚ เชถเซเช‚ เชฎเชนเชพเชจ เช›เซ‡? เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡เชฎเชจเซ€ เชชเชพเชธเซ‡ เชคเซ‡เชฎเชจเชพ เชชเซ‹เชคเชพเชจเชพ เช•เซ‡เชŸเชฒเซ‹เช— เช›เซ‡. เช† เชšเชฒเซ‹เชจเซ€ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เช“ เช›เซ‡, เชฌเช‚เชจเซ‡ เชธเซเชฅเชฟเชฐ (เชเชŸเชฒเซ‡ โ€‹โ€‹โ€‹โ€‹เช•เซ‡ เชญเซ‚เชฎเชฟเช•เชพ เชฎเชพเชŸเซ‡ เช—เชฃเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡) เช…เชจเซ‡ เช—เชคเชฟเชถเซ€เชฒ (เชคเซเชฏเชพเช‚ เช•เชพเช‚ เชคเซ‹ เชชเซ‡เชŸเชฐเซเชจ เช›เซ‡ เช…เชฅเชตเชพ เชเชจเซเชŸเชฟ-เชชเซ‡เชŸเชฐเซเชจ เช›เซ‡ - include_vars เชธเชพเชฅเซ‡ {{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml.). เช† เชฎเชพเชŸเซ‡ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เช“ เช›เซ‡ files/, templates/. เช‰เชชเชฐเชพเช‚เชค, เชคเซ‡ เชคเชฎเชจเซ‡ เชคเชฎเชพเชฐเชพ เชชเซ‹เชคเชพเชจเชพ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹ เช…เชจเซ‡ เชชเซเชฒเช—เชˆเชจเซเชธ เชฐเชพเช–เชตเชพเชจเซ€ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡ (library/). เชชเชฐเช‚เชคเซ, เชชเซเชฒเซ‡เชฌเซเช• (เชœเซ‡เชฎเชพเช‚ เช† เชฌเชงเซเช‚ เชชเชฃ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡) เชฎเชพเช‚เชจเชพ เช•เชพเชฐเซเชฏเซ‹เชจเซ€ เชคเซเชฒเชจเชพเชฎเชพเช‚, เช…เชนเซ€เช‚ เชฎเชพเชคเซเชฐ เชเช• เชœ เชซเชพเชฏเชฆเซ‹ เช เช›เซ‡ เช•เซ‡ เชซเชพเช‡เชฒเซ‹ เชเช• เช–เซ‚เช‚เชŸเซ‹เชฎเชพเช‚ เชกเชฎเซเชช เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชคเซ€ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เช˜เชฃเชพ เช…เชฒเช— เชฅเชพเช‚เชญเชฒเชพเช“ เช›เซ‡.

เชเช• เชตเชงเซ เชตเชฟเช—เชค: เชคเชฎเซ‡ เชเชตเซ€ เชญเซ‚เชฎเชฟเช•เชพเช“ เชฌเชจเชพเชตเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เชœเซ‡ เชชเซเชจเชƒเช‰เชชเชฏเซ‹เช— เชฎเชพเชŸเซ‡ เช‰เชชเชฒเชฌเซเชง เชนเชถเซ‡ (เช—เซ‡เชฒเซ‡เช•เซเชธเซ€ เชฆเซเชตเชพเชฐเชพ). เชธเช‚เช—เซเชฐเชนเชจเชพ เช†เช—เชฎเชจ เชธเชพเชฅเซ‡, เชญเซ‚เชฎเชฟเช•เชพเชจเซเช‚ เชตเชฟเชคเชฐเชฃ เชฒเช—เชญเช— เชญเซ‚เชฒเซ€ เช—เชฏเซ‡เชฒเซเช‚ เช—เชฃเซ€ เชถเช•เชพเชฏ.

เช†เชฎ, เชญเซ‚เชฎเชฟเช•เชพเช“เชฎเชพเช‚ เชฌเซ‡ เชฎเชนเชคเซเชตเชจเซ€ เชตเชฟเชถเซ‡เชทเชคเชพเช“ เชนเซ‹เชฏ เช›เซ‡: เชคเซ‡เชฎเชพเช‚ เชกเชฟเชซเซ‹เชฒเซเชŸ (เชเช• เช…เชจเชจเซเชฏ เชฒเช•เซเชทเชฃ) เชนเซ‹เชฏ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡ เชคเชฎเชจเซ‡ เชคเชฎเชพเชฐเชพ เช•เซ‹เชกเชจเซ€ เชฐเชšเชจเชพ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡.

เชฎเซ‚เชณ เชชเซเชฐเชถเซเชจ เชชเชฐ เชชเชพเช›เชพ เชซเชฐเซ‹: เช•เชพเชฐเซเชฏเซ‹ เช•เซเชฏเชพเชฐเซ‡ เช•เชฐเชตเชพ เช…เชจเซ‡ เช•เซเชฏเชพเชฐเซ‡ เชญเซ‚เชฎเชฟเช•เชพเช“ เช•เชฐเชตเซ€? เชชเซเชฒเซ‡เชฌเซเช•เชฎเชพเช‚เชจเชพ เช•เชพเชฐเซเชฏเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฎเซ‹เชŸเชพเชญเชพเช—เซ‡ เชญเซ‚เชฎเชฟเช•เชพเช“ เชชเชนเซ‡เชฒเชพเช‚/เชชเช›เซ€ "เช—เซเช‚เชฆเชฐ" เชคเชฐเซ€เช•เซ‡ เช…เชฅเชตเชพ เชธเซเชตเชคเช‚เชคเซเชฐ เชฌเชฟเชฒเซเชกเชฟเช‚เช— เชเชฒเชฟเชฎเซ‡เชจเซเชŸ เชคเชฐเซ€เช•เซ‡ เชฅเชพเชฏ เช›เซ‡ (เชชเช›เซ€ เช•เซ‹เชกเชฎเชพเช‚ เช•เซ‹เชˆ เชญเซ‚เชฎเชฟเช•เชพ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช เชจเชนเซ€เช‚). เชญเซ‚เชฎเชฟเช•เชพเช“ เชธเชพเชฅเซ‡ เชฎเชฟเชถเซเชฐเชฟเชค เชธเชพเชฎเชพเชจเซเชฏ เช•เชพเชฐเซเชฏเซ‹เชจเซ‹ เชขเช—เชฒเซ‹ เช เช…เชธเซเชชเชทเซเชŸ เชขเซ‹เชณเชพเชต เช›เซ‡. เชคเชฎเชพเชฐเซ‡ เชšเซ‹เช•เซเช•เชธ เชถเซˆเชฒเซ€เชจเซเช‚ เชชเชพเชฒเชจ เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช - เช•เชพเช‚ เชคเซ‹ เช•เชพเชฐเซเชฏ เช…เชฅเชตเชพ เชญเซ‚เชฎเชฟเช•เชพ. เชญเซ‚เชฎเชฟเช•เชพเช“ เชเชจเซเชŸเชฟเชŸเซ€ เช…เชจเซ‡ เชกเชฟเชซเซ‹เชฒเซเชŸเชจเซ‡ เช…เชฒเช— เชชเชพเชกเซ‡ เช›เซ‡, เช•เชพเชฐเซเชฏเซ‹ เชคเชฎเชจเซ‡ เชเชกเชชเชฅเซ€ เช•เซ‹เชก เชตเชพเช‚เชšเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชตเชงเซ "เชธเซเชฅเชฟเชฐ" (เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช…เชจเซ‡ เชœเชŸเชฟเชฒ) เช•เซ‹เชก เชญเซ‚เชฎเชฟเช•เชพเช“เชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เชธเชนเชพเชฏเช• เชธเซเช•เซเชฐเชฟเชชเซเชŸเซ‹ เช•เชพเชฐเซเชฏ เชถเซˆเชฒเซ€เชฎเชพเช‚ เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เชเช• เช•เชพเชฐเซเชฏ เชคเชฐเซ€เช•เซ‡ import_role เช•เชฐเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡, เชชเชฐเช‚เชคเซ เชœเซ‹ เชคเชฎเซ‡ เช† เชฒเช–เซ‹ เช›เซ‹, เชคเซ‹ เชชเช›เซ€ เชคเชฎเซ‡ เชถเชพ เชฎเชพเชŸเซ‡ เช† เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ‹ เช›เซ‹ เชคเซ‡ เชคเชฎเชพเชฐเซ€ เชชเซ‹เชคเชพเชจเซ€ เชธเซเช‚เชฆเชฐเชคเชพเชจเซ€ เชธเชฎเชœเชจเซ‡ เชธเชฎเชœเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ เชฐเชนเซ‹.

เชเช• เชšเชคเซเชฐ เชตเชพเชšเช• เช•เชนเซ€ เชถเช•เซ‡ เช›เซ‡ เช•เซ‡ เชญเซ‚เชฎเชฟเช•เชพเช“ เชญเซ‚เชฎเชฟเช•เชพเช“ เช†เชฏเชพเชค เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡, เชญเซ‚เชฎเชฟเช•เชพเช“ galaxy.yml เชฆเซเชตเชพเชฐเชพ เชจเชฟเชฐเซเชญเชฐเชคเชพ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡, เช…เชจเซ‡ เชเช• เชญเชฏเช‚เช•เชฐ เช…เชจเซ‡ เชญเชฏเช‚เช•เชฐ เชชเชฃ เช›เซ‡. include_role โ€” เชนเซเช‚ เชคเชฎเชจเซ‡ เชฏเชพเชฆ เช•เชฐเชพเชตเซเช‚ เช›เซเช‚ เช•เซ‡ เช…เชฎเซ‡ เชฌเซ‡เชเชฟเช• เชเชจเซเชธเชฟเชฌเชฒเชฎเชพเช‚ เช•เซเชถเชณเชคเชพ เชธเซเชงเชพเชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช, เชซเชฟเช—เชฐ เชœเชฟเชฎเซเชจเซ‡เชธเซเชŸเชฟเช•เซเชธเชฎเชพเช‚ เชจเชนเซ€เช‚.

เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ เช…เชจเซ‡ เช•เชพเชฐเซเชฏเซ‹

เชšเชพเชฒเซ‹ เชฌเซ€เชœเซ€ เชธเซเชชเชทเซเชŸ เชฌเชพเชฌเชคเชจเซ€ เชšเชฐเซเชšเชพ เช•เชฐเซ€เช: เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ. เชคเซ‡เชจเซ‹ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เช‰เชชเชฏเซ‹เช— เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซ‹ เชคเซ‡ เชœเชพเชฃเชตเซเช‚ เช เชฒเช—เชญเช— เชเช• เช•เชณเชพ เช›เซ‡. เชนเซ‡เชจเซเชกเชฒเชฐ เช…เชจเซ‡ เชกเซเชฐเซ‡เช— เชตเชšเซเชšเซ‡ เชถเซเช‚ เชคเชซเชพเชตเชค เช›เซ‡?

เช…เชฎเซ‡ เชฎเซ‚เชณเชญเซ‚เชค เชฌเชพเชฌเชคเซ‹เชจเซ‡ เชฏเชพเชฆ เชฐเชพเช–เซ€ เชฐเชนเซเชฏเชพเช‚ เชนเซ‹เชตเชพเชฅเซ€, เช…เชนเซ€เช‚ เชเช• เช‰เชฆเชพเชนเชฐเชฃ เช›เซ‡:

- hosts: group1
  tasks:
    - foo:
      notify: handler1
  handlers:
     - name: handler1
       bar:

เชฐเซ‹เชฒเชจเชพ เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ rolename/handlers/main.yaml เชฎเชพเช‚ เชธเซเชฅเชฟเชค เช›เซ‡. เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ เชจเชพเชŸเช•เชจเชพ เชฌเชงเชพ เชธเชนเชญเชพเช—เซ€เช“ เชตเชšเซเชšเซ‡ เชฐเชฎเชเชŸ เช•เชฐเซ‡ เช›เซ‡: เชชเซเชฐเซ€/เชชเซ‹เชธเซเชŸ_เชŸเชพเชธเซเช• เชฐเซ‹เชฒ เชนเซ‡เชจเซเชกเชฒเชฐเซเชธเชจเซ‡ เช–เซ‡เช‚เชšเซ€ เชถเช•เซ‡ เช›เซ‡, เช…เชจเซ‡ เชฐเซ‹เชฒ เชนเซ‡เชจเซเชกเชฒเชฐเซเชธเชจเซ‡ เชจเชพเชŸเช•เชฎเชพเช‚เชฅเซ€ เช–เซ‡เช‚เชšเซ€ เชถเช•เซ‡ เช›เซ‡. เชœเซ‹ เช•เซ‡, เชนเซ‡เชจเซเชกเชฒเชฐเซเชธเชจเซ‡ "เช•เซเชฐเซ‹เชธ-เชฐเซ‹เชฒ" เช•เซ‰เชฒเซเชธ เชคเซเชšเซเช› เชนเซ‡เชจเซเชกเชฒเชฐเชจเซ‡ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เช•เชฐเชตเชพ เช•เชฐเชคเชพเช‚ เชตเชงเซ wtf เชจเซเช‚ เช•เชพเชฐเชฃ เชฌเชจเซ‡ เช›เซ‡. (เชถเซเชฐเซ‡เชทเซเช  เชชเซเชฐเซ‡เช•เซเชŸเชฟเชธเชจเซเช‚ เชฌเซ€เชœเซเช‚ เชคเชคเซเชต เช เช›เซ‡ เช•เซ‡ เชนเซ‡เชจเซเชกเชฒเชฐเชจเชพ เชจเชพเชฎเซ‹เชจเซเช‚ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เชจ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเชตเซ‹).

เชฎเซเช–เซเชฏ เชคเชซเชพเชตเชค เช เช›เซ‡ เช•เซ‡ เช•เชพเชฐเซเชฏ เชนเช‚เชฎเซ‡เชถเชพ (เชธเชฎเชฐเซเชฅเชจเชชเซ‚เชฐเซเชตเช•) เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ (เชชเซเชฒเชธ/เชฎเชพเชˆเชจเชธ เชŸเซ…เช—เซเชธ เช…เชจเซ‡ when), เช…เชจเซ‡ เชนเซ‡เชจเซเชกเชฒเชฐ - เชฐเชพเชœเซเชฏเชจเชพ เชซเซ‡เชฐเชซเชพเชฐ เชฆเซเชตเชพเชฐเชพ (เชœเซ‹ เชคเซ‡ เชฌเชฆเชฒเชพเชฏเซ‡เชฒ เชนเซ‹เชฏ เชคเซ‹ เชœ เช†เช—เชจเซ‡ เชธเซ‚เชšเชฟเชค เช•เชฐเซ‹). เช†เชจเซ‹ เชฎเชคเชฒเชฌ เชถเซเช‚ เชฅเชฏเซ‹? เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชนเช•เซ€เช•เชค เช เช›เซ‡ เช•เซ‡ เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซ‹ เช›เซ‹, เชœเซ‹ เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เชซเซ‡เชฐเชซเชพเชฐ เชฅเชฏเซ‹ เชจ เชนเชคเซ‹, เชคเซ‹ เชชเช›เซ€ เช•เซ‹เชˆ เชนเซ‡เชจเซเชกเชฒเชฐ เชนเชถเซ‡ เชจเชนเซ€เช‚. เชœเซเชฏเชพเชฐเซ‡ เชœเชจเชฐเซ‡เชŸเซ€เช‚เช— เช•เชพเชฐเซเชฏเชฎเชพเช‚ เช•เซ‹เชˆ เชซเซ‡เชฐเชซเชพเชฐ เชฅเชฏเซ‹ เชจ เชนเชคเซ‹ เชคเซเชฏเชพเชฐเซ‡ เช†เชชเชฃเซ‡ เชนเซ‡เชจเซเชกเชฒเชฐเชจเซ‡ เชเช•เซเชเซ€เช•เซเชฏเซเชŸ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช•เซ‡เชฎ เชชเชกเซ€ เชถเช•เซ‡? เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เช•เช‚เชˆเช• เชคเซ‚เชŸเซ€ เช—เชฏเซเช‚ เช…เชจเซ‡ เชฌเชฆเชฒเชพเชฏเซเช‚, เชชเชฐเช‚เชคเซ เช…เชฎเชฒ เชนเซ‡เชจเซเชกเชฒเชฐ เชธเซเชงเซ€ เชชเชนเซ‹เช‚เชšเซเชฏเซ‹ เชจเชนเซ€เช‚. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เช…เชธเซเชฅเชพเชฏเซ€ เชฐเซ‚เชชเซ‡ เชฌเช‚เชง เชนเชคเซเช‚. เชฐเซ‚เชชเชฐเซ‡เช–เชพ เชฌเชฆเชฒเชพเชˆ เช—เชˆ เช›เซ‡, เชธเซ‡เชตเชพ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชจเชฅเซ€. เช†เช—เชฒเซ€ เชตเช–เชคเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชถเชฐเซ‚ เช•เชฐเซ‹ เช›เซ‹, เชคเซเชฏเชพเชฐเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพ เชนเชตเซ‡ เชฌเชฆเชฒเชพเชคเซ€ เชจเชฅเซ€, เช…เชจเซ‡ เชธเซ‡เชตเชพ เชฐเซ‚เชชเชฐเซ‡เช–เชพเชจเชพ เชœเซ‚เชจเชพ เชธเช‚เชธเซเช•เชฐเชฃ เชธเชพเชฅเซ‡ เชฐเชนเซ‡ เช›เซ‡.

เชฐเซ‚เชชเชฐเซ‡เช–เชพ เชธเชพเชฅเซ‡เชจเซ€ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเชจเซ‡ เชนเชฒ เช•เชฐเซ€ เชถเช•เชพเชคเซ€ เชจเชฅเซ€ (เชตเชงเซ เชธเซเชชเชทเซเชŸ เชฐเซ€เชคเซ‡, เชคเชฎเซ‡ เชซเชพเช‡เชฒ เชซเซเชฒเซ‡เช—เซเชธ เชตเช—เซ‡เชฐเซ‡ เชธเชพเชฅเซ‡ เชคเชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชตเชฟเชถเชฟเชทเซเชŸ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเซ€ เชถเซ‹เชง เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชชเชฐเช‚เชคเซ เช† เชนเชตเซ‡ เช•เซ‹เชˆเชชเชฃ เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ 'เชฎเซ‚เชณเชญเซ‚เชค เชœเชตเชพเชฌ' เชจเชฅเซ€). เชชเชฐเช‚เชคเซ เชฌเซ€เชœเซ€ เชธเชพเชฎเชพเชจเซเชฏ เชตเชพเชฐเซเชคเชพ เช›เซ‡: เช…เชฎเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€, เชคเซ‡เชจเซ‡ เชฐเซ‡เช•เซ‹เชฐเซเชก เช•เชฐเซ€ .service-เชซเชพเชˆเชฒ, เช…เชจเซ‡ เชนเชตเซ‡ เช…เชฎเชจเซ‡ เชคเซ‡ เชœเซ‹เชˆเช เช›เซ‡ daemon_reload ะธ state=started. เช…เชจเซ‡ เช† เชฎเชพเชŸเซ‡ เช•เซเชฆเชฐเชคเซ€ เชธเซเชฅเชณ เชนเซ‡เชจเซเชกเชฒเชฐ เชฒเชพเช—เซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ เชœเซ‹ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชนเซ‡เชจเซเชกเชฒเชฐ เชจเชนเซ€เช‚ เชชเชฐเช‚เชคเซ เชŸเชพเชธเซเช•เชฒเชฟเชธเซเชŸ เช…เชฅเชตเชพ เชฐเซ‹เชฒเชจเชพ เช…เช‚เชคเซ‡ เชเช• เชŸเชพเชธเซเช• เชฌเชจเชพเชตเซ‹ เช›เซ‹, เชคเซ‹ เชคเซ‡ เชฆเชฐ เชตเช–เชคเซ‡ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. เชญเชฒเซ‡ เชชเซเชฒเซ‡เชฌเซเช• เช…เชงเชตเชšเซเชšเซ‡ เชœ เชคเซ‚เชŸเซ€ เชœเชพเชฏ. เช† เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เชฅเชฏเซ‡เชฒ เชธเชฎเชธเซเชฏเชพเชจเซ‡ เชนเชฒ เช•เชฐเชคเซเช‚ เชจเชฅเซ€ (เชคเชฎเซ‡ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซ‡เชฒ เชตเชฟเชถเซ‡เชทเชคเชพ เชธเชพเชฅเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ€ เชถเช•เชคเชพ เชจเชฅเซ€, เช•เชพเชฐเชฃ เช•เซ‡ เชฌเซเชฆเซเชงเชฟเชถเช•เซเชคเชฟ เช–เซ‹เชตเชพเชˆ เช—เชˆ เช›เซ‡), เชชเชฐเช‚เชคเซ เชคเซ‡ เชšเซ‹เช•เซเช•เชธเชชเชฃเซ‡ เช•เชฐเชตเชพ เชฏเซ‹เช—เซเชฏ เช›เซ‡ เชฐเชพเชœเซเชฏ = เชถเชฐเซเช†เชค, เชชเซเชฒเซ‡เชฌเซเช•เชจเซ€ เชเช•เช‚เชฆเชฐ เชธเซเชฅเชฟเชฐเชคเชพ เชตเชงเซ‡ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เชœเซ‹เชกเชพเชฃเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพ เช…เชจเซ‡ เช—เชคเชฟเชถเซ€เชฒ เชธเซเชฅเชฟเชคเชฟ เช˜เชŸเซ‡ เช›เซ‡.

เชนเซ‡เชจเซเชกเชฒเชฐเชจเซ€ เชฌเซ€เชœเซ€ เชธเช•เชพเชฐเชพเชคเซเชฎเช• เช—เซเชฃเชงเชฐเซเชฎ เช เช›เซ‡ เช•เซ‡ เชคเซ‡ เช†เช‰เชŸเชชเซเชŸเชจเซ‡ เชฌเช‚เชง เช•เชฐเชคเซเช‚ เชจเชฅเซ€. เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชจ เชนเชคเชพ - เช†เช‰เชŸเชชเซเชŸเชฎเชพเช‚ เช•เซ‹เชˆ เชตเชงเชพเชฐเชพเชจเซเช‚ เช›เซ‹เชกเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชจเชฅเซ€ เช…เชฅเชตเชพ เชฌเชฐเชพเชฌเชฐ เชจเชฅเซ€ - เชตเชพเช‚เชšเชตเชพเชฎเชพเช‚ เชธเชฐเชณ เช›เซ‡. เชคเซ‡ เชจเช•เชพเชฐเชพเชคเซเชฎเช• เช—เซเชฃเชงเชฐเซเชฎ เชชเชฃ เช›เซ‡ - เชœเซ‹ เชคเชฎเชจเซ‡ เชชเชนเซ‡เชฒเซ€ เชœ เชตเชพเชฐเชฎเชพเช‚ เชฒเซ€เชจเชฟเชฏเชฐเชฒเซ€ เชเช•เซเชเชฟเช•เซเชฏเซเชŸเซ‡เชก เชŸเชพเชธเซเช•เชฎเชพเช‚ เชŸเชพเชˆเชชเซ‹ เชฎเชณเซ‡, เชคเซ‹ เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ เชœเซเชฏเชพเชฐเซ‡ เชฌเชฆเชฒเชพเชถเซ‡ เชคเซเชฏเชพเชฐเซ‡ เชœ เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡, เชเชŸเชฒเซ‡ เช•เซ‡. เช•เซ‡เชŸเชฒเซ€เช• เชถเชฐเชคเซ‹ เชนเซ‡เช เชณ - เช–เซ‚เชฌ เชœ เชญเชพเช—เซเชฏเซ‡ เชœ. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชชเชพเช‚เชš เชตเชฐเซเชท เชชเช›เซ€ เชฎเชพเชฐเชพ เชœเซ€เชตเชจเชฎเชพเช‚ เชชเซเชฐเชฅเชฎ เชตเช–เชค. เช…เชจเซ‡, เช…เชฒเชฌเชคเซเชค, เชจเชพเชฎเชฎเชพเช‚ เชŸเชพเช‡เชชเซ‹ เชนเชถเซ‡ เช…เชจเซ‡ เชฌเชงเซเช‚ เชคเซ‚เชŸเซ€ เชœเชถเซ‡. เช…เชจเซ‡ เชœเซ‹ เชคเชฎเซ‡ เชคเซ‡เชฎเชจเซ‡ เชฌเซ€เชœเซ€ เชตเช–เชค เชšเชฒเชพเชตเชคเชพ เชจเชฅเซ€, เชคเซ‹ เชคเซ‡เชฎเชพเช‚ เช•เซ‹เชˆ เชซเซ‡เชฐเชซเชพเชฐ เชฅเชคเซ‹ เชจเชฅเซ€.

เช…เชฒเช—เชฅเซ€, เช†เชชเชฃเซ‡ เชšเชฒเซ‹เชจเซ€ เช‰เชชเชฒเชฌเซเชงเชคเชพ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเซ‹ เชคเชฎเซ‡ เชฒเซ‚เชช เชตเชกเซ‡ เช•เชพเชฐเซเชฏเชจเซ‡ เชธเซ‚เชšเชฟเชค เช•เชฐเซ‹ เช›เซ‹, เชคเซ‹ เชšเชฒเซ‹เชฎเชพเช‚ เชถเซเช‚ เชนเชถเซ‡? เชคเชฎเซ‡ เชตเชฟเชถเซเชฒเซ‡เชทเชฃเชพเชคเซเชฎเช• เชฐเซ€เชคเซ‡ เช…เชจเซเชฎเชพเชจ เชฒเช—เชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹, เชชเชฐเช‚เชคเซ เชคเซ‡ เชนเช‚เชฎเซ‡เชถเชพ เชคเซเชšเซเช› เชจเชฅเซ€, เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชœเซ‹ เชšเชฒเซ‹ เชตเชฟเชตเชฟเชง เชธเซเชฅเชณเซ‹เชเชฅเซ€ เช†เชตเซ‡.

... เชคเซ‡เชฅเซ€ เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ เชคเซ‡เช“ เชฒเชพเช—เซ‡ เช›เซ‡ เชคเซ‡เชจเชพ เช•เชฐเชคเชพเช‚ เช˜เชฃเชพ เช“เช›เชพ เช‰เชชเชฏเซ‹เช—เซ€ เช…เชจเซ‡ เชตเชงเซ เชธเชฎเชธเซเชฏเชพเชฐเซ‚เชช เช›เซ‡. เชœเซ‹ เชคเชฎเซ‡ เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ เชตเชฟเชจเชพ เชธเซเช‚เชฆเชฐ เชฐเซ€เชคเซ‡ (เชซเซเชฐเซ€เชฒเซเชธ เชตเชฟเชจเชพ) เช•เช‚เชˆเช• เชฒเช–เซ€ เชถเช•เซ‹ เช›เซ‹, เชคเซ‹ เชคเซ‡ เชคเซ‡เชฎเชจเชพ เชตเชฟเชจเชพ เช•เชฐเชตเซเช‚ เชตเชงเซ เชธเชพเชฐเซเช‚ เช›เซ‡. เชœเซ‹ เชคเซ‡ เชธเซเช‚เชฆเชฐ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเชคเซเช‚ เชจเชฅเซ€, เชคเซ‹ เชคเซ‡ เชคเซ‡เชฎเชจเซ€ เชธเชพเชฅเซ‡ เชตเชงเซ เชธเชพเชฐเซเช‚ เช›เซ‡.

เช•เชพเชŸ เชฒเชพเช—เชคเชพ เชตเชพเชšเช• เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เชจเชฟเชฐเซเชฆเซ‡เชถ เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ เช…เชฎเซ‡ เชšเชฐเซเชšเชพ เช•เชฐเซ€ เชจเชฅเซ€ listenเช•เซ‡ เชนเซ‡เชจเซเชกเชฒเชฐ เชฌเซ€เชœเชพ เชนเซ‡เชจเซเชกเชฒเชฐ เชฎเชพเชŸเซ‡ เชธเซ‚เชšเชฟเชค เช•เซ‰เชฒ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡, เช•เซ‡ เชนเซ‡เชจเซเชกเชฒเชฐ import_tasks (เชœเซ‡เชฎเชพเช‚_items เชธเชพเชฅเซ‡ เชธเชฎเชพเชตเซ€ เชถเช•เซ‡ เช›เซ‡) เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡, เช•เซ‡ Ansible เชฎเชพเช‚ เชนเซ‡เชจเซเชกเชฒเชฐ เชธเชฟเชธเซเชŸเชฎ เชŸเซเชฏเซเชฐเชฟเช‚เช—-เชธเช‚เชชเซ‚เชฐเซเชฃ เช›เซ‡, เช•เซ‡ เชธเชฎเชพเชตเซ‡เชถ_เชฐเซ‹เชฒ เชจเชพ เชนเซ‡เชจเซเชกเชฒเชฐเซ‹ เชฐเชฎเชคเชจเชพ เชนเซ‡เชจเซเชกเชฒเชฐเซ‹ เชธเชพเชฅเซ‡ เชตเชฟเชšเชฟเชคเซเชฐ เชฐเซ€เชคเซ‡ เช›เซ‡เชฆเซ‡ เช›เซ‡, เชตเช—เซ‡เชฐเซ‡. เชกเซ€. - เช† เชฌเชงเซเช‚ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ "เชฎเซ‚เชณเชญเซ‚เชค" เชจเชฅเซ€).

เชœเซ‹ เช•เซ‡ เชคเซเชฏเชพเช‚ เชเช• เชตเชฟเชถเชฟเชทเซเชŸ WTF เช›เซ‡ เชœเซ‡ เชตเชพเชธเซเชคเชตเชฎเชพเช‚ เชเช• เชฒเช•เซเชทเชฃ เช›เซ‡ เชœเซ‡เชจเซ‡ เชคเชฎเชพเชฐเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฐเชพเช–เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชœเซ‹ เชคเชฎเชพเชฐเซเช‚ เช•เชพเชฐเซเชฏ เชธเชพเชฅเซ‡ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ delegate_to เช…เชจเซ‡ เชคเซ‡ เชธเซ‚เชšเชฟเชค เช•เชฐเซ‡ เช›เซ‡, เชชเช›เซ€ เช…เชจเซเชฐเซ‚เชช เชนเซ‡เชจเซเชกเชฒเชฐ เชตเช—เชฐ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ delegate_to, เชเชŸเชฒเซ‡ เช•เซ‡ เชฏเชœเชฎเชพเชจ เชชเชฐ เชœเซเชฏเชพเช‚ เชจเชพเชŸเช• เชธเซ‹เช‚เชชเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡. (เชœเซ‹เช•เซ‡ เชนเซ‡เชจเซเชกเชฒเชฐ, เช…เชฒเชฌเชคเซเชค, เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ delegate_to เชธเชฎเชพเชจ).

เช…เชฒเช—เชฅเซ€, เชนเซเช‚ เชซเชฐเซ€เชฅเซ€ เชตเชพเชชเชฐเซ€ เชถเช•เชพเชฏ เชคเซ‡เชตเซ€ เชญเซ‚เชฎเชฟเช•เชพเช“ เชตเชฟเชถเซ‡ เชฅเซ‹เชกเชพเช• เชถเชฌเซเชฆเซ‹ เช•เชนเซ‡เชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚. เชธเช‚เช—เซเชฐเชนเซ‹ เชฆเซ‡เช–เชพเชฏ เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚, เชเช• เชตเชฟเชšเชพเชฐ เชนเชคเซ‹ เช•เซ‡ เชคเชฎเซ‡ เชธเชพเชฐเซเชตเชคเซเชฐเชฟเช• เชญเซ‚เชฎเชฟเช•เชพเช“ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เชœเซ‡ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ ansible-galaxy install เช…เชจเซ‡ เช—เชฏเชพ. เชฌเชงเซ€ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช“เชฎเชพเช‚ เชคเชฎเชพเชฎ เชตเซ‡เชฐเชฟเชฏเชจเซเชŸเชจเชพ เชคเชฎเชพเชฎ OS เชชเชฐ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡. เชคเซ‡เชฅเซ€, เชฎเชพเชฐเซ‹ เช…เชญเชฟเชชเซเชฐเชพเชฏ: เชคเซ‡ เช•เชพเชฎ เช•เชฐเชคเซเช‚ เชจเชฅเซ€. เชธเชฎเซ‚เชน เชธเชพเชฅเซ‡ เช•เซ‹เชˆเชชเชฃ เชญเซ‚เชฎเชฟเช•เชพ include_vars, 100500 เช•เซ‡เชธเซ‹เชจเซ‡ เชŸเซ‡เช•เซ‹ เช†เชชเชคเชพ, เช•เซ‹เชฐเซเชจเชฐ เช•เซ‡เชธ เชฌเช—เซเชธ เชฎเชพเชŸเซ‡ เชตเชฟเชจเชพเชถเช•เชพเชฐเซ€ เช›เซ‡. เชคเซ‡เช“เชจเซ‡ เชฎเซ‹เชŸเชพ เชชเชฐเซ€เช•เซเชทเชฃ เชธเชพเชฅเซ‡ เช†เชตเชฐเซ€ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชถเช•เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เช•เซ‹เชˆเชชเชฃ เชชเชฐเซ€เช•เซเชทเชฃเชจเซ€ เชœเซ‡เชฎ, เช•เชพเช‚ เชคเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช‡เชจเชชเซเชŸ เชฎเซ‚เชฒเซเชฏเซ‹เชจเซเช‚ เช•เชพเชฐเซเชŸเซ‡เชถเชฟเชฏเชจ เช‰เชคเซเชชเชพเชฆเชจ เช…เชจเซ‡ เช•เซเชฒ เช•เชพเชฐเซเชฏ เช›เซ‡, เช…เชฅเชตเชพ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ "เชตเซเชฏเช•เซเชคเชฟเช—เชค เชฆเซƒเชถเซเชฏเซ‹ เช†เชตเชฐเซ€ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡." เชฎเชพเชฐเซ‹ เช…เชญเชฟเชชเซเชฐเชพเชฏ เช›เซ‡ เช•เซ‡ เชœเซ‹ เชญเซ‚เชฎเชฟเช•เชพ เชฐเซ‡เช–เซ€เชฏ เชนเซ‹เชฏ เชคเซ‹ เชคเซ‡ เชตเชงเซ เชธเชพเชฐเซเช‚ เช›เซ‡ (เชธเชพเชฏเช•เซเชฒเซ‹เชฎเซ‡เชŸเชฟเช• เชœเชŸเชฟเชฒเชคเชพ 1).

เช“เช›เชพ ifs (เชธเซเชชเชทเซเชŸ เช…เชฅเชตเชพ เช˜เซ‹เชทเชฃเชพเชคเซเชฎเช• - เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ when เช…เชฅเชตเชพ เชซเซ‹เชฐเซเชฎ include_vars เชšเชฒเซ‹เชจเชพ เชธเชฎเซ‚เชน เชฆเซเชตเชพเชฐเชพ), เชญเซ‚เชฎเชฟเช•เชพ เชœเซ‡เชŸเชฒเซ€ เชธเชพเชฐเซ€. เช•เซ‡เชŸเชฒเซ€เช•เชตเชพเชฐ เชคเชฎเชพเชฐเซ‡ เชถเชพเช–เชพเช“ เชฌเชจเชพเชตเชตเซ€ เชชเชกเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ, เชนเซเช‚ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เช•เชฐเซเช‚ เช›เซเช‚, เชคเซเชฏเชพเช‚ เช“เช›เชพ เช›เซ‡, เชตเชงเซ เชธเชพเชฐเซเช‚. เชคเซ‡เชฅเซ€ เชคเซ‡ เช—เซ‡เชฒเซ‡เช•เซเชธเซ€ (เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡!) เชธเชพเชฅเซ‡ เชธเชพเชฐเซ€ เชญเซ‚เชฎเชฟเช•เชพ เชœเซ‡เชตเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡ when เชชเชพเช‚เชš เช•เชพเชฐเซเชฏเซ‹เชฎเชพเช‚เชฅเซ€ "เชชเซ‹เชคเชพเชจเซ€" เชญเซ‚เชฎเชฟเช•เชพ เช•เชฐเชคเชพเช‚ เช“เช›เซ€ เชชเซเชฐเชพเชงเชพเชจเซเชฏเช•เซเชทเชฎ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เช•เช‚เชˆเช• เชฒเช–เชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ‹ เช›เซ‹ เชคเซเชฏเชพเชฐเซ‡ เช—เซ‡เชฒเซ‡เช•เซเชธเซ€ เชธเชพเชฅเซ‡เชจเซ€ เชญเซ‚เชฎเชฟเช•เชพ เชตเชงเซ เชธเชพเชฐเซ€ เชนเซ‹เชฏ เช›เซ‡. เชคเซ‡ เช•เซเชทเชฃ เชœเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชตเชงเซ เช–เชฐเชพเชฌ เชฅเชพเชฏ เช›เซ‡ เชคเซเชฏเชพเชฐเซ‡ เช•เช‚เชˆเช• เชคเซ‚เชŸเซ€ เชœเชพเชฏ เช›เซ‡ เช…เชจเซ‡ เชคเชฎเชจเซ‡ เชถเช‚เช•เชพ เชนเซ‹เชฏ เช›เซ‡ เช•เซ‡ เชคเซ‡ "เช—เซ‡เชฒเซ‡เช•เซเชธเซ€ เชธเชพเชฅเซ‡เชจเซ€ เชญเซ‚เชฎเชฟเช•เชพ" เชจเซ‡ เช•เชพเชฐเชฃเซ‡ เช›เซ‡. เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เช–เซ‹เชฒเซ‹, เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚ เชชเชพเช‚เชš เชธเชฎเชพเชตเซ‡เชถ, เช†เช  เช•เชพเชฐเซเชฏ เชถเซ€เชŸเซเชธ เช…เชจเซ‡ เชเช• เชธเซเชŸเซ‡เช• เช›เซ‡ when'เช“เชต... เช…เชจเซ‡ เช†เชชเชฃเซ‡ เช† เชฌเชนเชพเชฐ เช•เชพเชขเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. 5 เช•เชพเชฐเซเชฏเซ‹เชจเซ‡ เชฌเชฆเชฒเซ‡, เชเช• เชฐเซ‡เช–เซ€เชฏ เชธเซ‚เชšเชฟ เชœเซ‡เชฎเชพเช‚ เชคเซ‹เชกเชตเชพ เชฎเชพเชŸเซ‡ เช•เช‚เชˆ เชจเชฅเซ€.

เชจเซ€เชšเซ‡เชจเชพ เชญเชพเช—เซ‹เชฎเชพเช‚

  • เช‡เชจเซเชตเซ‡เชจเซเชŸเชฐเซ€, เชœเซ‚เชฅ เชšเชฒเซ‹, host_group_vars เชชเซเชฒเช—เช‡เชจ, hostvars เชตเชฟเชถเซ‡ เชฅเซ‹เชกเซเช‚. เชธเซเชชเชพเช˜เซ‡เชŸเซเชŸเซ€ เชธเชพเชฅเซ‡ เช—เซ‹เชฐเซเชกเชฟเชฏเชจ เช—เชพเช‚เช  เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชพเช‚เชงเชตเซ€. เช…เชตเช•เชพเชถ เช…เชจเซ‡ เช…เช—เซเชฐเชคเชพ เชšเชฒเซ‹, เชœเชตเชพเชฌเซ€ เชฎเซ‡เชฎเชฐเซ€ เชฎเซ‹เชกเซ‡เชฒ. "เชคเซ‹ เช…เชฎเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เช เชฎเชพเชŸเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเชพเชฎ เช•เซเชฏเชพเช‚ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเซ€เช?"
  • jinja: {{ jinja }} โ€” nosql เชจเซ‹เชŸเชพเชˆเชช เชจเซ‹เชธเซ‡เชจเซเชธ เชธเซ‹เชซเซเชŸ เชชเซเชฒเชพเชธเซเชŸเชฟเชธเชฟเชจ. เชคเซ‡ เชฆเชฐเซ‡เช• เชœเช—เซเชฏเชพเช เช›เซ‡, เชญเชฒเซ‡ เชคเชฎเซ‡ เชคเซ‡เชจเซ€ เช…เชชเซ‡เช•เซเชทเชพ เชจ เช•เชฐเซ‹. เชตเชฟเชถเซ‡ เชฅเซ‹เชกเซเช‚ !!unsafe เช…เชจเซ‡ เชธเซเชตเชพเชฆเชฟเชทเซเชŸ เชฏเชฎเชฒ.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹