рдЯрд╛рд░рдирдЯреВрд▓ рдХрд╛рд░рддреВрд╕ (рднрд╛рдЧ 1) рдкрд░ рдЖрд╡реЗрджрдиреЛрдВ рдХреА рдЖрд╕рд╛рди рдФрд░ рд░рдЦреА рдЧрдИ рддреИрдирд╛рддреА


рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЯрд╛рд░рдирдЯреВрд▓ рдХрд╛рд░рддреВрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереА, рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рддрд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреИрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрди рд╕рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЗрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рд╕реАрдЦрдирд╛ рд╣реИред рдЪрд┐рдВрддрд╛ рдордд рдХрд░реЛ, рд╣рдордиреЗ рд╕рдм рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рд╣реИ! рд╣рдордиреЗ рдЯрд╛рд░реЗрдВрдЯреВрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдХреЛ рдПрдХ рд╕рд╛рде рд▓рд╛рдпрд╛ рдФрд░ рдПрдХ рдРрд╕реА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рдИ рдЬреЛ рд╕рд░реНрд╡рд░ рдореЗрдВ рдкреИрдХреЗрдЬ рдХреЛ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддреА рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЬреЛрдбрд╝рддреА рд╣реИ, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреА рд╣реИ, vshard рд╢реБрд░реВ рдХрд░рддреА рд╣реИ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддреА рд╣реИ рдФрд░ рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкреИрдЪ рдХрд░рддреА рд╣реИред


рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ? рдлрд┐рд░ рдореИрдВ рдХрдЯреМрддреА рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВ, рд╣рдо рд╕рдм рдХреБрдЫ рдмрддрд╛рдПрдВрдЧреЗ рдФрд░ рджрд┐рдЦрд╛рдПрдВрдЧреЗред


рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред


рд╣рдо рдЕрдкрдиреА рднреВрдорд┐рдХрд╛ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдХреЗрд╡рд▓ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдЖрдк рд╣рдореЗрд╢рд╛ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЗрд╕рдХреА рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдкреВрд░рд╛ рд╡рд┐рд╡рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕реМ рдмрд╛рд░ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рдмрд╛рд░ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред


рдЯрд╛рд░реЗрдВрдЯреВрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИ рдЬреЛ рдмреИрдВрдХ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдФрд░ рдЙрдирдХреЗ рдЦрд╛рддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреЛ рд╕рдВрднрд╛рд╡рд┐рдд рднреВрдорд┐рдХрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ: api рдФрд░ storage , рдЬрд┐рд╕реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рдЦреБрдж рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд╣рддрд╛ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд▓ рд░рд╣реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдмрд╛рдХреА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рдирд╛, рд╕реЗрд╡рд╛рдПрдВ рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ред рд▓реЗрдХрд┐рди рд╣рдо рдпрд╣ рд╕рдм рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдЕрдиреНрд╕рд┐рдмрд▓ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд░реЗрдЧрд╛ред


рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк OS X рдкрд░ рдЕрдкрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдкреИрдХ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ Centos рдпрд╛ рдбреЗрдмрд┐рдпрди рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдкреИрдХреЗрдЬ рдореЗрдВ OS X рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪрдЯреНрдЯрд╛рдиреЗрдВ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрдВрдЧреАред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдпрд╣ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рд▓рдХреНрд╖реНрдп рдкреНрд░рдгрд╛рд▓реА рдкрд░ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХрд░реЗрдВред


рд╢рдмреНрджреЛрдВ рд╕реЗ рдХрд░реНрдореЛрдВ рддрдХ


рддреЛ, рдЖрдЗрдП рджреЛ рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ рдкрд░ рдЕрдкрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ рдФрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЯреЛрдкреЛрд▓реЙрдЬреА рд╕реЗрдЯ рдХрд░реЗрдВ:


  • рдкреНрд░рддрд┐рдХреГрддрд┐ app-1 рдПрдкрд┐ рднреВрдорд┐рдХрд╛ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ vshard-router рднреВрдорд┐рдХрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рд╣реЛрдЧрд╛ред
  • storage-1 vshard-storage storage рднреВрдорд┐рдХрд╛ (рдФрд░ рдЙрд╕реА рд╕рдордп vshard-storage ) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдорд╢реАрдиреЛрдВ рд╕реЗ рджреЛ рдЙрджрд╛рд╣рд░рдг рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред


рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ Vagrant рдФрд░ Ansible (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 

рдЯрд╛рд░рдирдЯреВрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рдЕрдиреНрд╕рд┐рдмрд▓ рднреВрдорд┐рдХрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:


 $ ansible-galaxy install tarantool.cartridge,1.0.1 

рд╕реНрдерд╛рдкрд┐рдд рднреВрдорд┐рдХрд╛ рдЪрд▓рд╛рдПрдБ:


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

рд╣рдо рдкреНрд▓реЗрдмреБрдХ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, http: // localhost: 8181 / admin / рдХреНрд▓рд╕реНрдЯрд░ / рдбреИрд╢рдмреЛрд░реНрдб рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ:



рдЖрдк рдбреЗрдЯрд╛ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдХреВрд▓, рд╣реИ рдирд╛?


рдЕрдм рдЖрдЗрдП рдЬрд╛рдиреЗрдВ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдЙрд╕реА рд╕рдордп рдЯреЛрдкреЛрд▓реЙрдЬреА рдореЗрдВ рдПрдХ рдФрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗрдЯ рдХрд░реЗрдВред


рд╕рдордЭрдирд╛ рд╢реБрд░реВ рдХрд░реЛ


рддреЛ рдХреНрдпрд╛ рд╣реБрдЖ?


рд╣рдордиреЗ рджреЛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЗрдВ рдЙрдард╛рдИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рдЕрдЪреВрдХ рдкреНрд▓реЗрдмреБрдХ рд▓реЙрдиреНрдЪ рдХреАред рдЖрдЗрдП 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 

рдпрд╣рд╛рдВ рдХреБрдЫ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд╣рдо 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_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 advertise URI ред
рдиреАрдЪреЗ app-1 рдФрд░ storage-1-replica рдЙрджрд╛рд╣рд░рдг рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВред


рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП Ansible рдХрдиреЗрдХреНрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдЖрднрд╛рд╕реА рдорд╢реАрди рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╕рдореВрд╣ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рддрд░реНрдХрд╕рдВрдЧрдд рд▓рдЧрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ host1 рдФрд░ host2 рд╕рдореВрд╣ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣ рдореЗрдВ ansible_host рдЦрдВрдб рдореЗрдВ ansible_host рдФрд░ ansible_user рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рдПрдХ vars рд▓рд┐рдП рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ 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-playbook -i hosts.yml \ --limit storage-2,storage-2-replica \ playbook.yml 

- --limit рд╡рд┐рдХрд▓реНрдк рдкрд░ рдзреНрдпрд╛рди --limit ред рдЪреВрдВрдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг Ansible рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рдореЗрдЬрдмрд╛рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрдХреЗрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд▓реЗрдмреБрдХ рдЦреЗрд▓рддреЗ рд╕рдордп рдХрд┐рди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред


рдлрд┐рд░ рд╕реЗ, рд╡реЗрдм рдпреВрдЖрдИ рдкрд░ рдЬрд╛рдПрдВ http: // localhost: 8181 / рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ / рдХреНрд▓рд╕реНрдЯрд░ / рдбреИрд╢рдмреЛрд░реНрдб рдФрд░ рд╣рдорд╛рд░реЗ рдирдП рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ:



рдЬреЛ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЙрд╕ рдкрд░ рд╣рдо рд╡рд╛рд╕ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреЗ рдкреНрд░рдмрдВрдзрди рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░реЗрдВрдЧреЗред


рдЯреЛрдкреЛрд▓реЙрдЬреА рдкреНрд░рдмрдВрдзрди


рд╣рдорд╛рд░реЗ рдирдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ 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 

рдЗрд╕ рдмрд╛рд░, рд╣рдордиреЗ рдЙрд╕ рд╕рдореВрд╣ рдХрд╛ рдирд╛рдо рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдпрд╛, рдЬреЛ рд╣рдорд╛рд░реЗ рдкреНрд░рддрд┐рдХреГрдд рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ - рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ред


tags рд╡рд┐рдХрд▓реНрдк рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред


рд╣рдорд╛рд░реА рднреВрдорд┐рдХрд╛ рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рддреА рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯреИрдЧ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


  • cartridge-instances : cartridge-instances рдкреНрд░рдмрдВрдзрди (рд╕реЗрдЯрдЕрдк, рд╕рджрд╕реНрдпрддрд╛ рд╕реЗ рдХрдиреЗрдХреНрд╢рди);
  • cartridge-replicasets : рдЯреЛрдкреЛрд▓реЙрдЬреА рдкреНрд░рдмрдВрдзрди (рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдФрд░ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рдирд┐рд╖реНрдХрд╛рд╕рди (рдирд┐рд╖реНрдХрд╛рд╕рди));
  • cartridge-config рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди: рд╢реЗрд╖ рдХреНрд▓рд╕реНрдЯрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди (рдмреЗрд╕рд╣рд╛рд░реНрдб рдмреВрдЯрд╕реНрдЯреНрд░реИрдкрд┐рдВрдЧ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдлреЗрд▓рдУрд╡рд░ рдореЛрдб, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди)ред

рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХрд┐рд╕ рдХрд╛рд░реНрдп рдХреЛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рднреВрдорд┐рдХрд╛ рд╢реЗрд╖ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдЫреЛрдбрд╝ рджреЗрдЧреАред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ cartridge-replicasets рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ред


рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВред Http: // localhost: 8181 / admin / рдХреНрд▓рд╕реНрдЯрд░ / рдбреИрд╢рдмреЛрд░реНрдб рдкрд░ рдирдИ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗрдЯ рдХрд░реЗрдВред



рд╣реБрд░реНрд░реЗ!


рдЙрджрд╛рд╣рд░рдгреЛрдВ рдФрд░ рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреИрд╕реЗ рдмрджрд▓рддреА рд╣реИред рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдЪрд╛рд▓рди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реЛрд▓рд┐рдВрдЧ рдЕрдкрдбреЗрдЯ рдпрд╛ memtx_memory рдмрдврд╝рд╛ memtx_memory ред рднреВрдорд┐рдХрд╛ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд┐рдП рдмрд┐рдирд╛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧреАред


рдЬрдм рдЖрдк рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрдВ рддреЛ vagrant halt рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП vagrant halt рд╢реБрд░реВ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред


рдФрд░ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рдХреНрдпрд╛ рд╣реИ?


рдпрд╣рд╛рдБ рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рджреМрд░рд╛рди рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдХреЗ рддрд╣рдд рдХреНрдпрд╛ рд╣реБрдЖред


рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рдЪрд░рдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред


рдПрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдФрд░ рдЙрджрд╛рд╣рд░рдг рд╢реБрд░реВ рдХрд░рдирд╛


рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдкреИрдХреЗрдЬ рдХреЛ рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪрд╛рдиреЗ рдФрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдм рднреВрдорд┐рдХрд╛ RPM рдФрд░ DEB рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред


рдЕрдЧрд▓рд╛, рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рдЪрд▓рд╛рдПрдБред рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдЕрд▓рдЧ systemd рд╕реЗрд╡рд╛ рд╣реИред рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдмрддрд╛рддрд╛ рд╣реВрдВ:


 $ systemctl start myapp@storage-1 

рдпрд╣ рдХрдорд╛рдВрдб myapp рдХреЗ storage-1 рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧрд╛ред рдЪрд▓ рд░рд╣рд╛ рдЙрджрд╛рд╣рд░рдг /etc/tarantool/conf.d/ рдореЗрдВ рдЗрд╕рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ /etc/tarantool/conf.d/ ред journald рдХреЛ journald рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


Systemd рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдпреВрдирд┐рдЯ рдлрд╝рд╛рдЗрд▓ /etc/systemd/system/myapp@.sevice рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рджреА рдЬрд╛рдПрдЧреАред


Ansible рдореЗрдВ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕рд┐рд╕реНрдЯрдореИрдб рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ, рдпрд╣рд╛рдВ рд╣рдордиреЗ рдХреБрдЫ рднреА рдирдпрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред


рдХреНрд▓рд╕реНрдЯрд░ рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ


рдФрд░ рдпрд╣рд╛рдБ рд╕реЗ рдорд╕реНрддреА рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред рд╕рд╣рдордд systemd рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ systemd рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ systemd рднреВрдорд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдкрд░реЗрд╢рд╛рди рдХрд░рдирд╛ рдЕрдЬреАрдм рд╣реЛрдЧрд╛ред


рдЖрдк рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


  • рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк: рд╡реЗрдм рдпреВрдЖрдИ рдЦреЛрд▓реЗрдВ рдФрд░ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдПрдХ рдмрд╛рд░ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рд╣реИред
  • рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк: рдЖрдк рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреЗрдВред
  • рддреАрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк (рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЖрддреНрдорд╛ рдореЗрдВ рдордЬрдмреВрдд рд╣реИрдВ): рд╣рдо рд╕рд░реНрд╡рд░ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, tarantoolctl connect рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ tarantoolctl connect рдФрд░ рд▓реБрдЖ cartridge рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХрд░рддреЗ рд╣реИрдВред

рд╣рдорд╛рд░реЗ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рдареАрдХ рдпрд╣реА рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд╛ рд╕рдмрд╕реЗ рдХрдард┐рди рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред


Ansible рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓рд┐рдЦрдиреЗ рдФрд░ рдЙрд╕реЗ рдПрдХ рднреВрдорд┐рдХрд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдорд╛рд░реА рднреВрдорд┐рдХрд╛ рд╡рд┐рднрд┐рдиреНрди рдХреНрд▓рд╕реНрдЯрд░ рдШрдЯрдХреЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред


рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдЖрдк рдШреЛрд╖рдгрд╛рддреНрдордХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рдХреА рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рднреВрдорд┐рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЗрдирдкреБрдЯ рдХреЛ рдЗрд╕рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЕрдиреБрднрд╛рдЧ рдХреЛ рдЦрд┐рд▓рд╛рддреА рд╣реИред рдореЙрдбреНрдпреВрд▓ рдХреНрд▓рд╕реНрдЯрд░ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬреЛ рд╕рд╛рдордиреЗ рдЖрдпрд╛ рдЙрд╕рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░, рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕реЙрдХреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдХреЛрдб рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓рд╛рддрд╛ рд╣реИред


рдкрд░рд┐рдгрд╛рдо


рдЖрдЬ рд╣рдордиреЗ рдмрд╛рдд рдХреА рдФрд░ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдЯрд╛рд░реЗрдВрдЯреВрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рдкрд░ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рдХреИрд╕реЗ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЯреЛрдкреЛрд▓реЙрдЬреА рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЬрд╛рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ Ansible рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рдЬреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдПрдХ рд╕рд╛рде рдХрдИ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдиреЛрдбреНрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпреЗ рдХреНрд▓рд╕реНрдЯрд░ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ)ред


рдКрдкрд░, рд╣рдордиреЗ рдХрдИ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдВрд╕реЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдкрдХреЛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ, рддреЛ рдкреНрд▓реЗрдмреБрдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ рд╕реАрдЦреЗрдВред рдЖрдкрдХреЛ group_vars рдФрд░ host_vars рд╕рд╛рде рдЯреЛрдкреЛрд▓реЙрдЬреА рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред


рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рдЯреЛрдкреЛрд▓реЙрдЬреА, рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рд╡рд░реНрд╢ рд╕реЗ рд╕реНрдерд╛рдИ рд░реВрдк рд╕реЗ (рдирд┐рд╖реНрдХрд╛рд╕рд┐рдд) рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╣рдЯрд╛рдПрдВ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдлреЗрд▓рдУрд╡рд░ рдореЛрдб рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░реЗрдВ, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдФрд░ рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкреИрдЪ рдХрд░реЗрдВред рд╡рд╣рд╛рдБ рд░реБрдХрдирд╛ рдордд, рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВ рдФрд░ рдмрджрд▓рддреЗ рдХреНрд▓рд╕реНрдЯрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред


рдЕрдЧрд░ рдХреБрдЫ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред рд╣рдо рдЬрд▓реНрджреА рд╕реЗ рд╕рдм рдХреБрдЫ рдирд╖реНрдЯ рдХрд░ рджреЗрдВрдЧреЗ!

Source: https://habr.com/ru/post/hi478710/


All Articles