āĻāĻŽāĻ°āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĨāĻž āĻŦāĻ˛ā§āĻāĻŋ
āĻŽāĻāĻžāĻĻāĻžāĻ°? āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻžāĻāĻžāĻ° āĻ¨āĻŋāĻā§ āĻāĻŋāĻā§āĻā§āĻ¸ āĻāĻ°āĻŋ, āĻāĻŽāĻ°āĻž āĻ¸āĻŦ āĻā§āĻ˛ā§ āĻĻā§āĻāĻžāĻŦāĨ¤
āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻ¯āĻžāĻ
āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻŽāĻŋāĻāĻžāĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻžāĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ
āĻāĻļ āĻāĻāĻžāĻ° āĻāĻ°āĻŦāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻŦāĻ āĻāĻ¨āĻĒā§āĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ā§ˇ
āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛ āĻāĻžāĻ°ā§āĻāĻŋāĻ āĻāĻā§ api
и storage
āĻ¯ā§ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§.
āĻāĻžāĻ°ā§āĻāĻŋāĻ āĻ¨āĻŋāĻā§āĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋ āĻā§āĻāĻžāĻŦā§ āĻļā§āĻ°ā§ āĻāĻ°āĻŦā§āĻ¨ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻŋāĻā§ āĻŦāĻ˛ā§ āĻ¨āĻž, āĻāĻāĻŋ āĻā§āĻŦāĻ˛ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°ā§āĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻŦāĻžāĻāĻŋāĻāĻž āĻ¨āĻŋāĻā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§: āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻĒāĻāĻ¨, āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻĒā§āĻ˛āĻāĻŋ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°ā§āĻ¨āĨ¤ āĻ¤āĻŦā§ āĻāĻŽāĻ°āĻž āĻāĻ āĻ¸āĻŦ āĻāĻ°āĻŦ āĻ¨āĻž, āĻāĻ¤ā§āĻ¤āĻ° āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ āĻāĻ°āĻŦā§āĨ¤
āĻāĻĨāĻž āĻĨā§āĻā§ āĻāĻžāĻā§
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻ¸ā§āĻ¨ āĻĻā§āĻāĻŋ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻĒā§āĻ˛āĻāĻŋ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻŋ:
- āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§āĻĒ
app-1
āĻā§āĻŽāĻŋāĻāĻž āĻĒāĻžāĻ˛āĻ¨ āĻāĻ°āĻŦā§api
āĻ¯āĻžāĻ° āĻā§āĻŽāĻŋāĻāĻž āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤vshard-router
. āĻāĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻŽāĻžāĻ¤ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĨāĻžāĻāĻŦā§āĨ¤ - āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§āĻĒ āĻ¸ā§āĻ
storage-1
āĻā§āĻŽāĻŋāĻāĻž āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°ā§storage
(āĻāĻŦāĻ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§vshard-storage
), āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻŽā§āĻļāĻŋāĻ¨ āĻĨā§āĻā§ āĻĻā§āĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¯ā§āĻ āĻāĻ°āĻŋāĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨
āĻā§āĻŽāĻŋāĻāĻž āĻ¨āĻŋāĻā§āĻ
āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸āĻš āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻā§āĻ˛ā§āĻ¨ āĻāĻ°ā§āĻ¨:
$ 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
āĻāĻŽāĻ°āĻž āĻĒā§āĻ˛ā§āĻŦā§āĻā§āĻ° āĻŽā§āĻ¤ā§āĻ¯ā§āĻĻāĻŖā§āĻĄā§āĻ° āĻļā§āĻˇā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻāĻŋ, āĻ¯āĻžāĻ¨
āĻāĻĒāĻ¨āĻŋ āĻĄā§āĻāĻž āĻĸāĻžāĻ˛āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻā§āĻ˛, āĻ¤āĻžāĻ āĻ¨āĻž?
āĻāĻāĻ¨ āĻāĻ¸ā§āĻ¨ āĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻŦā§āĻ¨ āĻ¤āĻž āĻŦā§āĻ° āĻāĻ°āĻž āĻ¯āĻžāĻ āĻāĻŦāĻ āĻāĻāĻ āĻ¸āĻžāĻĨā§ āĻāĻĒā§āĻ˛āĻāĻŋāĻ¤ā§ āĻāĻ°ā§āĻāĻāĻŋ āĻ°ā§āĻĒā§āĻ˛āĻŋāĻāĻž āĻ¸ā§āĻ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻŽāĻ°āĻž āĻŦā§āĻāĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻŋ
āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻŋ āĻšāĻ˛?
āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻŋ āĻāĻŋāĻāĻŽ āĻĒā§āĻ¯āĻŧā§āĻāĻŋ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻ¤ā§āĻ¤āĻ°āĻ¯ā§āĻā§āĻ¯ āĻĒā§āĻ˛ā§āĻŦā§āĻ āĻāĻžāĻ˛āĻžāĻā§āĻāĻŋ āĻ¯āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°ā§āĻā§āĨ¤ āĻāĻ¸ā§āĻ¨ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĻā§āĻāĻŋ 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
.
āĻ¨ā§āĻā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻāĻā§ 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-playbook -i hosts.yml
--limit storage-2,storage-2-replica
playbook.yml
āĻŦāĻŋāĻāĻ˛ā§āĻĒā§ āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻĻāĻŋāĻ¨ --limit
. āĻ¯ā§āĻšā§āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¸āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻāĻ¤ā§āĻ¤āĻ°āĻ¯ā§āĻā§āĻ¯ āĻĒāĻĻā§ āĻāĻāĻāĻŋ āĻšā§āĻ¸ā§āĻ, āĻ¤āĻžāĻ āĻĒā§āĻ˛ā§āĻŦā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻā§āĻ¨ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤āĻā§āĻ˛āĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¤āĻž āĻāĻŽāĻ°āĻž āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
āĻāĻ¯āĻŧā§āĻŦ UI āĻ āĻĢāĻŋāĻ°ā§ āĻ¯āĻžāĻ¨
āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻ¯āĻžāĻ¤āĻŋāĻ° āĻāĻĒāĻ° āĻŦāĻŋāĻļā§āĻ°āĻžāĻŽ āĻ¨ā§āĻŦ āĻ¨āĻž āĻāĻŦāĻ āĻāĻĒā§āĻ˛āĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ¯āĻŧāĻ¤ā§āĻ¤ āĻāĻ°āĻŦāĨ¤
āĻāĻĒā§āĻ˛āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž
āĻāĻ¸ā§āĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤āĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋāĻ¤ā§ āĻŽāĻžāĻ°ā§āĻ āĻāĻ°āĻŋ 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 āĻŦā§āĻāĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻĒāĻŋāĻ, āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻž āĻŽā§āĻĄ, āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨)āĨ¤
āĻāĻŽāĻ°āĻž āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻāĻžāĻā§āĻ° āĻā§āĻ¨ āĻ
āĻāĻļāĻāĻŋ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ, āĻ¤āĻžāĻ°āĻĒāĻ° āĻā§āĻŽāĻŋāĻāĻžāĻāĻŋ āĻŦāĻžāĻāĻŋ āĻāĻžāĻāĻā§āĻ˛āĻŋ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§āĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻŽāĻ°āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻĒā§āĻ˛āĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻāĻŋ cartridge-replicasets
.
āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻŽā§āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻ. āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻšā§āĻ°āĻ°ā§!
āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻ¸ā§āĻāĻā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĻā§āĻā§āĻ¨ āĻāĻŋāĻāĻžāĻŦā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻĒā§āĻ˛āĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨āĻžāĻ˛ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§ āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, memtx_memory
. āĻā§āĻŽāĻŋāĻāĻž āĻāĻĒāĻ¨āĻžāĻ° āĻāĻŦā§āĻĻāĻ¨ā§āĻ° āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻĄāĻžāĻāĻ¨āĻāĻžāĻāĻŽ āĻāĻŽāĻžāĻ¤ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻ¨āĻž āĻāĻ°ā§ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŦā§āĨ¤
āĻĻā§āĻĄāĻŧāĻžāĻ¤ā§ āĻā§āĻ˛āĻŦā§āĻ¨ āĻ¨āĻž vagrant halt
āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻ āĻļā§āĻˇ āĻšāĻ˛ā§ VM āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻ¤ā§āĨ¤
āĻšā§āĻĄā§āĻ° āĻ¨ā§āĻā§ āĻā§ āĻāĻā§?
āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž-āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¤ā§āĻ¤āĻ°āĻ¯ā§āĻā§āĻ¯ āĻā§āĻŽāĻŋāĻāĻžāĻ° āĻāĻĄāĻŧāĻžāĻ˛ā§ āĻā§ āĻāĻā§āĻāĻŋāĻ˛ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻāĻĨāĻž āĻŦāĻ˛āĻŦāĨ¤
āĻāĻ¸ā§āĻ¨ āĻ§āĻžāĻĒā§ āĻ§āĻžāĻĒā§ āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻāĻŋāĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§āĻ° āĻĻāĻŋāĻā§ āĻ¨āĻāĻ° āĻĻā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻāĨ¤
āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻŦāĻ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ āĻļā§āĻ°ā§
āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻĒā§āĻ¯āĻžāĻā§āĻāĻāĻŋ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻāĻ¨ āĻā§āĻŽāĻŋāĻāĻž RPM āĻāĻŦāĻ DEB āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ā§ˇ
āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤āĻā§āĻ˛āĻŋ āĻāĻžāĻ˛ā§ āĻāĻ°āĻŋāĨ¤ āĻāĻāĻžāĻ¨ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻā§āĻŦ āĻ¸āĻšāĻ: āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ systemd
-āĻ¸ā§āĻŦāĻžāĨ¤ āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĨāĻž āĻŦāĻ˛āĻāĻŋ:
$ systemctl start myapp@storage-1
āĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻāĻŋ āĻāĻžāĻ˛ā§ āĻāĻ°āĻŦā§ storage-1
āĻ
ā§āĻ¯āĻžāĻĒāĻ¸ myapp
. āĻāĻžāĻ˛ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻžāĻāĻžāĻ¨ āĻšāĻŦā§ /etc/tarantool/conf.d/
. āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻ˛āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĻā§āĻāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ journald
.
āĻāĻāĻ¨āĻŋāĻ āĻĢāĻžāĻāĻ˛ /etc/systemd/system/[email protected]
āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻĄ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻŦāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻĄ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ Ansible-āĻāĻ° āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ°āĻ¯āĻŧā§āĻā§, āĻāĻŽāĻ°āĻž āĻāĻāĻžāĻ¨ā§ āĻ¨āĻ¤ā§āĻ¨ āĻāĻŋāĻā§ āĻāĻŦāĻŋāĻˇā§āĻāĻžāĻ° āĻāĻ°āĻŋāĻ¨āĻŋāĨ¤
āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻĒā§āĻ˛āĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻŦāĻ āĻāĻāĻžāĻ¨ā§ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧāĨ¤ āĻ¸āĻŽā§āĻŽāĻ¤ āĻšāĻ¨, āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻŦāĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ āĻā§āĻŽāĻŋāĻāĻž āĻ¨āĻŋāĻ¯āĻŧā§ āĻŦāĻŋāĻ°āĻā§āĻ¤ āĻāĻ°āĻž āĻ
āĻĻā§āĻā§āĻ¤ āĻšāĻŦā§ systemd
-āĻ¸ā§āĻŦāĻž.
āĻāĻĒāĻ¨āĻŋ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
- āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻŋāĻāĻ˛ā§āĻĒ: āĻāĻ¯āĻŧā§āĻŦ UI āĻā§āĻ˛ā§āĻ¨ āĻāĻŦāĻ āĻŦā§āĻ¤āĻžāĻŽāĻā§āĻ˛āĻŋāĻ¤ā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻāĻžāĻ§āĻŋāĻ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ā§āĻ° āĻāĻ-āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻļā§āĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻŋ āĻŦā§āĻļ āĻāĻĒāĻ¯ā§āĻā§āĻ¤āĨ¤
- āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻŦāĻŋāĻāĻ˛ā§āĻĒ: āĻāĻĒāĻ¨āĻŋ GraphQl API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻāĻžāĻ¨ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻāĻŋāĻā§ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĒāĻžāĻāĻĨāĻ¨ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ˛āĻŋāĻā§āĻ¨āĨ¤
- āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻŦāĻŋāĻāĻ˛ā§āĻĒ (āĻāĻ¤ā§āĻŽāĻžāĻ¯āĻŧ āĻļāĻā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯): āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ¯āĻžāĻ¨, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°ā§āĻ¨
tarantoolctl connect
āĻāĻŦāĻ Lua āĻŽāĻĄāĻŋāĻāĻ˛ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĒā§āĻ˛ā§āĻļāĻ¨ āĻ¸āĻā§āĻāĻžāĻ˛āĻ¨ āĻāĻ°ā§āĻ¨cartridge
.
āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĻā§āĻāĻžāĻŦāĻ¨ā§āĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻžāĻāĻāĻŋ āĻāĻāĻŋ āĻāĻ°āĻž, āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻā§āĻ° āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¨ āĻ āĻāĻļāĨ¤
Ansible āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻā§āĻ° āĻŽāĻĄāĻŋāĻāĻ˛ āĻ˛āĻŋāĻāĻ¤ā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻā§āĻŽāĻŋāĻāĻžāĻ¯āĻŧ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻŽāĻŋāĻāĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻāĻ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤
āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻž āĻāĻžāĻ āĻāĻ°ā§? āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻā§āĻˇāĻŖāĻžāĻŽā§āĻ˛āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻĒāĻāĻ¨ā§āĻĻāĻ¸āĻ āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻā§āĻŽāĻŋāĻāĻž āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§ āĻ¤āĻžāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻŦāĻŋāĻāĻžāĻāĻā§ āĻāĻ¨āĻĒā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻŽāĻĄāĻŋāĻāĻ˛ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻ¨āĻĒā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°ā§āĨ¤ āĻāĻ° āĻĒāĻ°ā§, āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻ¸āĻā§āĻā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻāĻŋ āĻā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°āĻāĻŋāĻā§ āĻĒāĻāĻ¨ā§āĻĻāĻ¸āĻ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ¸ā§āĨ¤
āĻĢāĻ˛āĻžāĻĢāĻ˛
āĻāĻāĻā§ āĻāĻŽāĻ°āĻž āĻŦāĻ˛ā§āĻāĻŋ āĻāĻŦāĻ āĻĻā§āĻāĻŋāĻ¯āĻŧā§āĻāĻŋ āĻāĻŋāĻāĻžāĻŦā§ āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛ āĻāĻžāĻ°ā§āĻāĻŋāĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻĒā§āĻ˛āĻāĻŋ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž Ansible āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻāĻŋ, āĻāĻāĻāĻŋ āĻļāĻā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§ āĻā§āĻ˛ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¸āĻšāĻ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻ āĻ¸āĻžāĻĨā§ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ āĻŦāĻāĻžāĻ āĻžāĻŽā§ āĻ¨ā§āĻĄ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ (āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻā§āĻ˛āĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ)āĨ¤
āĻāĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž Ansible āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻ
āĻ¨ā§āĻ āĻāĻĒāĻžāĻ¯āĻŧā§āĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°ā§āĻāĻŋāĨ¤ āĻāĻāĻŦāĻžāĻ° āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻ¨āĻŦā§āĻ¨ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤, āĻļāĻŋāĻā§āĻ¨ group_vars
и host_vars
.
āĻā§āĻŦ āĻļā§āĻā§āĻ°āĻ āĻāĻŽāĻ°āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻŦāĻ˛āĻŦ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻĒā§āĻ˛āĻāĻŋ, āĻŦā§āĻāĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻĒ vshard āĻĨā§āĻā§ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤āĻā§āĻ˛āĻŋāĻā§ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§āĻāĻžāĻŦā§ āĻ
āĻĒāĻ¸āĻžāĻ°āĻŖ (āĻŦāĻšāĻŋāĻˇā§āĻāĻžāĻ°) āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ, āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻž āĻŽā§āĻĄ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ, āĻ
āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§, āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻā§āĻ°āĻžāĻ āĻĒāĻĄāĻŧāĻžāĻļā§āĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¯āĻĻāĻŋ āĻāĻŋāĻā§ āĻāĻžāĻ āĻ¨āĻž āĻāĻ°ā§, āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻšāĻ¨
āĻāĻ¤ā§āĻ¸: www.habr.com