เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

เช† เชŸเซเชฐเชพเชจเซเชธเช•เซเชฐเชฟเชชเซเชŸ เช›เซ‡ เชชเซเชฐเชฆเชฐเซเชถเชจ เชชเชฐ DevOps-40 2020-03-18:

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

เชตเชพเชฐเชธเชพเชจเซ‹ เชœเชจเซเชฎ

เชฆเชฟเชตเชธ #1: เชฆเชฐเซเชฆเซ€ เชถเซ‚เชจเซเชฏ

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

เชเช• เชธเชฎเชฏเซ‡ เชเช• เชถเชฐเชคเซ€ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชนเชคเซ‹. เชคเซ‡เชฎเชพเช‚ เชฆเซ‡เชต เชตเชฟเช•เชพเชธ เชŸเซ€เชฎ เช…เชจเซ‡ เช“เชชเซเชธ เชเชจเซเชœเชฟเชจเชฟเชฏเชฐเซ‹ เชนเชคเชพ. เชคเซ‡เช“ เช เชœ เชธเชฎเชธเซเชฏเชพ เชนเชฒ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เชนเชคเชพ: เชธเชฐเซเชตเชฐ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชœเชฎเชพเชตเชตเซเช‚ เช…เชจเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชšเชฒเชพเชตเชตเซ€. เชธเชฎเชธเซเชฏเชพ เช เชนเชคเซ€ เช•เซ‡ เชฆเชฐเซ‡เช• เชŸเซ€เชฎเซ‡ เช† เชธเชฎเชธเซเชฏเชพเชจเซ‡ เชชเซ‹เชคเชพเชจเซ€ เชฐเซ€เชคเซ‡ เชนเชฒ เช•เชฐเซ€. เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚, เชฆเซ‡เชต เช…เชจเซ‡ เช“เชชเซเชธ เชŸเซ€เชฎเซ‹ เชตเชšเซเชšเซ‡ เชœเซเชžเชพเชจเชจเซ‡ เชธเซเชฎเซ‡เชณ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ Ansible เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚.

เชฆเชฟเชตเชธ #89: เชตเชพเชฐเชธเชพเชจเซ‹ เชœเชจเซเชฎ

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

เชชเซ‹เชคเชพเชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ€เชงเชพ เชตเชฟเชจเชพ, เชคเซ‡เช“ เชคเซ‡เชจเซ‡ เชถเช•เซเชฏ เชคเซ‡เชŸเชฒเซเช‚ เชถเซเชฐเซ‡เชทเซเช  เช•เชฐเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเชคเชพ, เชชเชฐเช‚เชคเซ เชคเซ‡ เชตเชพเชฐเชธเซ‹ เชนเซ‹เชตเชพเชจเซเช‚ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚. เช† เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฅเชพเชฏ เช›เซ‡?

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

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

- hosts: localhost
  tasks:
    - shell: echo -n Z >> a.txt && cat a.txt
      register: output
      delay: 1
      retries: 5
      until: not output.stdout.find("ZZZ")

เชฆเชฟเชตเชธ #109: เชธเชฎเชธเซเชฏเชพเชจเซ€ เชœเชพเช—เซƒเชคเชฟ

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เช•เชฒเซเชชเชจเชพ เช•เชฐเชพเชฏเซ‡เชฒ เช…เชจเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชพเชฏเซ‡เชฒ IaC เชฎเซ‹เชกเชฒ เชนเชตเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“/เชตเซเชฏเชตเชธเชพเชฏ/เช…เชจเซเชฏ เชŸเซ€เชฎเซ‹เชจเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชคเซ‹เชจเซ‡ เชชเซ‚เชฐเซเชฃ เช•เชฐเชคเซเช‚ เชจเชฅเซ€, เช…เชจเซ‡ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐ เช•เชฐเชตเชพเชจเซ‹ เชธเชฎเชฏ เชธเซเชตเซ€เช•เชพเชฐเซเชฏ เชจเชฅเซ€. เช† เช•เซเชทเชฃเซ‡, เชธเชฎเชœเชฃ เช†เชตเซ‡ เช›เซ‡ เช•เซ‡ เชคเซ‡ เชชเช—เชฒเชพเช‚ เชฒเซ‡เชตเชพเชจเซ‹ เชธเชฎเชฏ เช›เซ‡.

IaC เชฐเชฟเชซเซ‡เช•เซเชŸเชฐเชฟเช‚เช—

เชฆเชฟเชตเชธ #139: เชถเซเช‚ เชคเชฎเชจเซ‡ เช–เชฐเซ‡เช–เชฐ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐเชฟเช‚เช—เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡?

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

เชคเชฎเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐเชฎเชพเช‚ เชฆเซ‹เชกเซ€ เชœเชพเช“ เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚, เชคเชฎเชพเชฐเซ‡ เชธเช‚เช–เซเชฏเชพเชฌเช‚เชง เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชชเซเชฐเชถเซเชจเซ‹เชจเชพ เชœเชตเชพเชฌ เช†เชชเชตเชพ เช†เชตเชถเซเชฏเช• เช›เซ‡:

  1. เชคเชฎเชพเชฐเซ‡ เช† เชฌเชงเชพเชจเซ€ เชถเชพ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐ เช›เซ‡?
  2. เชถเซเช‚ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชธเชฎเชฏ เช›เซ‡?
  3. เชถเซเช‚ เชœเซเชžเชพเชจ เชชเซ‚เชฐเชคเซเช‚ เช›เซ‡?

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

เชฆเชฟเชตเชธ #149: เชฐเชฟเชซเซ‡เช•เซเชŸเชฐเชฟเช‚เช—เชจเซ€ เชคเซˆเชฏเชพเชฐเซ€

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

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

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

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

เชœเชตเชพเชฌ เช†เชชเชตเชพ เชฏเซ‹เช—เซเชฏ เชชเชฐเซ€เช•เซเชทเชฃ เชชเซเชฐเชฏเชพเชธเซ‹

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

เชฆเชฟเชตเชธ เชจเช‚เชฌเชฐ -997: SDS เชœเซ‹เช—เชตเชพเชˆ

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

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

เชฆเชฟเชตเชธ # -701: เชœเชตเชพเชฌเซ€ เช…เชจเซ‡ เชชเชฐเซ€เช•เซเชทเชฃ เชฐเชธเซ‹เชกเซเช‚

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

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

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

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

เชฆเชฟเชตเชธ # -601: เชœเชตเชพเชฌเซ€ เช…เชจเซ‡ เชชเชฐเชฎเชพเชฃเซ

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

เชตเซˆเชšเชพเชฐเชฟเช• เชฐเซ€เชคเซ‡, เช† เชŸเซ‡เชธเซเชŸเช•เชฟเชšเซ‡เชจ เชœเซ‡เชตเซเช‚ เชœ เช›เซ‡, เชฎเชพเชคเซเชฐ เช…เชฎเซ‡ เชฐเซ‹เชฒ เชŸเซ‡เชธเซเชŸเชฟเช‚เช—เชจเซ‡ เชกเซ‹เช•เชฐเชฎเชพเช‚ เช–เชธเซ‡เชกเซเชฏเซเช‚ เช…เชจเซ‡ เชธเซเชŸเซ‡เช• เชฌเชฆเชฒเซเชฏเซ‹. เชชเชฐเชฟเชฃเชพเชฎเซ‡, 20 เชญเซ‚เชฎเชฟเช•เชพเช“ เชฎเชพเชŸเซ‡ เชธเชฎเชฏ เช˜เชŸเชพเชกเซ€เชจเซ‡ เชธเซเชฅเชฟเชฐ 25-7 เชฎเชฟเชจเชฟเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹.

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

เชšเช•เชพเชธเชพเชฏเซ‡เชฒ เชญเซ‚เชฎเชฟเช•เชพเช“เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชตเชงเชพเชฐเซ€เชจเซ‡ 17 เช…เชจเซ‡ 45 เชญเซ‚เชฎเชฟเช•เชพเช“เชจเซ‡ เชฒเซ€เช‚เชŸเซ€เช‚เช— เช•เชฐเซ€เชจเซ‡, เช…เชฎเซ‡ 28 เชœเซ‡เชจเช•เชฟเชจเซเชธ เชธเซเชฒเซ‡เชต เชชเชฐ 2 เชฎเชฟเชจเชฟเชŸเชฎเชพเช‚ เช†เชจเซ‡ เชšเชฒเชพเชตเซเชฏเซเช‚.

เชฆเชฟเชตเชธ #167: เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚ เชœเชตเชพเชฌเซ€ เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เช‰เชฎเซ‡เชฐเชตเชพเชจเซเช‚

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

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

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

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

เชฐเชฟเชซเซ‡เช•เซเชŸเชฐเชฟเช‚เช— เชธเชฐเชณ เช›เซ‡:

  • เช–เชพเชตเซเช‚.
  • เชŠเช‚เช˜
  • เช•เซ‹เชก.
  • IaC เชŸเซ‡เชธเซเชŸ.
  • เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เช•เชฐเซ‹

เช…เชจเซ‡ เช…เชฎเซ‡ เช‡เชšเซเช›เชฟเชค เชงเซเชฏเซ‡เชฏ เชธเซเชงเซ€ เชชเชนเซ‹เช‚เชšเซ€เช เชคเซเชฏเชพเช‚ เชธเซเชงเซ€ เช…เชฎเซ‡ เช†เชจเซเช‚ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เช•เชฐเซ€เช เช›เซ€เช.

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

เชคเชฐเชค เชœ เชฆเชฐเซ‡เช• เชตเชธเซเชคเซเชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชถเช•เซเชฏ เชจ เชนเซ‹เชˆ เชถเช•เซ‡, เชคเซ‡เชฅเซ€ เช…เชฎเชพเชฐเซเช‚ เชชเซเชฐเชฅเชฎ เช•เชพเชฐเซเชฏ เชฒเชฟเช‚เชŸเชฟเช‚เช— เช…เชจเซ‡ เชธเชฟเชจเซเชŸเซ‡เช•เซเชธเชจเซ‡ เชคเชชเชพเชธเชตเชพเชจเซเช‚ เชนเชคเซเช‚.

เชฆเชฟเชตเชธ #181: เช—เซเชฐเซ€เชจ เชฌเชฟเชฒเซเชก เชฎเชพเชธเซเชŸเชฐ

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

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

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

เชฆเชฟเชตเชธ #193: เชฒเชฟเช‚เชŸเชฟเช‚เช—เชฅเซ€ เชฒเชˆเชจเซ‡ เชฏเซเชจเชฟเชŸ เชŸเซ‡เชธเซเชŸ เชธเซเชงเซ€

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

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

เชฆเชฟเชตเชธ #211: เชเช•เชฎเชฅเซ€ เชเช•เซ€เช•เชฐเชฃ เชชเชฐเซ€เช•เซเชทเชฃเซ‹

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

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

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

เชœเซ‡เชจเช•เชฟเชจเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡, เช…เชฎเซ‡ เช˜เชฃเชพ เชคเชฌเช•เซเช•เชพเช“ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซเชฏเชพ เช›เซ‡ เชœเซ‡ เชธเชฎเชพเช‚เชคเชฐเชฎเชพเช‚ เชญเซ‚เชฎเชฟเช•เชพเช“/เชชเซเชฒเซ‡เชฌเซเช•เชจเซ‡ เชฒเซ€เช‚เชŸ เช•เชฐเซ‡ เช›เซ‡, เชชเช›เซ€ เช•เชจเซเชŸเซ‡เชจเชฐเชฎเชพเช‚ เชเช•เชฎ เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เช…เชจเซ‡ เช…เช‚เชคเซ‡ เชเช•เซ€เช•เชฐเชฃ เชชเชฐเซ€เช•เซเชทเชฃเซ‹.

เชœเซ‡เชจเช•เชฟเชจเซเชธ + เชกเซ‹เช•เชฐ + เชœเชตเชพเชฌเซ€ = เชŸเซ‡เชธเซเชŸ

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

  1. เชฐเซ‡เชชเซ‹ เชšเซ‡เช•เช†เช‰เชŸ เช•เชฐเซ‹ เช…เชจเซ‡ เชฌเชฟเชฒเซเชก เชธเซเชŸเซ‡เชœ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‹.
  2. เชฒเชฟเชจเซเชŸ เชชเซเชฒเซ‡เชฌเซเช• เชธเซเชŸเซ‡เชœเชจเซ‡ เชธเชฎเชพเช‚เชคเชฐ เชšเชฒเชพเชตเซ‹.
  3. เชฒเชฟเชจเซเชŸ เชฐเซ‹เชฒ เชธเซเชŸเซ‡เชœเชจเซ‡ เชธเชฎเชพเช‚เชคเชฐ เชšเชฒเชพเชตเซ‹.
  4. เชธเชฎเชพเช‚เชคเชฐเชฎเชพเช‚ เชธเชฟเชจเซเชŸเซ‡เช•เซเชธ เชšเซ‡เช• เชฐเซ‹เชฒ เชธเซเชŸเซ‡เชœ เชšเชฒเชพเชตเซ‹.
  5. เชŸเซ‡เชธเซเชŸ เชฐเซ‹เชฒ เชธเซเชŸเซ‡เชœ เชธเชฎเชพเช‚เชคเชฐ เชšเชฒเชพเชตเซ‹.
    1. เชฒเชฟเชจเซเชŸ เชญเซ‚เชฎเชฟเช•เชพ.
    2. เช…เชจเซเชฏ เชญเซ‚เชฎเชฟเช•เชพเช“ เชชเชฐ เชจเชฟเชฐเซเชญเชฐเชคเชพ เชคเชชเชพเชธเซ‹.
    3. เชตเชพเช•เซเชฏเชฐเชšเชจเชพ เชคเชชเชพเชธเซ‹.
    4. เชกเซ‹เช•เชฐ เชฆเชพเช–เชฒเซ‹ เชฌเชจเชพเชตเซ‹
    5. molecule/default/playbook.yml เชšเชฒเชพเชตเซ‹.
    6. เช†เชกเซ‡เชงเชกเชคเชพ เชคเชชเชพเชธเซ‹.
  6. เชเช•เซ€เช•เชฐเชฃ เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เชšเชฒเชพเชตเซ‹
  7. เชธเชฎเชพเชชเซเชค

เชฆเชฟเชตเชธ #271: เชฌเชธ เชซเซ‡เช•เซเชŸเชฐ

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

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

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

เช…เชจเซ‡ เชคเซ‡ เช…เชนเซ€เช‚ เช†เชฐเชพเชฎเชฆเชพเชฏเช• เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช. เชธเชฎเซ€เช•เซเชทเชพ เช•เชฐเชตเซ€ เช…เชจเซเช•เซ‚เชณ เช›เซ‡, เชคเซ‡ เชถเซเช‚ เช•เชพเชฐเซเชฏ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ เชคเซ‡เชจเชพ เชฎเชพเชณเช–เชพเชฎเชพเช‚ เช…เชจเซ‡ เชšเชฐเซเชšเชพเช“เชจเซ‹ เช‡เชคเชฟเชนเชพเชธ เชœเซเช“. เช…เชฎเซ‡ เชœเซ‡เชจเช•เชฟเชจเซเชธ + เชฌเซ€เชŸเชฌเช•เซ‡เชŸ + เชœเซ€เชฐเชพเชจเซ‡ เชเช•เซ€เช•เซƒเชค เช•เชฐเซเชฏเซเช‚ เช›เซ‡.

เชชเชฐเช‚เชคเซ เชœเซ‡เชฎ เช•เซ‡, เชธเชฎเซ€เช•เซเชทเชพ เช เชฐเชพเชฎเชฌเชพเชฃ เช‰เชชเชพเชฏ เชจเชฅเซ€; เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡, เช…เชฎเซ‡ เชฎเชพเชธเซเชŸเชฐ เช•เซ‹เชกเชฎเชพเช‚ เชชเซเชฐเชตเซ‡เชถเซเชฏเชพ, เชœเซ‡เชฃเซ‡ เช…เชฎเชจเซ‡ เชซเซเชฒเซ‹เชช เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เชฌเชจเชพเชตเซเชฏเชพ:

- get_url:
    url: "{{ actk_certs }}/{{ item.1 }}"
    dest: "{{ actk_src_tmp }}/"
    username: "{{ actk_mvn_user }}"
    password: "{{ actk_mvn_pass }}"
  with_subelements:
    - "{{ actk_cert_list }}"
    - "{{ actk_certs }}"
  delegate_to: localhost

- copy:
    src: "{{ actk_src_tmp }}/{{ item.1 }}"
    dest: "{{ actk_dst_tmp }}"
  with_subelements:
    - "{{ actk_cert_list }}"
    - "{{ actk_certs }}"

เชชเช›เซ€ เชคเซ‡เช“เช เชคเซ‡เชจเซ‡ เช เซ€เช• เช•เชฐเซเชฏเซเช‚, เชชเชฐเช‚เชคเซ เช…เชตเชถเซ‡เชทเซ‹ เชฐเชนเซ€ เช—เชฏเชพ.

get_url:
    url: "{{ actk_certs }}/{{ actk_item }}"
    dest: "{{ actk_src_tmp }}/{{ actk_item }}"
    username: "{{ actk_mvn_user }}"
    password: "{{ actk_mvn_pass }}"
  loop_control:
    loop_var: actk_item
  with_items: "{{ actk_cert_list }}"
  delegate_to: localhost

- copy:
    src: "{{ actk_src_tmp }}/{{ actk_item }}"
    dest: "{{ actk_dst_tmp }}"
  loop_control:
    loop_var: actk_item
  with_items: "{{ actk_cert_list }}"

เชฆเชฟเชตเชธ #311: เชชเชฐเซ€เช•เซเชทเชฃเซ‹เชจเซ‡ เชเชกเชชเซ€ เชฌเชจเชพเชตเชตเซเช‚

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

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

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

เช•เชกเช• เชถเชฌเซเชฆเซ‹เชฎเชพเช‚ เช•เชนเซ€เช เชคเซ‹, เชคเซเชฏเชพเช‚ เชชเช—เชฒเชพเช‚เชจเซ‹ เชธเชฎเซ‚เชน เชนเชคเซ‹:

  1. เชกเซ‹เช•เชฐ เชชเชฐ เชธเซเชตเชฟเชš เช•เชฐเซ‹.
  2. เชญเซ‚เชฎเชฟเช•เชพ เชชเชฐเซ€เช•เซเชทเชฃ เชฆเซ‚เชฐ เช•เชฐเซ‹, เชœเซ‡ เชจเชฟเชฐเซเชญเชฐเชคเชพเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชกเซเชชเซเชฒเชฟเช•เซ‡เชŸ เช›เซ‡.
  3. เช—เซเชฒเชพเชฎเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ เชตเชงเชพเชฐเซ‹.
  4. เชŸเซ‡เชธเซเชŸ เชฐเชจ เช“เชฐเซเชกเชฐ.
  5. เชฒเชฟเชจเซเชŸ เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เชฌเชงเชพ เชธเซเชฅเชพเชจเชฟเช• เชฐเซ€เชคเซ‡ เชเช• เช†เชฆเซ‡เชถ เชธเชพเชฅเซ‡.

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

เชชเชฐเชฟเชฃเชพเชฎเซ‡ เชœเซ‡เชจเช•เชฟเชจเซเชธ เชชเชฐเชจเซ€ เชชเชพเช‡เชชเชฒเชพเช‡เชจ เชชเชฃ เชเช•เซ€เช•เซƒเชค เชฅเช‡ เชนเชคเซ€

  1. เชฌเชฟเชฒเซเชก เชคเชฌเช•เซเช•เชพเช“ เชฌเชจเชพเชตเซ‹.
  2. เชฌเชงเชพเชจเซ‡ เชธเชฎเชพเช‚เชคเชฐเชฎเชพเช‚ เชฒเซ€เช‚เชŸ เช•เชฐเซ‹.
  3. เชŸเซ‡เชธเซเชŸ เชฐเซ‹เชฒ เชธเซเชŸเซ‡เชœ เชธเชฎเชพเช‚เชคเชฐ เชšเชฒเชพเชตเซ‹.
  4. เชธเชฎเชพเชชเซเชค เช•เชฐเซ‹

เชชเชพเช  เชถเซ€เช–เซเชฏเชพ

เชตเซˆเชถเซเชตเชฟเช• เชšเชฒเซ‹ เชŸเชพเชณเซ‹

Ansible เชตเซˆเชถเซเชตเชฟเช• เชšเชฒเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡, เชซเซ‹เชฐเซเชฎเชฎเชพเช‚ เช†เช‚เชถเชฟเช• เช‰เช•เซ‡เชฒ เช›เซ‡ เช–เชพเชจเช—เซ€_เชญเซ‚เชฎเชฟเช•เชพ_เชตเชพเชฐ, เชชเชฐเช‚เชคเซ เช† เชเช• เชฐเชพเชฎเชฌเชพเชฃ เช‰เชชเชพเชฏ เชจเชฅเซ€.

เชšเชพเชฒเซ‹ เชนเซเช‚ เชคเชฎเชจเซ‡ เชเช• เช‰เชฆเชพเชนเชฐเชฃ เช†เชชเซเช‚. เชšเชพเชฒเซ‹ role_a ะธ role_b

# cat role_a/defaults/main.yml
---
msg: a

# cat role_a/tasks/main.yml
---
- debug:
    msg: role_a={{ msg }}

# cat role_b/defaults/main.yml
---
msg: b

# cat role_b/tasks/main.yml
---
- set_fact:
    msg: b
- debug:
    msg: role_b={{ msg }}

- hosts: localhost
  vars:
    msg: hello
  roles:
    - role: role_a
    - role: role_b
  tasks:
    - debug:
        msg: play={{msg}}

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

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

เช–เชฐเชพเชฌ: เชตเซˆเชถเซเชตเชฟเช• เชšเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹.

# cat roles/some_role/tasks/main.yml
---
debug:
  var: java_home

เชธเชพเชฐเซเช‚: เชตเซ€ defaults เชœเชฐเซ‚เชฐเซ€ เชšเชฒเซ‹เชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ‹ เช…เชจเซ‡ เชชเช›เซ€เชฅเซ€ เชซเช•เซเชค เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹.

# cat roles/some_role/defaults/main.yml
---
r__java_home:
 "{{ java_home | default('/path') }}"

# cat roles/some_role/tasks/main.yml
---
debug:
  var: r__java_home

เช‰เชชเชธเชฐเซเช— เชญเซ‚เชฎเชฟเช•เชพ เชšเชฒเซ‹

เช–เชฐเชพเชฌ: เชตเซˆเชถเซเชตเชฟเช• เชšเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹.

# cat roles/some_role/defaults/main.yml
---
db_port: 5432

เชธเชพเชฐเซเช‚: เชšเชฒเซ‹เชจเซ€ เชญเซ‚เชฎเชฟเช•เชพเช“เชฎเชพเช‚, เชญเซ‚เชฎเชฟเช•เชพเชจเชพ เชจเชพเชฎ เชธเชพเชฅเซ‡ เช‰เชชเชธเชฐเซเช—เชตเชพเชณเชพ เชšเชฒเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹; เช†, เช‡เชจเซเชตเซ‡เชจเซเชŸเชฐเซ€ เชœเซ‹เชˆเชจเซ‡, เชถเซเช‚ เชฅเชˆ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เชคเซ‡ เชธเชฎเชœเชตเชพเชฎเชพเช‚ เชธเชฐเชณ เชฌเชจเชพเชตเชถเซ‡.

# cat roles/some_role/defaults/main.yml
---
some_role__db_port: 5432

เชฒเซ‚เชช เช•เช‚เชŸเซเชฐเซ‹เชฒ เชตเซ‡เชฐเซ€เชเชฌเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹

เช–เชฐเชพเชฌ: เชฒเซ‚เชชเซเชธเชฎเชพเช‚ เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เชšเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ item, เชœเซ‹ เช† เช•เชพเชฐเซเชฏ/เชชเซเชฒเซ‡เชฌเซเช• เช•เซเชฏเชพเช‚เช• เชธเชฎเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เช›เซ‡, เชคเซ‹ เช† เช…เชฃเชงเชพเชฐเซ€ เชตเชฐเซเชคเชจ เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชถเช•เซ‡ เช›เซ‡

---
- hosts: localhost
  tasks:
    - debug:
        msg: "{{ item }}"
      loop:
        - item1
        - item2

เชธเชพเชฐเซเช‚: เชฆเซเชตเชพเชฐเชพ เชฒเซ‚เชชเชฎเชพเช‚ เชšเชฒเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ‹ loop_var.

---
- hosts: localhost
  tasks:
    - debug:
        msg: "{{ item_name }}"
      loop:
        - item1
        - item2
      loop_control:
        loop_var: item_name

เช‡เชจเชชเซเชŸ เชšเชฒเซ‹ เชคเชชเชพเชธเซ‹

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

เชธเชพเชฐเซเช‚: เชšเชฒเซ‹ เชคเชชเชพเชธเซ‹.

- name: "Verify that required string variables are defined"
  assert:
    that: ahs_var is defined and ahs_var | length > 0 and ahs_var != None
    fail_msg: "{{ ahs_var }} needs to be set for the role to work "
    success_msg: "Required variables {{ ahs_var }} is defined"
  loop_control:
    loop_var: ahs_var
  with_items:
    - ahs_item1
    - ahs_item2
    - ahs_item3

เชนเซ‡เชถ เชกเชฟเช•เซเชถเชจเชฐเซ€ เชŸเชพเชณเซ‹, เชซเซเชฒเซ‡เชŸ เชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹

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

เช–เชฐเชพเชฌ: เชนเซ‡เชถ/เชถเชฌเซเชฆเช•เซ‹เชทเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹.

---
user:
  name: admin
  group: admin

เชธเชพเชฐเซเช‚: เชซเซเชฒเซ‡เชŸ เชตเซ‡เชฐเซ€เชเชฌเชฒ เชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹.

---
user_name: admin
user_group: "{{ user_name }}"

เชจเชฟเชฐเซเชฆเซ‹เชท เชชเซเชฒเซ‡เชฌเซเช• เช…เชจเซ‡ เชญเซ‚เชฎเชฟเช•เชพเช“ เชฌเชจเชพเชตเซ‹

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

เช†เชฆเซ‡เชถ เชถเซ‡เชฒ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซเช‚ เชŸเชพเชณเซ‹

เชถเซ‡เชฒ เชฎเซ‹เชกเซเชฏเซเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชฅเซ€ เช˜เซ‹เชทเชฃเชพเชคเซเชฎเช•เชจเซ‡ เชฌเชฆเชฒเซ‡ เช…เชจเชฟเชตเชพเชฐเซเชฏ เชตเชฐเซเชฃเชจเชจเชพ เชฆเชพเช–เชฒเชพเชฎเชพเช‚ เชชเชฐเชฟเชฃเชฎเซ‡ เช›เซ‡, เชœเซ‡ เชœเชตเชพเชฌเซ€เชฌเชฒเชจเซ‹ เชฎเซเช–เซเชฏ เชญเชพเช— เช›เซ‡.

เชชเชฐเชฎเชพเชฃเซ เชฆเซเชตเชพเชฐเชพ เชคเชฎเชพเชฐเซ€ เชญเซ‚เชฎเชฟเช•เชพเช“เชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเซ‹

เชฎเซ‹เชฒเซ‡เช•เซเชฏเซเชฒ เช เช–เซ‚เชฌ เชœ เชฒเชตเชšเซ€เช• เชตเชธเซเชคเซ เช›เซ‡, เชšเชพเชฒเซ‹ เชฅเซ‹เชกเชพ เชฆเซƒเชถเซเชฏเซ‹ เชœเซ‹เชˆเช.

เชชเชฐเชฎเชพเชฃเซ เชฌเชนเซเชตเชฟเชง เช‰เชฆเชพเชนเชฐเชฃเซ‹

ะ’ molecule.yml เชตเชฟเชญเชพเช—เชฎเชพเช‚ platforms เชคเชฎเซ‡ เช˜เชฃเชพ เชฏเชœเชฎเชพเชจเซ‹เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เชœเซ‡เชจเซ‡ เชคเชฎเซ‡ เชœเชฎเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹.

---
    driver:
      name: docker
    platforms:
      - name: postgresql-instance
        hostname: postgresql-instance
        image: registry.example.com/postgres10:latest
        pre_build_image: true
        override_command: false
        network_mode: host
      - name: app-instance
        hostname: app-instance
        pre_build_image: true
        image: registry.example.com/docker_centos_ansible_tests
        network_mode: host

เชคเชฆเชจเซเชธเชพเชฐ, เช† เชฏเชœเชฎเชพเชจเซ‹ เชชเช›เซ€ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ converge.yml เชตเชพเชชเชฐเชตเซ:

---
- name: Converge all
  hosts: all
  vars:
    ansible_user: root
  roles:
    - role: some_role

- name: Converge db
  hosts: db-instance
  roles:
    - role: some_db_role

- name: Converge app
  hosts: app-instance
  roles:
    - role: some_app_role

เชœเชตเชพเชฌเซ€ เชšเช•เชพเชธเชฃเซ€เช•เชฐเซเชคเชพ

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

---
- name: Verify
  hosts: all
  tasks:
    - name: copy config
      copy:
        src: expected_standalone.conf
        dest: /root/wildfly/bin/standalone.conf
        mode: "0644"
        owner: root
        group: root
      register: config_copy_result

    - name: Certify that standalone.conf changed
      assert:
        that: not config_copy_result.changed

เช…เชฅเชตเชพ เชธเซ‡เชตเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹, เชคเซ‡ เช‰เชชเชฒเชฌเซเชง เชฅเชตเชพเชจเซ€ เชฐเชพเชน เชœเซเช“ เช…เชจเซ‡ เชงเซ‚เชฎเซเชฐเชชเชพเชจ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเซ‹:

---
  - name: Verify
    hosts: solr
    tasks:
      - command: /blah/solr/bin/solr start -s /solr_home -p 8983 -force
      - uri:
          url: http://127.0.0.1:8983/solr
          method: GET
          status_code: 200
        register: uri_result
        until: uri_result is not failed
        retries: 12
        delay: 10
      - name: Post documents to solr
        command: /blah/solr/bin/post -c master /exampledocs/books.csv

เชœเชŸเชฟเชฒ เชคเชฐเซเช•เชจเซ‡ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹ เช…เชจเซ‡ เชชเซเชฒเช—เชฟเชจเซเชธเชฎเชพเช‚ เชฎเซ‚เช•เซ‹

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

เชŸเชฟเชชเซเชธ เช…เชจเซ‡ เชฏเซเช•เซเชคเชฟเช“เชจเซ‹ เชธเชพเชฐเชพเช‚เชถ เช†เชชเซ‹

  1. เชตเซˆเชถเซเชตเชฟเช• เชšเชฒเซ‹ เชŸเชพเชณเซ‹.
  2. เช‰เชชเชธเชฐเซเช— เชญเซ‚เชฎเชฟเช•เชพ เชšเชฒเซ‹.
  3. เชฒเซ‚เชช เช•เช‚เชŸเซเชฐเซ‹เชฒ เชตเซ‡เชฐเซ€เชเชฌเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹.
  4. เช‡เชจเชชเซเชŸ เชšเชฒเซ‹ เชคเชชเชพเชธเซ‹.
  5. เชนเซ‡เชถ เชกเชฟเช•เซเชถเชจเชฐเซ€ เชŸเชพเชณเซ‹, เชซเซเชฒเซ‡เชŸ เชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹.
  6. เชจเชฟเชฐเซเชฆเซ‹เชท เชชเซเชฒเซ‡เชฌเซเช• เช…เชจเซ‡ เชญเซ‚เชฎเชฟเช•เชพเช“ เชฌเชจเชพเชตเซ‹.
  7. เช†เชฆเซ‡เชถ เชถเซ‡เชฒ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซเช‚ เชŸเชพเชณเซ‹.
  8. เชชเชฐเชฎเชพเชฃเซ เชฆเซเชตเชพเชฐเชพ เชคเชฎเชพเชฐเซ€ เชญเซ‚เชฎเชฟเช•เชพเช“เชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเซ‹.
  9. เชœเชŸเชฟเชฒ เชคเชฐเซเช•เชจเซ‡ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹ เช…เชจเซ‡ เชชเซเชฒเช—เชฟเชจเซเชธเชฎเชพเช‚ เชฎเซ‚เช•เซ‹.

เชจเชฟเชทเซเช•เชฐเซเชท

เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชเชจเซเชธเชฟเชฌเชฒ, เชเช• เชตเชฐเซเชทเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชชเชพเช—เชฒ เชจ เชฅเชพเช“

เชคเชฎเซ‡ เชซเช•เซเชค เชœเชˆเชจเซ‡ เช•เซ‹เชˆ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชชเชฐ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชฐเชฟเชซเซ‡เช•เซเชŸ เช•เชฐเซ€ เชถเช•เชคเชพ เชจเชฅเซ€, เชชเช›เซ€ เชญเชฒเซ‡ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ IaC เชนเซ‹เชฏ. เช† เชเช• เชฒเชพเช‚เชฌเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เชงเซ€เชฐเชœ, เชธเชฎเชฏ เช…เชจเซ‡ เชœเซเชžเชพเชจเชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ เช›เซ‡.

UPD1 2020.05.01 20:30 - เชชเซเชฒเซ‡เชฌเซเช•เชจเซ€ เชชเซเชฐเชพเชฅเชฎเชฟเช• เชฐเซ‚เชชเชฐเซ‡เช–เชพ เชฎเชพเชŸเซ‡ เชคเชฎเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ callback_whitelist = profile_tasks เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏ เชฎเชพเชŸเซ‡ เชฌเชฐเชพเชฌเชฐ เชถเซเช‚ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡ เชธเชฎเชœเชตเชพ เชฎเชพเชŸเซ‡. เชชเช›เซ€ เช†เชชเชฃเซ‡ เชชเชธเชพเชฐ เชฅเชˆเช เช›เซ€เช เชœเชตเชพเชฌเซ€ เชชเซเชฐเชตเซ‡เช—เช• เช•เซเชฒเชพเชธเชฟเช•เซเชธ. เชคเชฎเซ‡ เชชเชฃ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เชฎเชฟเชŸเซ‹เชœเชจ
UPD2 2020.05.03 16:34 - เช‡เช‚เช—เชฒเชฟเชถ เช†เชตเซƒเชคเซเชคเชฟ

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

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