Ansible-แƒจแƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒกแƒแƒ“แƒ›แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ

ansible devops codestyle

แƒฐแƒ”แƒ˜! แฒ›แƒ” แƒ›แƒฅแƒ•แƒ˜แƒ แƒ“แƒ”แƒœแƒ˜แƒก แƒ™แƒแƒšแƒ˜แƒฃแƒŸแƒœแƒ˜ แƒ•แƒ›แƒฃแƒจแƒแƒแƒ‘ แƒ˜แƒœแƒŸแƒ˜แƒœแƒ แƒแƒ“ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒจแƒ˜. แƒงแƒแƒ•แƒ”แƒšแƒ“แƒฆแƒ”, แƒแƒฎแƒแƒšแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ•แƒ แƒชแƒ”แƒšแƒ“แƒ”แƒ‘แƒ แƒแƒกแƒแƒ‘แƒ˜แƒ— แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”. แƒ“แƒ แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒ›แƒ” แƒ•แƒ˜แƒ–แƒ˜แƒแƒ แƒ”แƒ‘ แƒฉแƒ”แƒ›แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒแƒก แƒแƒ› แƒ›แƒ˜แƒ–แƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก 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

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

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

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

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, แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก 2 แƒฏแƒ’แƒฃแƒคแƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— Java แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒ—.

Ansible-แƒจแƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒกแƒแƒ“แƒ›แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ

แƒฌแƒแƒ แƒ›แƒแƒ•แƒ˜แƒ“แƒ’แƒ˜แƒœแƒแƒ—, แƒ แƒแƒ’แƒแƒ แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒกแƒแƒ—แƒแƒ›แƒแƒจแƒ แƒฌแƒ˜แƒ’แƒœแƒ˜ แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜:

- hosts: myapi
  roles:
    - api

- hosts: bbauth
  roles:
    - auth

- hosts: ghauth
  roles:
    - auth

แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒกแƒแƒ›แƒ˜ แƒฏแƒ’แƒฃแƒคแƒ˜ แƒกแƒแƒ—แƒแƒ›แƒแƒจแƒ แƒฌแƒ˜แƒ’แƒœแƒจแƒ˜, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒ แƒ”แƒ™แƒแƒ›แƒ”แƒœแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒฏแƒ’แƒฃแƒคแƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ group_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

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ