ืกื™ืกื˜ืขื ืฆื•ื’ืึทื ื’ ืฆื• ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืื™ืŸ Ansible

ืึทื ืกืึทื‘ืึทืœ ื“ืขื•ื•ืึธืคึผืก ืงืึธื“ืขืกื˜ื™ื™ืœ

ื”ื™ื™! ืžื™ื™ืŸ ื ืืžืขืŸ ืื™ื– ื“ืขื ื™ืก ืงืึทืœื™ื•ื–ืฉื ื™ ืื™ืš ืึทืจื‘ืขื˜ ื•ื•ื™ ืึท ื™ื ื–ืฉืขื ื™ืจ ืื™ืŸ ื“ืขืจ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคึผืจืึธืฆืขืก ืึธื˜ืึทืžื™ื™ืฉืึทืŸ ืึธืคึผื˜ื™ื™ืœื•ื ื’. ื™ืขื“ืขืจ ื˜ืึธื’, ื ื™ื™ึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื‘ื•ื™ืขืŸ ื–ืขื ืขืŸ ืจืึธื•ืœื“ ืื•ื™ืก ืื•ื™ืฃ ื”ื•ื ื“ืขืจื˜ืขืจ ืคื•ืŸ ืงืืžืคืื ื™ืข ืกืขืจื•ื•ืขืจืก. ืื•ืŸ ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ืื™ืš ื˜ื™ื™ืœืŸ ืžื™ื™ืŸ ื“ืขืจืคืึทืจื•ื ื’ ืคื•ืŸ ื ื™ืฆืŸ 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   # ะกะตะบั€ะตั‚ั‹ (ะฒัะตะณะดะฐ ัั€ะตะดะพะทะฐะฒะธัะธะผั‹) *

* - ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืื•ืŸ ื•ื•ืึธืœืฅ

ื“ืขืจ ื—ื™ืœื•ืง ืื™ื– ืึทื– ืคึผืœื™ื™ึทื‘ืึธืึธืง ื•ื•ืขืจื™ืึทื‘ืึทืœื– ื–ืขื ืขืŸ ืฉื˜ืขื ื“ื™ืง ื’ืขื ื™ืฆื˜ ื•ื•ืขืŸ ืจื•ืคืŸ ืคึผืœื™ื™ึทื‘ืึธืึธืงืก ืœื™ื’ืŸ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืžื“ืจื’ื” ื•ื•ื™ ืขืก. ื“ืขื ืžื™ื˜ืœ ืึทื– ื“ื™ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ื–ืขื ืขืŸ ื’ืจื•ื™ืก ืคึฟืึทืจ ื˜ืฉืึทื ื’ื™ื ื’ ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ื•ื•ืึทืœื•ืขืก ืคื•ืŸ ืกื•ื•ื™ื•ื•ืข-ืคืจื™ื™ึท ื•ื•ืขืจื™ืึทื‘ืึทืœื–. ืงืึธื ื•ื•ืขืจืกืขืœื™, ื™ื ื•ื•ืึทื ื˜ืึธืจื™ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขื ื™ืฆื˜ ื‘ืœื•ื™ื– ืคึฟืึทืจ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ืกื•ื•ื™ื•ื•ืข, ื•ื•ืึธืก ืื™ื– ื™ื“ืขืึทืœ ืคึฟืึทืจ ืกื•ื•ื™ื•ื•ืข-ืกืคึผืขืฆื™ืคื™ืฉ ื•ื•ืขืจื™ืึทื‘ืึทืœื–.

ืขืก ืื™ื– ื•ื•ื™ื›ื˜ื™ืง ืฆื• ื˜ืึธืŸ ืึทื– ื•ื•ืขืจื™ืึทื‘ืึทืœ ื‘ื™ืœื›ืขืจืงื™ื™ึทื˜ ื•ื•ืขื˜ ื ื™ืฉื˜ ืœืึธื–ืŸ ืื™ืจ ืฆื• ืึธื•ื•ื•ืขืจืจื™ื™ื“ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืขืจืฉื˜ืขืจ ืื™ืŸ ืคึผืœื™ื™ึทื‘ืึธืึธืง ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืื•ืŸ ื“ืขืžืึธืœื˜ ืกืขืคึผืขืจืึทื˜ืœื™ ืื™ืŸ ืื™ื™ืŸ ื™ื ื•ื•ืึทื ื˜ืึธืจื™.

ื“ืึธืก ืžื™ื™ื ื˜ ืึทื– ืฉื•ื™ืŸ ืื™ืŸ ื“ืขื ื‘ื™ื ืข ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ื‘ืึทืฉืœื™ืกืŸ ืฆื™ ื“ื™ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืื™ื– ืกื•ื•ื™ื•ื•ืข-ืึธืคืขื ื’ื™ืง ืึธื“ืขืจ ื ื™ืฉื˜ ืื•ืŸ ืฉื˜ืขืœืŸ ืขืก ืื™ืŸ ื“ื™ ืฆื•ื ืขืžืขืŸ ืึธืจื˜.

ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืŸ ืื™ื™ืŸ ืคึผืจื•ื™ืขืงื˜, ื“ื™ ื•ื•ืขืจื™ืึทื‘ืึทืœ ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ืขื ื™ื™ื‘ืึทืœื™ื ื’ ืกืกืœ ืื™ื– ื’ืขื•ื•ืขืŸ ืกื•ื•ื™ื•ื•ืข-ืึธืคืขื ื’ื™ืง ืคึฟืึทืจ ืึท ืœืึทื ื’ ืฆื™ื™ึทื˜, ื•ื•ื™ื™ึทืœ ืžื™ืจ ืงืขืŸ ื ื™ืฉื˜ ื’ืขื‘ืŸ ืกืกืœ ืคึฟืึทืจ ืกื™ื‘ื•ืช ื•ื•ื™ื™ึทื˜ืขืจ ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืงืึธื ื˜ืจืึธืœ ืื™ืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืกื˜ืึทื ื“ื–. ื ืึธืš ืžื™ืจ ืคืึทืจืคืขืกื˜ื™ืงื˜ ื“ืขื ืคึผืจืึธื‘ืœืขื, ืขืก ืื™ื– ื’ืขื•ื•ืืจืŸ ืคืจื™ื™ึท ืคื•ืŸ ื“ื™ ืกื•ื•ื™ื•ื•ืข ืื•ืŸ ืืจื™ื‘ืขืจื’ืขืคืืจืŸ ืฆื• ืคึผืœื™ื™ึทื‘ืึธืึธืง ื•ื•ืขืจื™ืึทื‘ืึทืœื–.

ืคืึทืจืžืึธื’ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืคึฟืึทืจ ื’ืจื•ืคึผืขืก

ืœืึธืžื™ืจ ื™ืงืกืคึผืึทื ื“ ืื•ื ื“ื–ืขืจ ืžืึธื“ืขืœ ืื™ืŸ ืคื™ื’ื•ืจืข 1 ื“ื•ืจืš ืึทื“ื™ื ื’ 2 ื’ืจื•ืคึผืขืก ืคื•ืŸ ืกืขืจื•ื•ืขืจืก ืžื™ื˜ ืึท ืึทื ื“ืขืจืฉ ื–'ืื‘ื ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ, ืึธื‘ืขืจ ืžื™ื˜ ืคืึทืจืฉื™ื“ืขื ืข ืกืขื˜ื˜ื™ื ื’ืก.

ืกื™ืกื˜ืขื ืฆื•ื’ืึทื ื’ ืฆื• ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืื™ืŸ Ansible

ื–ืืœ ืก ื™ืžืึทื“ื–ืฉืึทืŸ ื•ื•ื™ ื“ื™ ืคึผืœื™ื™ึทื‘ืึธืึธืง ื•ื•ืขื˜ ืงื•ืงืŸ ื•ื•ื™ ืื™ืŸ ื“ืขื ืคืึทืœ:

- hosts: myapi
  roles:
    - api

- hosts: bbauth
  roles:
    - auth

- hosts: ghauth
  roles:
    - auth

ืžื™ืจ ื”ืึธื‘ืŸ ื“ืจื™ื™ ื’ืจื•ืคึผืขืก ืื™ืŸ ื“ื™ ืคึผืœื™ื™ึทื‘ืึธืึธืง, ืึทื–ื•ื™ ืขืก ืื™ื– ื’ืœื™ื™ืš ืจืขืงืึทืžืขื ื“ื™ื“ ืฆื• ืฉืึทืคึฟืŸ ื“ื™ ื–ืขืœื‘ืข ื ื•ืžืขืจ ืคื•ืŸ ื’ืจื•ืคึผืข ื˜ืขืงืขืก ืื™ืŸ group_vars ื™ื ื•ื•ืึทื ื˜ืึธืจื™ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืื•ืŸ ืคึผืœื™ื™ึทื‘ืึธืึธืง ื•ื•ืขืจื™ืึทื‘ืึทืœื–. ืื™ื™ืŸ ื’ืจื•ืคึผืข ื˜ืขืงืข ืื™ืŸ ื“ืขื ืคืึทืœ ืื™ื– ืึท ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคื•ืŸ ืื™ื™ืŸ ืงืึธืžืคึผืึธื ืขื ื˜ ืคื•ืŸ ื“ื™ ืื•ื™ื‘ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื™ืŸ ื“ื™ ืคึผืœื™ื™ึทื‘ืึธืึธืง. ื•ื•ืขืŸ ืื™ืจ ืขืคึฟืขื ืขืŸ ืึท ื’ืจื•ืคึผืข ื˜ืขืงืข ืื™ืŸ ื“ื™ ืคึผืœื™ื™ึทื‘ืึธืึธืง ื•ื•ืขืจื™ืึทื‘ืึทืœื–, ืื™ืจ ื’ืœื™ื™ืš ื–ืขืŸ ืึทืœืข ื“ื™ ื“ื™ืคืขืจืึทื ืกื™ื– ืฆื•ื•ื™ืฉืŸ ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ื ืึทื˜ื•ืจ ืคื•ืŸ ื“ื™ ืจืึธืœืขืก ืื™ื ืกื˜ืึทืœื™ืจืŸ ืื•ื™ืฃ ื“ืขืจ ื’ืจื•ืคึผืข. ืื™ืŸ ื™ื ื•ื•ืึทื ื˜ืึธืจื™ ื•ื•ืขืจื™ืึทื‘ืึทืœื–: ื“ื™ืคืขืจืึทื ืกื™ื– ืื™ืŸ ื’ืจื•ืคึผืข ื ืึทื˜ื•ืจ ืคื•ืŸ ืฉื˜ื™ื™ืŸ ืฆื• ืฉื˜ื™ื™ืŸ.

ืงืึธื“ ืกื˜ื™ื™ืœ

  • ืคึผืจื•ึผื•ื•ื˜ ื ื™ืฉื˜ ืฆื• ื ื•ืฆืŸ ื”ืึธืกื˜_ื•ื•ืึทืจืก ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืื™ืŸ ืึทืœืข, ื•ื•ื™ื™ึทืœ ื–ื™ื™ ื˜ืึธืŸ ื ื™ื˜ ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ืกื™ืกื˜ืขื, ืึธื‘ืขืจ ื‘ืœื•ื™ื– ืึท ืกืคึผืขืฆื™ืขืœ ืคืึทืœ, ื•ื•ืึธืก ืื™ืŸ ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜ ื•ื•ืขื˜ ืคื™ืจืŸ ืฆื• ืคึฟืจืื’ืŸ: "ืคืืจื•ื•ืืก ืื™ื– ื“ืขืจ ื‘ืึทืœืขื‘ืึธืก ืึทื ื“ืขืจืฉ ืคื•ืŸ ื“ื™ ืื ื“ืขืจืข?", ื“ื™ ืขื ื˜ืคืขืจ ืฆื• ื•ื•ืึธืก ืื™ื– ื ื™ืฉื˜. ืฉื˜ืขื ื“ื™ืง ื’ืจื™ื ื’ ืฆื• ื’ืขืคึฟื™ื ืขืŸ.

ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ื•ื•ืขืจื™ืึทื‘ืึทืœื–

ืึธื‘ืขืจ, ื“ืึธืก ืื™ื– ื•ื•ืึธืก ืคืึทืจืžืึธื’ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ื–ืขื ืขืŸ ืึทืœืข ื•ื•ืขื’ืŸ, ืึธื‘ืขืจ ื•ื•ืึธืก ื•ื•ืขื’ืŸ ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ื•ื•ืขืจื™ืึทื‘ืึทืœื–?
ื–ื™ื™ืขืจ ื—ื™ืœื•ืง ืื™ื– ืึทื– ื–ื™ื™ ื–ืึธืœ ื”ืึธื‘ืŸ ื“ื™ ื–ืขืœื‘ืข ื˜ื™ื™ึทื˜ืฉ ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื’ืจื•ืคึผืขืก.

ืื™ืŸ ืขืจืฉื˜ืขืจ ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ื’ืขื“ืึทื ืง ื ื™ืฆืŸ ืึท ืžืึทื ืกื˜ืจืึทืก ืงืึทื ืกื˜ืจืึทืงืฉืึทืŸ ื•ื•ื™:
hostvars[groups['bbauth'][0]]['auth_bind_port'], ืื‘ืข ืจ ื– ืฒ ื”ืื‘ ืŸ ืื™ ื ื’ืœืฒ ืš ืืคื’ืขืฐืืจืคืŸ
ื•ื•ื™ื™ึทืœ ืขืก ื”ืื˜ ื“ื™ืกืึทื“ื•ื•ืึทื ื˜ื™ื“ื–ืฉื™ื–. ืขืจืฉื˜ืขืจ, ื‘ืึทืœืงื™ื ืึทืก. ืฆื•ื•ื™ื™ื˜ื ืก, ืึธืคืขื ื’ื™ืงื™ื™ึทื˜ ืื•ื™ืฃ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ื‘ืึทืœืขื‘ืึธืก ืื™ืŸ ื“ืขืจ ื’ืจื•ืคึผืข. ื˜ื”ื™ืจื“ืœื™, ืื™ื™ื“ืขืจ ืื™ืจ ืึธื ื”ื™ื™ื‘ืŸ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜, ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ื–ืึทืžืœืขืŸ Facts ืคื•ืŸ ืึทืœืข ืžื—ื ื•ืช ืื•ื™ื‘ ืžื™ืจ ื˜ืึธืŸ ื ื™ืฉื˜ ื•ื•ืขืœืŸ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืึท ื˜ืขื•ืช ืคื•ืŸ ืึท ืึทื ื“ื™ืคื™ื™ื ื“ ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง.

ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜, ืขืก ืื™ื– ื‘ืึทืฉืœืึธืกืŸ ืฆื• ื ื•ืฆืŸ ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ื•ื•ืขืจื™ืึทื‘ืึทืœื–.

ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ื•ื•ืขืจื™ืึทื‘ืึทืœื– - ื“ืึธืก ื–ืขื ืขืŸ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ื•ื•ืึธืก ื’ืขื”ืขืจืŸ ืฆื• ื“ื™ ืคึผืœื™ื™ึทื‘ืึธืึธืง ืื•ืŸ ื–ืขื ืขืŸ ื“ืืจืฃ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืกื™ืกื˜ืขื ืึทื‘ื“ื–ืฉืขืงืฅ.

ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ื•ื•ืขืจื™ืึทื‘ืึทืœื– ื–ืขื ืขืŸ ืคึผืึทืคึผื™ืึทืœื™ื™ื˜ืึทื“ ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ ืกื™ืกื˜ืขื ื•ื•ืขืจื™ืึทื‘ืึทืœื– 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 }}"

ืื™ืฆื˜, ื“ื•ืจืš ื˜ืฉืึทื ื’ื™ื ื’ ื“ื™ ื•ื•ืขืจื˜ ืคื•ืŸ ื“ื™ ืงืึทื ืขืงื˜ืขืจ, ืžื™ืจ ื•ื•ืขืœืŸ ื–ื™ื™ืŸ ื–ื™ื›ืขืจ ืึทื– ื“ื™ ื‘ืงืฉื” ื•ื•ืขื˜ ื’ื™ื™ืŸ ืฆื• ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืึธืจื˜ ื•ื•ื• ื“ื™ ืคึผืึธืจื˜ ืื™ื– ืœื™ื’ืŸ.

ืงืึธื“ ืกื˜ื™ื™ืœ

  • ื–ื™ื ื˜ ืจืึธืœืขืก ืื•ืŸ ื’ืจื•ืคึผืขืก ื–ืขื ืขืŸ ืคืึทืจืฉื™ื“ืขื ืข ืกื™ืกื˜ืขื ืึทื‘ื“ื–ืฉืขืงืฅ, ื–ื™ื™ ื“ืึทืจืคึฟืŸ ืฆื• ื”ืึธื‘ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื ืขืžืขืŸ, ื“ืขืžืึธืœื˜ ื“ื™ ืœื™ื ืง ื•ื•ืขืจื™ืึทื‘ืึทืœื– ื•ื•ืขื˜ ืึทืงื™ืขืจืึทื˜ืœื™ ืึธื ื•ื•ื™ื™ึทื–ืŸ ืึทื– ื–ื™ื™ ื’ืขื”ืขืจืŸ ืฆื• ืึท ืกืคึผืขืฆื™ืคื™ืฉ ื’ืจื•ืคึผืข ืคื•ืŸ โ€‹โ€‹ืกืขืจื•ื•ืขืจืก, ืื•ืŸ ื ื™ืฉื˜ ืฆื• ืึท ืจืึธืœืข ืื™ืŸ ื“ื™ ืกื™ืกื˜ืขื.

ืกื•ื•ื™ื•ื•ืข ืึธืคืขื ื’ื™ืง ื˜ืขืงืขืก

ืจืึธืœืขืก ืงืขื ืขืŸ ื ื•ืฆืŸ ื˜ืขืงืขืก ื•ื•ืึธืก ื–ืขื ืขืŸ ืึทื ื“ืขืจืฉ ืคื•ืŸ ืกื•ื•ื™ื•ื•ืข ืฆื• ืกื•ื•ื™ื•ื•ืข.

ืึท ื‘ื™ื™ืฉืคึผื™ืœ ืคื•ืŸ ืึทื–ืึท ื˜ืขืงืขืก ื–ืขื ืขืŸ ืกืกืœ ืกืขืจื˜ื™ืคื™ืงืึทืฅ. ืกื˜ืึธืจ ื–ื™ื™ ืื™ืŸ ื˜ืขืงืกื˜ ืคืึธืจืขื
ืื™ืŸ ืึท ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ืื™ื– ื ื™ืฉื˜ ื–ื™ื™ืขืจ ื‘ืึทืงื•ื•ืขื. ืื‘ืขืจ ืขืก ืื™ื– ื‘ืึทืงื•ื•ืขื ืฆื• ืงืจืึธื ื“ื™ ื•ื•ืขื’ ืฆื• ื–ื™ื™ ื™ืŸ ืึท ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง.

ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืžื™ืจ ื ื•ืฆืŸ ื“ื™ ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง 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

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’