Ansible เชฎเชพเช‚ เชšเชฒ เชฎเชพเชŸเซ‡ เชธเชฟเชธเซเชŸเชฎ เช…เชญเชฟเช—เชฎ

เชœเชตเชพเชฌเซ€ devops เช•เซ‹เชกเชธเซเชŸเชพเช‡เชฒ

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

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

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

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

Ansible เชฎเชพเช‚ เชšเชฒ เชฎเชพเชŸเซ‡ เชธเชฟเชธเซเชŸเชฎ เช…เชญเชฟเช—เชฎ

เชญเซ‚เชฎเชฟเช•เชพเช“เชฎเชพเช‚ เชšเชฒ

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

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชญเซ‚เชฎเชฟเช•เชพ เชฒเซ‹ api, เชœเซ‡ เชธเชฐเซเชตเชฐ เชชเชฐ Java เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡ เช›เซ‡. เชคเซ‡เชฎเชพเช‚ เช•เชฏเชพ เชšเชฒเซ‹ เช›เซ‡?

Ansible เชฎเชพเช‚ เชšเชฒ เชฎเชพเชŸเซ‡ เชธเชฟเชธเซเชŸเชฎ เช…เชญเชฟเช—เชฎ

เชฐเซ‹เชฒ เชตเซ‡เชฐเซ€เชเชฌเชฒเซเชธเชจเซ‡ เชชเซเชฐเช•เชพเชฐ เชฆเซเชตเชพเชฐเชพ 2 เชชเซเชฐเช•เชพเชฐเซ‹เชฎเชพเช‚ เชตเชฟเชญเชพเชœเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡:

1. ะกะฒะพะนัั‚ะฒะฐ
    a) ะฝะตะทะฐะฒะธัะธะผั‹ะต ะพั‚ ัั€ะตะดั‹
    ะฑ) ะทะฐะฒะธัะธะผั‹ะต ะพั‚ ัั€ะตะดั‹
2. ะกะฒัะทะธ
    a) ัะปัƒัˆะฐั‚ะตะปะธ 
    ะฑ) ะทะฐะฟั€ะพัั‹ ะฒะฝัƒั‚ั€ะธ ัะธัั‚ะตะผั‹
    ะฒ) ะทะฐะฟั€ะพัั‹ ะฒ ัั€ะตะดัƒ

เชšเชฒ เช—เซเชฃเชงเชฐเซเชฎเซ‹ เชšเชฒเซ‹ เช›เซ‡ เชœเซ‡ เชญเซ‚เชฎเชฟเช•เชพเชจเชพ เชตเชฐเซเชคเชจเชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ‡ เช›เซ‡.

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

เชšเชฒ เชถเซเชฐเซ‹เชคเชพเช“ เชตเซ‡เชฐเซ€เชเชฌเชฒเซเชธ เช›เซ‡ เชœเซ‡เชจเซ€ เช•เชฟเช‚เชฎเชค เช•เซเชตเซ‡เชฐเซ€ เชตเซ‡เชฐเชฟเชฏเซ‡เชฌเชฒ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชตเชชเชฐเชพเชฏ เช›เซ‡.

เชฌเซ€เชœเซ€ เชฌเชพเชœเซ, 1a, 2a, 2b เช เชเชตเชพ เชšเชฒ เช›เซ‡ เชœเซ‡ เชชเชฐเซเชฏเชพเชตเชฐเชฃ (เช†เชฏเชฐเซเชจ, เชฌเชพเชนเซเชฏ เชธเช‚เชธเชพเชงเชจเซ‹, เชตเช—เซ‡เชฐเซ‡) เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เชคเชพ เชจเชฅเซ€ เช…เชจเซ‡ เชกเชฟเชซเซ‹เชฒเซเชŸ เชญเซ‚เชฎเชฟเช•เชพเชฎเชพเช‚ เชฎเซ‚เชณเชญเซ‚เชค เชฎเซ‚เชฒเซเชฏเซ‹เชฅเซ€ เชญเชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชœเซ‹ เช•เซ‡, 1.b เช…เชจเซ‡ 2.c เชœเซ‡เชตเชพ เชšเชฒเซ‹ 'เช‰เชฆเชพเชนเชฐเชฃ' เชธเชฟเชตเชพเชฏเชจเชพ เชฎเซ‚เชฒเซเชฏเซ‹เชฅเซ€ เชญเชฐเซ€ เชถเช•เชพเชคเชพ เชจเชฅเซ€, เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เชชเชฐเซเชฏเชพเชตเชฐเชฃเชจเชพ เช†เชงเชพเชฐเซ‡ เชธเซเชŸเซ‡เชจเซเชกเชฅเซ€ เชธเซเชŸเซ‡เชจเซเชกเชฎเชพเช‚ เชฌเชฆเชฒเชพเชถเซ‡.

เช•เซ‹เชก เชถเซˆเชฒเซ€

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

    เช–เชฐเชพเชฌ เชšเชฒเชจเซเช‚ เช‰เชฆเชพเชนเชฐเชฃ:

    myrole_user:
        login: admin
        password: admin

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

    myrole_user_login: admin
    myrole_user_password: admin

เชœเชฎเชพเชตเชŸ เชชเซเชฒเซ‡เชฌเซเช•เชฎเชพเช‚ เชšเชฒ

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

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

mydeploy                        # ะšะฐั‚ะฐะปะพะณ ะดะตะฟะปะพั
โ”œโ”€โ”€ deploy.yml                  # ะŸะปะตะนะฑัƒะบ ะดะตะฟะปะพั
โ”œโ”€โ”€ group_vars                  # ะšะฐั‚ะฐะปะพะณ ะฟะตั€ะตะผะตะฝะฝั‹ั… ะฟะปะตะนะฑัƒะบะฐ
โ”‚   โ”œโ”€โ”€ all.yml                 # ะคะฐะนะป ะดะปั ะฟะตั€ะตะผะตะฝะฝั‹ั… ัะฒัะทะธ ะฒัะตะน ัะธัั‚ะตะผั‹
โ”‚   โ””โ”€โ”€ myapi.yml               # ะคะฐะนะป ะฟะตั€ะตะผะตะฝะฝั‹ั… ัะฒะพะนัั‚ะฒ ะณั€ัƒะฟะฟั‹ myapi
โ””โ”€โ”€ inventories                 #
    โ””โ”€โ”€ prod                    # ะšะฐั‚ะฐะปะพะณ ะพะบั€ัƒะถะตะฝะธั prod
        โ”œโ”€โ”€ prod.ini            # ะ˜ะฝะฒะตะฝั‚ะพั€ะธ ั„ะฐะนะป
        โ””โ”€โ”€ group_vars          # ะšะฐั‚ะฐะปะพะณ ะดะปั ะฟะตั€ะตะผะตะฝะฝั‹ั… ะธะฝะฒะตะฝั‚ะพั€ะธ
            โ””โ”€โ”€ myapi           #
                โ”œโ”€โ”€ vars.yml    # ะกั€ะตะดะพะทะฐะฒะธัะธะผั‹ะต ะฟะตั€ะตะผะตะฝะฝั‹ะต ะณั€ัƒะฟะฟั‹ myapi
                โ””โ”€โ”€ vault.yml   # ะกะตะบั€ะตั‚ั‹ (ะฒัะตะณะดะฐ ัั€ะตะดะพะทะฐะฒะธัะธะผั‹) *

* - เชšเชฒเซ‹ เช…เชจเซ‡ เชตเซ‰เชฒเซเชŸเซเชธ

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

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

เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เช† เชคเชฌเช•เซเช•เซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชคเชฎเชพเชฐเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เช•เซ‡ เชตเซ‡เชฐเซ€เชเชฌเชฒ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เช†เชงเชพเชฐเชฟเชค เช›เซ‡ เช•เซ‡ เชจเชนเซ€เช‚ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชฏเซ‹เช—เซเชฏ เชœเช—เซเชฏเชพเช เชฎเซ‚เช•เซ‹.

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

เชœเซ‚เชฅเซ‹ เชฎเชพเชŸเซ‡ เชฎเชฟเชฒเช•เชค เชšเชฒเซ‹

เชšเชพเชฒเซ‹ เช†เช•เซƒเชคเชฟ 1 เชฎเชพเช‚ เช…เชฒเช— Java เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชธเชพเชฅเซ‡, เชชเชฐเช‚เชคเซ เชตเชฟเชตเชฟเชง เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชธเชพเชฅเซ‡ เชธเชฐเซเชตเชฐเชจเชพ 2 เชœเซ‚เชฅเซ‹ เช‰เชฎเซ‡เชฐเซ€เชจเซ‡ เช…เชฎเชพเชฐเชพ เชฎเซ‹เชกเซ‡เชฒเชจเซ‡ เชตเชฟเชธเซเชคเซƒเชค เช•เชฐเซ€เช.

Ansible เชฎเชพเช‚ เชšเชฒ เชฎเชพเชŸเซ‡ เชธเชฟเชธเซเชŸเชฎ เช…เชญเชฟเช—เชฎ

เช•เชฒเซเชชเชจเชพ เช•เชฐเซ‹ เช•เซ‡ เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชชเซเชฒเซ‡เชฌเซเช• เช•เซ‡เชตเซ€ เชฆเซ‡เช–เชพเชถเซ‡:

- hosts: myapi
  roles:
    - api

- hosts: bbauth
  roles:
    - auth

- hosts: ghauth
  roles:
    - auth

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

เช•เซ‹เชก เชถเซˆเชฒเซ€

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

เชฒเชฟเช‚เช• เชšเชฒเซ‹

เชœเซ‹ เช•เซ‡, เชคเซ‡ เชฎเชฟเชฒเช•เชค เชšเชฒเซ‹ เชตเชฟเชถเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชฒเชฟเช‚เช• เชšเชฒเซ‹ เชตเชฟเชถเซ‡ เชถเซเช‚?
เชคเซ‡เชฎเชจเซ‹ เชคเชซเชพเชตเชค เช เช›เซ‡ เช•เซ‡ เชคเซ‡เชฎเชจเซ€ เชชเชพเชธเซ‡ เชตเชฟเชตเชฟเชง เชœเซ‚เชฅเซ‹เชฎเชพเช‚ เชธเชฎเชพเชจ เชฎเซ‚เชฒเซเชฏ เชนเซ‹เชตเซเช‚ เช†เชตเชถเซเชฏเช• เช›เซ‡.

เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชคเซเชฏเชพเช‚ เชนเชคเซ‹ เชตเชฟเชšเชพเชฐ เชซเซ‹เชฐเซเชฎเชจเชพ เชฐเชพเช•เซเชทเชธเซ€ เชฌเชพเช‚เชงเช•เชพเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹:
hostvars[groups['bbauth'][0]]['auth_bind_port'], เชชเชฐเช‚เชคเซ เชคเซ‡ เชคเชฐเชค เชœ เช›เซ‹เชกเซ€ เชฆเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚
เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡เชฎเชพเช‚ เช–เชพเชฎเซ€เช“ เช›เซ‡. เชชเซเชฐเชฅเชฎ, เชฌเชฒเซเช•เชจเซ‡เชธ. เชฌเซ€เชœเซเช‚, เชœเซ‚เชฅเชฎเชพเช‚ เชšเซ‹เช•เซเช•เชธ เชนเซ‹เชธเซเชŸ เชชเชฐ เช…เชตเชฒเช‚เชฌเชจ. เชคเซเชฐเซ€เชœเซ‡ เชธเซเชฅเชพเชจเซ‡, เชœเซ‹ เช†เชชเชฃเซ‡ เช…เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เชšเชฒ เชญเซ‚เชฒ เชฎเซ‡เชณเชตเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชจ เชนเซ‹เชต เชคเซ‹, เชœเชฎเชพเชตเชŸ เชถเชฐเซ‚ เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ เชคเชฎเชพเชฎ เชฏเชœเชฎเชพเชจเซ‹ เชชเชพเชธเซ‡เชฅเซ€ เชนเช•เซ€เช•เชคเซ‹ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเชตเซ€ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡.

เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชฒเชฟเช‚เช• เชตเซ‡เชฐเซ€เชเชฌเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ‹ เชจเชฟเชฐเซเชฃเชฏ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹.

เชฒเชฟเช‚เช• เชšเชฒเซ‹ เชšเชฒ เช›เซ‡ เชœเซ‡ เชชเซเชฒเซ‡เชฌเซเช•เชฅเซ€ เชธเช‚เชฌเช‚เชงเชฟเชค เช›เซ‡ เช…เชจเซ‡ เชธเชฟเชธเซเชŸเชฎ เช‘เชฌเซเชœเซ‡เช•เซเชŸเซเชธเชจเซ‡ เชฒเชฟเช‚เช• เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡.

เชฒเชฟเช‚เช• เชšเชฒเซ‹ เชธเชพเชฎเชพเชจเซเชฏ เชธเชฟเชธเซเชŸเชฎ เชšเชฒเซ‹เชฎเชพเช‚ เชฐเชšเชพเชฏ เช›เซ‡ group_vars/all/vars เช…เชจเซ‡ เชฆเชฐเซ‡เช• เชœเซ‚เชฅเชฎเชพเช‚เชฅเซ€ เชคเชฎเชพเชฎ เชถเซเชฐเซ‹เชคเชพ เชšเชฒเซ‹เชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเซ€เชจเซ‡ เช…เชจเซ‡ เชšเชฒเชจเซ€ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชœเซ‡ เชœเซ‚เชฅเชฎเชพเช‚เชฅเซ€ เชธเชพเช‚เชญเชณเชจเชพเชฐเชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹ เชคเซ‡เชจเซเช‚ เชจเชพเชฎ เช‰เชฎเซ‡เชฐเซ€เชจเซ‡ เชฐเชšเชพเชฏ เช›เซ‡.

เช†เชฎ, เชจเชพเชฎเซ‹เชจเซ€ เชเช•เชฐเซ‚เชชเชคเชพ เช…เชจเซ‡ เชฌเชฟเชจ-เช›เซ‡เชฆเชจ เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เชšเชพเชฒเซ‹ เช‰เชชเชฐเชจเชพ เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚เชฅเซ€ เชšเชฒเซ‹เชจเซ‡ เชฌเชพเช‚เชงเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€เช:

Ansible เชฎเชพเช‚ เชšเชฒ เชฎเชพเชŸเซ‡ เชธเชฟเชธเซเชŸเชฎ เช…เชญเชฟเช—เชฎ

เช•เชฒเซเชชเชจเชพ เช•เชฐเซ‹ เช•เซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชšเชฒเซ‹ เช›เซ‡ เชœเซ‡ เชเช•เชฌเซ€เชœเชพ เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ‡ เช›เซ‡:

# roles/api/defaults:
# ะŸะตั€ะตะผะตะฝะฝะฐั ะทะฐะฟั€ะพัะฐ
api_auth1_address: "http://example.com:80"
api_auth2_address: "http://example2.com:80"

# roles/auth/defaults:
# ะŸะตั€ะตะผะตะฝะฝะฐั ัะปัƒัˆะฐั‚ะตะปัŒ
auth_bind_port: "20000"

เชšเชพเชฒเซ‹ เชคเซ‡เชจเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชšเชฒเซ‹เชฎเชพเช‚ เชฎเซ‚เช•เซ€เช group_vars/all/vars เชฌเชงเชพ เชถเซเชฐเซ‹เชคเชพเช“, เช…เชจเซ‡ เชจเชพเชฎเชฎเชพเช‚ เชœเซ‚เชฅเชจเซเช‚ เชจเชพเชฎ เช‰เชฎเซ‡เชฐเซ‹:

# group_vars/all/vars
bbauth_auth_bind_port: "20000"
ghauth_auth_bind_port: "30000"

# group_vars/bbauth/vars
auth_bind_port: "{{ bbauth_auth_bind_port }}"

# group_vars/ghauth/vars
auth_bind_port: "{{ ghauth_auth_bind_port }}"

# group_vars/myapi/vars
api_auth1_address: "http://{{ bbauth_auth_service_name }}:{{ bbauth_auth_bind_port }}"
api_auth2_address: "http://{{ ghauth_auth_service_name }}:{{ ghauth_auth_bind_port }}"

เชนเชตเซ‡, เช•เชจเซ‡เช•เซเชŸเชฐเชจเซ€ เช•เชฟเช‚เชฎเชค เชฌเชฆเชฒเซ€เชจเซ‡, เช…เชฎเซ‡ เช–เชพเชคเชฐเซ€ เช•เชฐเซ€เชถเซเช‚ เช•เซ‡ เชตเชฟเชจเช‚เชคเซ€ เช เชœ เชชเซ‹เชฐเซเชŸ เชชเชฐ เชœเชถเซ‡.

เช•เซ‹เชก เชถเซˆเชฒเซ€

  • เชญเซ‚เชฎเชฟเช•เชพเช“ เช…เชจเซ‡ เชœเซ‚เชฅเซ‹ เช…เชฒเช—-เช…เชฒเช— เชธเชฟเชธเซเชŸเชฎ เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชนเซ‹เชตเชพเชฅเซ€, เชคเซ‡เช“เชจเซ‡ เช…เชฒเช—-เช…เชฒเช— เชจเชพเชฎเซ‹ เชฐเชพเช–เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซ‡เชฅเซ€ เช•เชฐเซ€เชจเซ‡ เชฒเชฟเช‚เช• เชšเชฒเซ‹ เชšเซ‹เช•เซเช•เชธ เชฌเชคเชพเชตเซ‡ เช•เซ‡ เชคเซ‡เช“ เชšเซ‹เช•เซเช•เชธ เชธเชฐเซเชตเชฐ เชœเซ‚เชฅเชจเชพ เช›เซ‡, เช…เชจเซ‡ เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เช•เซ‹เชˆ เชญเซ‚เชฎเชฟเช•เชพ เชธเชพเชฅเซ‡ เชจเชฅเซ€.

เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชซเชพเชˆเชฒเซ‹

เชญเซ‚เชฎเชฟเช•เชพเช“ เชเชตเซ€ เชซเชพเช‡เชฒเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡ เชœเซ‡ เชชเชฐเซเชฏเชพเชตเชฐเชฃเชฅเซ€ เชชเชฐเซเชฏเชพเชตเชฐเชฃเชฎเชพเช‚ เช…เชฒเช— เชนเซ‹เชฏ เช›เซ‡.

SSL เชชเซเชฐเชฎเชพเชฃเชชเชคเซเชฐเซ‹ เช†เชตเซ€ เชซเชพเช‡เชฒเซ‹เชจเซเช‚ เช‰เชฆเชพเชนเชฐเชฃ เช›เซ‡. เชคเซ‡เชฎเชจเซ‡ เชŸเซ‡เช•เซเชธเซเชŸ เชคเชฐเซ€เช•เซ‡ เชธเซเชŸเซ‹เชฐ เช•เชฐเซ‹
เชšเชฒเชฎเชพเช‚ เช–เซ‚เชฌ เช…เชจเซเช•เซ‚เชณ เชจเชฅเซ€. เชชเชฐเช‚เชคเซ เชตเซ‡เชฐเซ€เชเชฌเชฒเชจเซ€ เช…เช‚เชฆเชฐ เชคเซ‡เชฎเชจเชพ เชฎเชพเชŸเซ‡เชจเชพ เชฎเชพเชฐเซเช—เชจเซ‡ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเชตเชพเชจเซเช‚ เช…เชจเซเช•เซ‚เชณ เช›เซ‡.

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช†เชชเชฃเซ‡ เชšเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เช เช›เซ€เช api_ssl_key_file: "/path/to/file".

เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เชธเซเชชเชทเซเชŸ เช›เซ‡ เช•เซ‡ เช•เซ€ เชชเซเชฐเชฎเชพเชฃเชชเชคเซเชฐ เชชเชฐเซเชฏเชพเชตเชฐเชฃเชฅเซ€ เชชเชฐเซเชฏเชพเชตเชฐเชฃเชฎเชพเช‚ เชฌเชฆเชฒเชพเชถเซ‡, เช† เชเช• เชชเชฐเซเชฏเชพเชตเชฐเชฃ เช†เชงเชพเชฐเชฟเชค เชšเชฒ เช›เซ‡, เชœเซ‡เชจเซ‹ เช…เชฐเซเชฅ เช›เซ‡ เช•เซ‡ เชคเซ‡ เชซเชพเช‡เชฒเชฎเชพเช‚ เชธเซเชฅเชฟเชค เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช.
group_vars/myapi/vars เชšเชฒเซ‹เชจเซ€ เช‡เชจเซเชตเซ‡เชจเซเชŸเชฐเซ€, เช…เชจเซ‡ 'เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡' เชฎเซ‚เชฒเซเชฏ เชงเชฐเชพเชตเซ‡ เช›เซ‡.

เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชธเซŒเชฅเซ€ เช…เชจเซเช•เซ‚เชณ เชฐเซ€เชค เช เช›เซ‡ เช•เซ‡ เช•เซ€ เชซเชพเช‡เชฒเชจเซ‡ เชชเซเชฒเซ‡เชฌเซเช• เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€เชฎเชพเช‚ เชชเชพเชฅ เชธเชพเชฅเซ‡ เชฎเซ‚เช•เชตเซ€
files/prod/certs/myapi.key, เชชเช›เซ€ เชšเชฒเชจเซเช‚ เชฎเซ‚เชฒเซเชฏ เชนเชถเซ‡:
api_ssl_key_file: "prod/certs/myapi.key". เชธเช—เชตเชก เช เชนเช•เซ€เช•เชคเชฎเชพเช‚ เชฐเชนเซ‡เชฒเซ€ เช›เซ‡ เช•เซ‡ เชธเชฟเชธเซเชŸเชฎเชจเซ‡ เชšเซ‹เช•เซเช•เชธ เชธเซเชŸเซ‡เชจเซเชก เชชเชฐ เชœเชฎเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌเชฆเชพเชฐ เชฒเซ‹เช•เซ‹ เชชเชพเชธเซ‡ เชชเชฃ เชคเซ‡เชฎเชจเซ€ เชซเชพเช‡เชฒเซ‹เชจเซ‡ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€เชฎเชพเช‚ เชคเซ‡เชฎเชจเซเช‚ เชชเซ‹เชคเชพเชจเซเช‚ เชธเชฎเชฐเซเชชเชฟเชค เชธเซเชฅเชพเชจ เช›เซ‡. เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, เชธเชฐเซเชตเชฐ เชชเชฐ เชชเซเชฐเชฎเชพเชฃเชชเชคเซเชฐเชจเซ‹ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฎเชพเชฐเซเช— เชจเชฟเชฐเซเชฆเชฟเชทเซเชŸ เช•เชฐเชตเชพเชจเซเช‚ เชถเช•เซเชฏ เชฐเชนเซ‡ เช›เซ‡, เชœเซ‹ เชชเซเชฐเชฎเชพเชฃเชชเชคเซเชฐเซ‹ เช…เชจเซเชฏ เชธเชฟเชธเซเชŸเชฎ เชฆเซเชตเชพเชฐเชพ เชชเซ‚เชฐเชพ เชชเชพเชกเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซ‹.

เชเช• เชตเชพเชคเชพเชตเชฐเชฃเชฎเชพเช‚ เชฌเชนเซเชตเชฟเชง เชธเซเชŸเซ‡เชจเซเชก

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

เชคเซ‡ group_vars เชˆเชจเซเชตเซ‡เชจเซเชŸเชฐเซ€เชจเซ‹ เชชเซเชจเชƒเช‰เชชเชฏเซ‹เช— เช•เชฐเชถเซ‡ เช…เชจเซ‡ เช•เซ‡เชŸเชฒเชพเช• เชšเชฒเซ‹เชจเซ‡ เชธเซ€เชงเชพ เชœ เชชเซ‹เชคเชพเชจเชพ เชฎเชพเชŸเซ‡ เชซเชฐเซ€เชฅเซ€ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เชชเชฃ เชธเช•เซเชทเชฎ เชนเชถเซ‡.

เชœเชฎเชพเชตเชŸ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฎเชพเชŸเซ‡ เช…เช‚เชคเชฟเชฎ เชจเชฟเชฐเซเชฆเซ‡เชถเชฟเช•เชพ เชฎเชพเชณเช–เซเช‚:

mydeploy                        # ะšะฐั‚ะฐะปะพะณ ะดะตะฟะปะพั
โ”œโ”€โ”€ deploy.yml                  # ะŸะปะตะนะฑัƒะบ ะดะตะฟะปะพั
โ”œโ”€โ”€ files                       # ะšะฐั‚ะฐะปะพะณ ะดะปั ั„ะฐะนะปะพะฒ ะดะตะฟะปะพั
โ”‚   โ”œโ”€โ”€ prod                    # ะšะฐั‚ะพะปะพะณ ะดะปั ัั€ะตะดะพะทะฐะฒะธัะธะผั‹ั… ั„ะฐะนะปะพะฒ ัั‚ะตะฝะดะฐ prod
โ”‚   โ”‚   โ””โ”€โ”€ certs               # 
โ”‚   โ”‚       โ””โ”€โ”€ myapi.key       #
โ”‚   โ””โ”€โ”€ test1                   # ะšะฐั‚ะฐะปะพะณ ะดะปั ัั€ะตะดะพะทะฐะฒะธัะธะผั‹ั… ั„ะฐะนะปะพะฒ ัั‚ะตะฝะดะฐ test1
โ”œโ”€โ”€ group_vars                  # ะšะฐั‚ะฐะปะพะณ ะฟะตั€ะตะผะตะฝะฝั‹ั… ะฟะปะตะนะฑัƒะบะฐ
โ”‚   โ”œโ”€โ”€ all.yml                 # ะคะฐะนะป ะดะปั ะฟะตั€ะตะผะตะฝะฝั‹ั… ัะฒัะทะธ ะฒัะตะน ัะธัั‚ะตะผั‹
โ”‚   โ”œโ”€โ”€ myapi.yml               # ะคะฐะนะป ะฟะตั€ะตะผะตะฝะฝั‹ั… ัะฒะพะนัั‚ะฒ ะณั€ัƒะฟะฟั‹ myapi
โ”‚   โ”œโ”€โ”€ bbauth.yml              # 
โ”‚   โ””โ”€โ”€ ghauth.yml              #
โ””โ”€โ”€ inventories                 #
    โ”œโ”€โ”€ prod                    # ะšะฐั‚ะฐะปะพะณ ะพะบั€ัƒะถะตะฝะธั prod
    โ”‚   โ”œโ”€โ”€ group_vars          # ะšะฐั‚ะฐะปะพะณ ะดะปั ะฟะตั€ะตะผะตะฝะฝั‹ั… ะธะฝะฒะตะฝั‚ะพั€ะธ
    โ”‚   โ”‚   โ”œโ”€โ”€ myapi           #
    โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ vars.yml    # ะกั€ะตะดะพะทะฐะฒะธัะธะผั‹ะต ะฟะตั€ะตะผะตะฝะฝั‹ะต ะณั€ัƒะฟะฟั‹ myapi
    โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ vault.yml   # ะกะตะบั€ะตั‚ั‹ (ะฒัะตะณะดะฐ ัั€ะตะดะพะทะฐะฒะธัะธะผั‹)
    โ”‚   โ”‚   โ”œโ”€โ”€ bbauth          # 
    โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ vars.yml    #
    โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ vault.yml   #
    โ”‚   โ”‚   โ””โ”€โ”€ ghauth          #
    โ”‚   โ”‚       โ”œโ”€โ”€ vars.yml    #
    โ”‚   โ”‚       โ””โ”€โ”€ vault.yml   #
    โ”‚   โ””โ”€โ”€ prod.ini            # ะ˜ะฝะฒะตะฝั‚ะพั€ะธ ัั‚ะตะฝะดะฐ prod
    โ””โ”€โ”€ test                    # ะšะฐั‚ะฐะปะพะณ ะพะบั€ัƒะถะตะฝะธั test
        โ”œโ”€โ”€ group_vars          #
        โ”‚   โ”œโ”€โ”€ myapi           #
        โ”‚   โ”‚   โ”œโ”€โ”€ vars.yml    #
        โ”‚   โ”‚   โ””โ”€โ”€ vault.yml   #
        โ”‚   โ”œโ”€โ”€ bbauth          #
        โ”‚   โ”‚   โ”œโ”€โ”€ vars.yml    #
        โ”‚   โ”‚   โ””โ”€โ”€ vault.yml   #
        โ”‚   โ””โ”€โ”€ ghauth          #
        โ”‚       โ”œโ”€โ”€ vars.yml    #
        โ”‚       โ””โ”€โ”€ vault.yml   #
        โ”œโ”€โ”€ test1.ini           # ะ˜ะฝะฒะตะฝั‚ะพั€ะธ ัั‚ะตะฝะดะฐ test1 ะฒ ัั€ะตะดะต test
        โ””โ”€โ”€ test2.ini           # ะ˜ะฝะฒะตะฝั‚ะพั€ะธ ัั‚ะตะฝะดะฐ test2 ะฒ ัั€ะตะดะต test

เชธเชพเชฐเชพเช‚เชถ

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

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

เชธเชฟเชธเซเชŸเชฎ เชธเช‚เชšเชพเชฒเช•เซ‹เชจเซ‡ เชนเชตเซ‡ เชœเชฎเชพเชตเชŸ เช•เซ‹เชก เชธเชฎเชœเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€. เชธเชซเชณ เชœเชฎเชพเชตเชŸ เชฎเชพเชŸเซ‡ เชคเซ‡เชฎเชจเซ‡ เชœเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡ เชคเซ‡ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชšเชฒเซ‹เชจเซ€ เชซเชพเชˆเชฒเซ‹ เชญเชฐเชตเชพเชจเซเช‚ เช›เซ‡.

เชธเชพเชนเชฟเชคเซเชฏ

  1. ะ”ะพะบัƒะผะตะฝั‚ะฐั†ะธั

เชฒเซ‡เช–เช•

เช•เชพเชฒเซเชฏเซเชเชจเซ€ เชกเซ‡เชจเชฟเชธ เชเชฒเซ‡เช•เซเชเชพเชจเซเชกเซเชฐเซ‹เชตเชฟเชš

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

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