แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒ“แƒ แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ แƒ˜แƒ•แƒแƒ“ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ Tarantool แƒ™แƒแƒ แƒขแƒ แƒ˜แƒฏแƒ–แƒ” (แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 1)

แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒ“แƒ แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ แƒ˜แƒ•แƒแƒ“ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ Tarantool แƒ™แƒแƒ แƒขแƒ แƒ˜แƒฏแƒ–แƒ” (แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 1)

แƒฉแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ— แƒขแƒแƒ แƒแƒœแƒขแƒฃแƒšแƒ˜แƒก แƒ•แƒแƒ–แƒœแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ’แƒแƒœแƒแƒ•แƒ˜แƒ—แƒแƒ แƒแƒ— แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒจแƒ”แƒคแƒฃแƒ—แƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜. แƒแƒฆแƒแƒ แƒแƒคแƒ”แƒ แƒ˜ แƒ“แƒแƒ แƒฉแƒ: แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒœแƒแƒ—แƒแƒ•แƒกแƒแƒ— แƒ“แƒ แƒ›แƒแƒ แƒ—แƒแƒ— แƒ”แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜. แƒแƒ  แƒ˜แƒœแƒ”แƒ แƒ•แƒ˜แƒฃแƒšแƒ, แƒฉแƒ•แƒ”แƒœ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒแƒ•แƒ˜แƒคแƒ˜แƒฅแƒ แƒ”แƒ—! แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒ™แƒ แƒ˜แƒ‘แƒ”แƒ— แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒ Tarantool Cartridge-แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ”แƒ— แƒกแƒแƒžแƒแƒกแƒฃแƒฎแƒ แƒ แƒแƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒจแƒšแƒ˜แƒก แƒžแƒแƒ™แƒ”แƒขแƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒแƒ“, แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ”แƒ‘แƒก, แƒ’แƒแƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒก แƒ›แƒแƒ— แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜, แƒ“แƒแƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒก แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก, แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก vshard-แƒก, แƒฉแƒแƒ แƒ—แƒแƒ•แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ  แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒแƒก แƒ“แƒ แƒ“แƒแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒก.

แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒแƒ? แƒ›แƒ”แƒ แƒ” แƒญแƒ แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ แƒ•แƒ”แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ˜, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒก แƒ’แƒ”แƒขแƒงแƒ•แƒ˜แƒ— แƒ“แƒ แƒ•แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ—.

แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒแƒ— แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒ—

แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ•แƒแƒจแƒฃแƒฅแƒ”แƒ‘แƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ แƒแƒšแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒœแƒแƒฌแƒ˜แƒšแƒก. แƒ—แƒฅแƒ•แƒ”แƒœ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒžแƒแƒ•แƒแƒ— แƒ›แƒ˜แƒกแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ˜แƒกแƒ แƒ“แƒ แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒ˜ แƒแƒฆแƒฌแƒ”แƒ แƒ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ˜แƒ แƒ”แƒ แƒ—แƒฎแƒ”แƒš แƒกแƒชแƒแƒ“แƒแƒ—, แƒ•แƒ˜แƒ“แƒ แƒ” แƒแƒกแƒฏแƒ”แƒ  แƒœแƒแƒฎแƒแƒ—, แƒแƒกแƒ” แƒ แƒแƒ›, แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒœแƒ•แƒแƒ—แƒแƒ•แƒกแƒแƒ— แƒžแƒแƒขแƒแƒ แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ.

Tarantool แƒ•แƒแƒ–แƒœแƒ แƒแƒฅแƒ•แƒก แƒกแƒแƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒ แƒžแƒแƒขแƒแƒ แƒ แƒ™แƒแƒ แƒขแƒ แƒ˜แƒฏแƒ˜แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒœแƒแƒฎแƒแƒ•แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒ‘แƒแƒœแƒ™แƒ˜แƒก แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒแƒ—แƒ˜ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒแƒกแƒ”แƒ•แƒ” แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก API-แƒก HTTP-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒฆแƒฌแƒ”แƒ แƒก แƒแƒ  แƒจแƒ”แƒกแƒแƒซแƒšแƒ แƒ แƒแƒšแƒก: api ะธ storageแƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒ˜แƒ”แƒœแƒ˜แƒญแƒแƒก แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ”แƒ‘แƒก.

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

แƒกแƒ˜แƒขแƒงแƒ•แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒกแƒแƒฅแƒ›แƒ”แƒ”แƒ‘แƒแƒ›แƒ“แƒ”

แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒแƒ•แƒ แƒชแƒ”แƒšแƒแƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒ  แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ  แƒ›แƒแƒœแƒฅแƒแƒœแƒแƒ–แƒ” แƒ“แƒ แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒแƒ— แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒ:

  • แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒกแƒ”แƒขแƒ˜ app-1 แƒ แƒแƒšแƒก แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒก apiแƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก แƒ แƒแƒšแƒก vshard-router. แƒแƒฅ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ”แƒ แƒ—แƒ˜ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ.
  • แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒกแƒ”แƒขแƒ˜ storage-1 แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒก แƒ แƒแƒšแƒก storage (แƒ“แƒ แƒแƒ›แƒแƒ•แƒ” แƒ“แƒ แƒแƒก vshard-storage), แƒแƒฅ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ— แƒแƒ  แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒแƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ›แƒแƒœแƒฅแƒแƒœแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ.

แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒ“แƒ แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ แƒ˜แƒ•แƒแƒ“ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ Tarantool แƒ™แƒแƒ แƒขแƒ แƒ˜แƒฏแƒ–แƒ” (แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 1)

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒก แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ•แƒแƒ’แƒ แƒแƒแƒœแƒขแƒ˜ ะธ แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ (แƒ•แƒ”แƒ แƒกแƒ˜แƒ 2.8 แƒแƒœ แƒฃแƒคแƒ แƒ แƒแƒฎแƒแƒšแƒ˜).

แƒ—แƒแƒ•แƒแƒ“ แƒ แƒแƒšแƒ˜ แƒแƒ แƒ˜แƒก Ansible Galaxy. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒกแƒแƒชแƒแƒ•แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ’แƒแƒแƒ–แƒ˜แƒแƒ แƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ›แƒ–แƒ แƒ แƒแƒšแƒ”แƒ‘แƒ˜.

แƒกแƒแƒชแƒแƒ•แƒ˜แƒก แƒ™แƒšแƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒ—:

$ git clone https://github.com/dokshina/deploy-tarantool-cartridge-app.git
$ cd deploy-tarantool-cartridge-app && git checkout 1.0.0

แƒฉแƒ•แƒ”แƒœ แƒ•แƒ–แƒ แƒ“แƒ˜แƒ— แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ  แƒ›แƒแƒœแƒฅแƒแƒœแƒ”แƒ‘แƒก:

$ vagrant up

แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ— Tarantool Cartridge-แƒ˜แƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ แƒแƒšแƒ˜:

$ ansible-galaxy install tarantool.cartridge,1.0.1

แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ แƒแƒšแƒ˜:

$ ansible-playbook -i hosts.yml playbook.yml

แƒ•แƒ”แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒ— แƒกแƒแƒ—แƒแƒ›แƒแƒจแƒ แƒฌแƒ˜แƒ’แƒœแƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒก, แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒ— http://localhost:8181/admin/cluster/dashboard แƒ“แƒ แƒ˜แƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ”แƒ— แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜แƒ—:

แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒ“แƒ แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ แƒ˜แƒ•แƒแƒ“ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ Tarantool แƒ™แƒแƒ แƒขแƒ แƒ˜แƒฏแƒ–แƒ” (แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 1)

แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒกแƒฎแƒ˜แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜. แƒ›แƒแƒ’แƒแƒ แƒ˜แƒ, แƒแƒ แƒ?

แƒแƒฎแƒšแƒ แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒแƒ แƒ™แƒ•แƒ˜แƒแƒ—, แƒ แƒแƒ’แƒแƒ  แƒ•แƒ˜แƒ›แƒฃแƒจแƒแƒแƒ— แƒแƒ›แƒ˜แƒ— แƒ“แƒ แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒแƒก แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒ.

แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— แƒ’แƒแƒ’แƒ”แƒ‘แƒแƒก

แƒ›แƒ”แƒ แƒ” แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ?

แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ— แƒแƒ แƒ˜ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ แƒ“แƒ แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒ˜แƒ— แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒกแƒแƒ—แƒแƒ›แƒแƒจแƒ แƒฌแƒ˜แƒ’แƒœแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ›แƒแƒช แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜. แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒก playbook.yml:

---
- name: Deploy my Tarantool Cartridge app
  hosts: all
  become: true
  become_user: root
  tasks:
  - name: Import Tarantool Cartridge role
    import_role:
      name: tarantool.cartridge

แƒแƒฅ แƒแƒ แƒแƒคแƒ”แƒ แƒ˜ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒแƒ  แƒฎแƒ“แƒ”แƒ‘แƒ, แƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— ansible-role-แƒก, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ”.แƒฌ tarantool.cartridge.

แƒงแƒ•แƒ”แƒšแƒ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ (แƒ™แƒ”แƒ แƒซแƒแƒ“, แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ) แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒก แƒ›แƒแƒกแƒจแƒ˜ แƒ˜แƒœแƒ•แƒ”แƒœแƒขแƒแƒ แƒ˜- แƒคแƒแƒ˜แƒšแƒ˜ hosts.yml:

---
all:
  vars:
    # common cluster variables
    cartridge_app_name: getting-started-app
    cartridge_package_path: ./getting-started-app-1.0.0-0.rpm  # path to package

    cartridge_cluster_cookie: app-default-cookie  # cluster cookie

    # common ssh options
    ansible_ssh_private_key_file: ~/.vagrant.d/insecure_private_key
    ansible_ssh_common_args: '-o IdentitiesOnly=yes -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'

  # INSTANCES
  hosts:
    storage-1:
      config:
        advertise_uri: '172.19.0.2:3301'
        http_port: 8181

    app-1:
      config:
        advertise_uri: '172.19.0.3:3301'
        http_port: 8182

    storage-1-replica:
      config:
        advertise_uri: '172.19.0.3:3302'
        http_port: 8183

  children:
    # GROUP INSTANCES BY MACHINES
    host1:
      vars:
        # first machine connection options
        ansible_host: 172.19.0.2
        ansible_user: vagrant

      hosts:  # instances to be started on the first machine
        storage-1:

    host2:
      vars:
        # second machine connection options
        ansible_host: 172.19.0.3
        ansible_user: vagrant

      hosts:  # instances to be started on the second machine
        app-1:
        storage-1-replica:

    # GROUP INSTANCES BY REPLICA SETS
    replicaset_app_1:
      vars:  # replica set configuration
        replicaset_alias: app-1
        failover_priority:
          - app-1  # leader
        roles:
          - 'api'

      hosts:  # replica set instances
        app-1:

    replicaset_storage_1:
      vars:  # replica set configuration
        replicaset_alias: storage-1
        weight: 3
        failover_priority:
          - storage-1  # leader
          - storage-1-replica
        roles:
          - 'storage'

      hosts:   # replica set instances
        storage-1:
        storage-1-replica:

แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ แƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒแƒ แƒ˜แƒก แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒแƒ— แƒ แƒแƒ’แƒแƒ  แƒ•แƒ›แƒแƒ แƒ—แƒแƒ— แƒ”แƒ’แƒ–แƒ”แƒ›แƒžแƒšแƒแƒ แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒกแƒขแƒ”แƒ‘แƒ˜ แƒแƒ› แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒ—. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ— แƒ›แƒแƒก แƒแƒฎแƒแƒš แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒก. แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒแƒ  แƒ“แƒแƒ˜แƒ‘แƒœแƒ”แƒ— แƒกแƒแƒ“ แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ“แƒแƒฎแƒ”แƒ“แƒแƒ— แƒแƒ› แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒก, hosts.updated.yml, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒก แƒกแƒแƒชแƒแƒ•แƒจแƒ˜.

แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ˜แƒก แƒ›แƒ”แƒœแƒ”แƒฏแƒ›แƒ”แƒœแƒขแƒ˜

Ansible-แƒ˜แƒก แƒ—แƒ•แƒแƒšแƒกแƒแƒ–แƒ แƒ˜แƒกแƒ˜แƒ—, แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ แƒแƒ แƒ˜แƒก แƒฐแƒแƒกแƒขแƒ˜ (แƒแƒ  แƒฃแƒœแƒ“แƒ แƒแƒ’แƒ•แƒ”แƒ แƒ˜แƒแƒก แƒ แƒ™แƒ˜แƒœแƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ—แƒแƒœ), แƒ”.แƒ˜. แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ™แƒ•แƒแƒœแƒซแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช Ansible แƒ›แƒแƒ แƒ—แƒแƒ•แƒก. แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒฐแƒแƒกแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ›แƒ˜แƒ•แƒฃแƒ—แƒ˜แƒ—แƒแƒ— แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ (แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ ansible_host ะธ ansible_user), แƒ˜แƒกแƒ”แƒ•แƒ” แƒ แƒแƒ’แƒแƒ แƒช แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ. แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ”แƒ‘แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒจแƒ˜ hosts.

แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ storage-1:

all:
  vars:
    ...

  # INSTANCES
  hosts:
    storage-1:
      config:
        advertise_uri: '172.19.0.2:3301'
        http_port: 8181

  ...

แƒชแƒ•แƒšแƒแƒ“แƒจแƒ˜ config แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒแƒ–แƒฃแƒกแƒขแƒ”แƒ— แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ - advertise URI ะธ HTTP port.
แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ app-1 ะธ storage-1-replica.

Ansible-แƒก แƒฃแƒœแƒ“แƒ แƒ•แƒฃแƒ—แƒฎแƒ แƒแƒ— แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒšแƒแƒ’แƒ˜แƒ™แƒฃแƒ แƒ˜แƒ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฏแƒ’แƒฃแƒคแƒ”แƒ‘แƒ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฏแƒ’แƒฃแƒคแƒ”แƒ‘แƒแƒ“. แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒฏแƒ’แƒฃแƒคแƒ”แƒ‘แƒแƒ“. host1 ะธ host2แƒ“แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒฏแƒ’แƒฃแƒคแƒจแƒ˜ แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒจแƒ˜ vars แƒฆแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ ansible_host ะธ ansible_user แƒ”แƒ แƒ—แƒ˜ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ“แƒ แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒจแƒ˜ hosts - แƒ›แƒแƒกแƒžแƒ˜แƒœแƒซแƒšแƒ”แƒ‘แƒ˜ (แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒ แƒ˜แƒแƒœ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ”แƒ‘แƒ˜), แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒ“แƒ˜แƒแƒœ แƒแƒ› แƒฏแƒ’แƒฃแƒคแƒจแƒ˜:

all:
  vars:
    ...
  hosts:
    ...
  children:
    # GROUP INSTANCES BY MACHINES
    host1:
      vars:
        # first machine connection options
        ansible_host: 172.19.0.2
        ansible_user: vagrant
       hosts:  # instances to be started on the first machine
        storage-1:

     host2:
      vars:
        # second machine connection options
        ansible_host: 172.19.0.3
        ansible_user: vagrant
       hosts:  # instances to be started on the second machine
        app-1:
        storage-1-replica:

แƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— แƒจแƒ”แƒชแƒ•แƒšแƒแƒก hosts.yml. แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒ แƒ˜ โ€‹โ€‹แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ, storage-2-replica แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ  แƒ›แƒแƒœแƒฅแƒแƒœแƒแƒ–แƒ” แƒ“แƒ storage-2 แƒ›แƒ”แƒแƒ แƒ”แƒ–แƒ”:

all:
  vars:
    ...

  # INSTANCES
  hosts:
    ...
    storage-2:  # <==
      config:
        advertise_uri: '172.19.0.3:3303'
        http_port: 8184

    storage-2-replica:  # <==
      config:
        advertise_uri: '172.19.0.2:3302'
        http_port: 8185

  children:
    # GROUP INSTANCES BY MACHINES
    host1:
      vars:
        ...
      hosts:  # instances to be started on the first machine
        storage-1:
        storage-2-replica:  # <==

    host2:
      vars:
        ...
      hosts:  # instances to be started on the second machine
        app-1:
        storage-1-replica:
        storage-2:  # <==
  ...

แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— ansible แƒกแƒแƒ—แƒแƒ›แƒแƒจแƒ แƒฌแƒ˜แƒ’แƒœแƒ˜:

$ ansible-playbook -i hosts.yml 
                   --limit storage-2,storage-2-replica 
                   playbook.yml

แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ แƒ›แƒ˜แƒแƒฅแƒชแƒ˜แƒ”แƒ— แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒก --limit. แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ Ansible แƒขแƒ”แƒ แƒ›แƒ˜แƒœแƒ˜แƒ— แƒแƒ แƒ˜แƒก แƒฐแƒแƒกแƒขแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒชแƒแƒšแƒกแƒแƒฎแƒแƒ“ แƒ’แƒแƒœแƒ•แƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ— แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒแƒ—แƒแƒ›แƒแƒจแƒ แƒฌแƒ˜แƒ’แƒœแƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก.

แƒ•แƒ”แƒ‘ UI-แƒ–แƒ” แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ http://localhost:8181/admin/cluster/dashboard แƒ“แƒ แƒ“แƒแƒแƒ™แƒ•แƒ˜แƒ แƒ“แƒ˜แƒ— แƒฉแƒ•แƒ”แƒœแƒก แƒแƒฎแƒแƒš แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒก:

แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒ“แƒ แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ แƒ˜แƒ•แƒแƒ“ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ Tarantool แƒ™แƒแƒ แƒขแƒ แƒ˜แƒฏแƒ–แƒ” (แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 1)

แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ“แƒแƒ•แƒ˜แƒกแƒ•แƒ”แƒœแƒ”แƒ‘แƒ— แƒ“แƒ แƒ“แƒแƒ•แƒ”แƒฃแƒคแƒšแƒ”แƒ‘แƒ˜แƒ— แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒก.

แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ

แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒแƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒกแƒ”แƒขแƒจแƒ˜ storage-2. แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒแƒฎแƒแƒšแƒ˜ แƒฏแƒ’แƒฃแƒคแƒ˜ replicaset_storage_2 แƒ“แƒ แƒแƒฆแƒฌแƒ”แƒ แƒก แƒ›แƒ˜แƒก แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒจแƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒกแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒแƒœแƒแƒšแƒแƒ’แƒ˜แƒ˜แƒ— replicaset_storage_1. แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒจแƒ˜ hosts แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ— แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ“แƒ˜แƒก แƒแƒ› แƒฏแƒ’แƒฃแƒคแƒจแƒ˜ (แƒแƒœแƒฃ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜):

---
all:
  vars:
    ...
  hosts:
    ...
  children:
    ...
    # GROUP INSTANCES BY REPLICA SETS
    ...
    replicaset_storage_2:  # <==
      vars:  # replicaset configuration
        replicaset_alias: storage-2
        weight: 2
        failover_priority:
          - storage-2
          - storage-2-replica
        roles:
          - 'storage'

      hosts:   # replicaset instances
        storage-2:
        storage-2-replica:

แƒ›แƒแƒ“แƒ˜แƒ— แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒแƒ— แƒกแƒแƒ—แƒแƒ›แƒแƒจแƒ แƒฌแƒ˜แƒ’แƒœแƒ˜:

$ ansible-playbook -i hosts.yml 
                   --limit replicaset_storage_2 
                   --tags cartridge-replicasets 
                   playbook.yml

แƒ—แƒ˜แƒ—แƒ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ --limit แƒฉแƒ•แƒ”แƒœ แƒแƒ›แƒฏแƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒ•แƒ”แƒชแƒ˜แƒ— แƒฏแƒ’แƒฃแƒคแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ”แƒกแƒแƒ‘แƒแƒ›แƒ”แƒ‘แƒ แƒฉแƒ•แƒ”แƒœแƒก แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒกแƒขแƒก.

แƒ’แƒแƒœแƒ˜แƒฎแƒ˜แƒšแƒ”แƒ— แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ tags.

แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ แƒแƒšแƒ˜ แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒฃแƒšแƒแƒ“ แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒฆแƒ˜แƒœแƒ˜แƒจแƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒขแƒ”แƒ’แƒ”แƒ‘แƒ˜แƒ—:

  • cartridge-instances: แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ (แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ, แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜ แƒฌแƒ”แƒ•แƒ แƒแƒ‘แƒแƒกแƒ—แƒแƒœ);
  • cartridge-replicasets: แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒ˜แƒก แƒ›แƒ”แƒœแƒ”แƒฏแƒ›แƒ”แƒœแƒขแƒ˜ (แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ แƒ“แƒ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒ“แƒแƒœ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ•แƒ˜ แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ (แƒ’แƒแƒ›แƒแƒ“แƒ”แƒ•แƒœแƒ);
  • cartridge-config: แƒ›แƒแƒ แƒ—แƒ”แƒ— แƒกแƒฎแƒ•แƒ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ (vshard bootstrapping, แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ failover แƒ แƒ”แƒŸแƒ˜แƒ›แƒ˜, แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ).

แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒชแƒแƒšแƒกแƒแƒฎแƒแƒ“ แƒ’แƒแƒœแƒ•แƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ— แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒก แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ แƒแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒ”แƒ‘แƒก แƒ“แƒแƒœแƒแƒ แƒฉแƒ”แƒœ แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ”แƒ‘แƒก. แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒ•แƒ˜แƒ›แƒฃแƒจแƒแƒแƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒ˜แƒ—, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ“แƒแƒ•แƒแƒ–แƒฃแƒกแƒขแƒ”แƒ— cartridge-replicasets.

แƒจแƒ”แƒ•แƒแƒคแƒแƒกแƒแƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒซแƒแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜. แƒแƒฎแƒแƒšแƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒกแƒ˜แƒก แƒžแƒแƒ•แƒœแƒ http://localhost:8181/admin/cluster/dashboard.

แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒ“แƒ แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ แƒ˜แƒ•แƒแƒ“ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ Tarantool แƒ™แƒแƒ แƒขแƒ แƒ˜แƒฏแƒ–แƒ” (แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 1)

Hooray!

แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ˜ แƒฉแƒแƒแƒขแƒแƒ แƒ”แƒ— แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒฎแƒ”แƒšแƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒ“แƒ แƒœแƒแƒฎแƒ”แƒ—, แƒ แƒแƒ’แƒแƒ  แƒ˜แƒชแƒ•แƒšแƒ”แƒ‘แƒ แƒ™แƒแƒกแƒ”แƒขแƒฃแƒ แƒ˜ แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒ. แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒกแƒชแƒแƒ“แƒแƒ— แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒกแƒชแƒ”แƒœแƒแƒ แƒ˜, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ›แƒแƒซแƒ แƒแƒ•แƒ˜ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ แƒแƒœ แƒ’แƒแƒ–แƒ แƒ“แƒ˜แƒก memtx_memory. แƒ แƒแƒšแƒ˜ แƒจแƒ”แƒ”แƒชแƒ“แƒ”แƒ‘แƒ แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒแƒก แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”, แƒ แƒแƒ—แƒ แƒจแƒ”แƒแƒ›แƒชแƒ˜แƒ แƒแƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒœแƒแƒชแƒฎแƒแƒ“แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒ.

แƒแƒ  แƒ“แƒแƒ’แƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒ”แƒ— แƒกแƒ˜แƒ แƒ‘แƒ˜แƒšแƒ˜ vagrant haltแƒ แƒแƒ—แƒ แƒจแƒ”แƒแƒฉแƒ”แƒ แƒแƒœ VM-แƒ”แƒ‘แƒ˜, แƒ แƒแƒชแƒ แƒ“แƒแƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘ แƒ›แƒแƒ—.

แƒ แƒ แƒแƒ แƒ˜แƒก แƒ™แƒแƒžแƒแƒขแƒ˜แƒก แƒฅแƒ•แƒ”แƒจ?

แƒแƒฅ แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒก แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘ แƒ˜แƒ›แƒแƒ–แƒ”, แƒ แƒแƒช แƒ›แƒแƒฎแƒ“แƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก แƒ’แƒแƒœแƒ˜แƒ•แƒ แƒฃแƒšแƒ˜ แƒ แƒแƒšแƒ˜แƒก แƒฅแƒ•แƒ”แƒจ.

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ™แƒแƒ แƒขแƒ แƒ˜แƒฏแƒ˜แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒแƒก แƒ”แƒขแƒแƒžแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“.

แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ

แƒฏแƒ”แƒ  แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒแƒฌแƒแƒ“แƒแƒ— แƒžแƒแƒ™แƒ”แƒขแƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒก แƒ“แƒ แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒแƒ— แƒ˜แƒ’แƒ˜. แƒแƒฎแƒšแƒ แƒ แƒแƒšแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก RPM แƒ“แƒ DEB แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒ—.

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ”แƒ‘แƒก. แƒแƒฅ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ: แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ แƒชแƒแƒšแƒ™แƒ”แƒ systemd- แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜. แƒ›แƒ” แƒ•แƒกแƒแƒฃแƒ‘แƒ แƒแƒ‘ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ–แƒ”:

$ systemctl start myapp@storage-1

แƒ”แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒก storage-1 apps myapp. แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ แƒ›แƒแƒซแƒ”แƒ‘แƒœแƒ˜แƒก แƒ›แƒแƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ ะฒ /etc/tarantool/conf.d/. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒก แƒŸแƒฃแƒ แƒœแƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒฎแƒ•แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— journald.

แƒ”แƒ แƒ—แƒ”แƒฃแƒšแƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜ /etc/systemd/system/[email protected] แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒ˜แƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒ—.

Ansible-แƒก แƒแƒฅแƒ•แƒก แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜ แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒฉแƒ•แƒ”แƒœ แƒแƒฅ แƒแƒฎแƒแƒšแƒ˜ แƒแƒ แƒแƒคแƒ”แƒ แƒ˜ แƒ’แƒแƒ›แƒแƒ’แƒ•แƒ˜แƒ’แƒแƒœแƒ˜แƒ.

แƒ™แƒแƒกแƒ”แƒขแƒฃแƒ แƒ˜ แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ

แƒ“แƒ แƒแƒฅ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ. แƒ“แƒแƒ›แƒ”แƒ—แƒแƒœแƒฎแƒ›แƒ”แƒ‘แƒ˜แƒ—, แƒฃแƒชแƒœแƒแƒฃแƒ แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒแƒ“แƒ แƒจแƒ”แƒฌแƒฃแƒฎแƒ”แƒ‘แƒ แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒชแƒแƒšแƒกแƒแƒฎแƒ แƒ แƒแƒšแƒ˜แƒ— systemd-แƒ›แƒแƒ›แƒกแƒแƒฎแƒฃแƒ แƒ”แƒ‘แƒ”แƒ‘แƒ˜.

แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜ แƒฎแƒ”แƒšแƒ˜แƒ—:

  • แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜: แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ˜แƒ— Web UI แƒ“แƒ แƒ“แƒแƒแƒฌแƒ™แƒแƒžแƒฃแƒœแƒ”แƒ— แƒฆแƒ˜แƒšแƒแƒ™แƒ”แƒ‘แƒ–แƒ”. แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ˜แƒก แƒ”แƒ แƒ—แƒฏแƒ”แƒ แƒแƒ“แƒ˜ แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ”แƒก แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒจแƒ”แƒกแƒแƒคแƒ”แƒ แƒ˜แƒกแƒ˜แƒ.
  • แƒ›แƒ”แƒแƒ แƒ” แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜: แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— GraphQl API. แƒแƒฅ แƒฃแƒ™แƒ•แƒ” แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ แƒแƒฆแƒแƒชแƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ“แƒแƒฌแƒ”แƒ แƒแƒ— แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒžแƒ˜แƒ—แƒแƒœแƒจแƒ˜.
  • แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ (แƒกแƒฃแƒšแƒ˜แƒ— แƒซแƒšแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก): แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒ— แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”, แƒ“แƒแƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ˜แƒ— แƒ”แƒ แƒ—-แƒ”แƒ แƒ— แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒแƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— tarantoolctl connect แƒ“แƒ แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒ”แƒ— แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ›แƒแƒœแƒ˜แƒžแƒฃแƒšแƒแƒชแƒ˜แƒ แƒšแƒฃแƒแƒก แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒ— cartridge.

แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒ›แƒแƒ’แƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒแƒ แƒ”แƒก, แƒ—แƒฅแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒก แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ แƒ—แƒฃแƒšแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜.

Ansible แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ“แƒแƒฌแƒ”แƒ แƒแƒ— แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ˜แƒ’แƒ˜ แƒ แƒแƒšแƒ”แƒ‘แƒจแƒ˜. แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ แƒแƒšแƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒแƒกแƒ”แƒ— แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ›แƒแƒ แƒ—แƒแƒ•แƒแƒ“.

แฒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก? แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒฆแƒฌแƒ”แƒ แƒ— แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒš แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒแƒก แƒ“แƒ”แƒ™แƒšแƒแƒ แƒแƒชแƒ˜แƒฃแƒš แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒจแƒ˜ แƒ“แƒ แƒ แƒแƒšแƒ˜ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒ›แƒแƒ“แƒฃแƒšแƒก แƒแƒซแƒšแƒ”แƒ•แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—. แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒแƒก แƒ“แƒ แƒแƒ“แƒแƒ แƒ”แƒ‘แƒก แƒ›แƒแƒก แƒจแƒ”แƒงแƒ•แƒแƒœแƒแƒกแƒ—แƒแƒœ. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒ™แƒแƒ“แƒ˜ แƒ’แƒแƒ“แƒ˜แƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ˜แƒก แƒกแƒแƒ™แƒ”แƒขแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒก แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒš แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒแƒ›แƒ“แƒ” แƒ›แƒ˜แƒแƒฅแƒ•แƒก.

แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜

แƒ“แƒฆแƒ”แƒก แƒฉแƒ•แƒ”แƒœ แƒ•แƒฃแƒ—แƒฎแƒแƒ แƒ˜แƒ— แƒ“แƒ แƒ•แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒœแƒแƒ—แƒแƒ•แƒกแƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ Tarantool Cartridge-แƒ–แƒ” แƒ“แƒ แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒแƒ— แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒ. แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ— Ansible, แƒ›แƒซแƒšแƒแƒ•แƒ แƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ“แƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒ“แƒแƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒแƒ— แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒฃแƒšแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ˜ (แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ”แƒ‘แƒ˜).

แƒ–แƒ”แƒ›แƒแƒ—, แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒ”แƒ— แƒ™แƒแƒกแƒ”แƒขแƒฃแƒ แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒก แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ’แƒ–แƒ Ansible-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ แƒแƒ’แƒแƒ แƒช แƒ™แƒ˜ แƒ’แƒแƒ˜แƒ’แƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒ›แƒ–แƒแƒ“ แƒฎแƒแƒ แƒ— แƒฌแƒ˜แƒœแƒกแƒ•แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒ แƒกแƒแƒ—แƒแƒ›แƒแƒจแƒ แƒฌแƒ˜แƒ’แƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒ”แƒ แƒแƒ“. แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ แƒฃแƒคแƒ แƒ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ group_vars ะธ host_vars.

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

แƒ—แƒฃ แƒ แƒแƒ›แƒ” แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก, แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ˜แƒ— แƒ˜แƒœแƒคแƒแƒ แƒ›แƒ˜แƒ แƒ”แƒ‘แƒ แƒฉแƒ•แƒ”แƒœ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒฉแƒ•แƒ”แƒœ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ“แƒแƒ•แƒแƒœแƒ’แƒ แƒ”แƒ•แƒ—!

แƒฌแƒงแƒแƒ แƒ: www.habr.com

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