เช
เชฎเซ เชชเชนเซเชฒเชพเชฅเซ เช เชตเชฟเชถเซ เชตเชพเชค เชเชฐเซ เชเซ
เชฐเชธเชชเซเชฐเชฆ? เชชเชเซ เชนเซเช เชเช เชนเซเช เชณ เชชเซเชเซเช เชเซเช, เช เชฎเซ เชฌเชงเซเช เชเชนเซเชถเซเช เช เชจเซ เชฌเชคเชพเชตเซเชถเซเช.
เชเชพเชฒเซ เชเช เชเชฆเชพเชนเชฐเชฃเชฅเซ เชถเชฐเซเชเชค เชเชฐเซเช
เช
เชฎเซ เช
เชฎเชพเชฐเซ เชญเซเชฎเชฟเชเชพเชจเซ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพเชจเซ เชฎเชพเชคเซเชฐ เชเช เชญเชพเช เชเชตเชฐเซ เชฒเชเชถเซเช. เชคเชฎเซ เชนเชเชฎเซเชถเชพ เชคเซเชจเซ เชคเชฎเชพเชฎ เชธเซเชตเชฟเชงเชพเช เช
เชจเซ เชเชจเชชเซเช เชชเชฐเชฟเชฎเชพเชฃเซเชจเซเช เชธเชเชชเซเชฐเซเชฃ เชตเชฐเซเชฃเชจ เชฎเซเชณเชตเซ เชถเชเซ เชเซ
เชเซเชฐเชจเซเชเซเชฒ เชเชพเชฐเชคเซเชธ เชงเชฐเชพเชตเซ เชเซ 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
เช
เชฎเซ เชชเซเชฒเซเชฌเซเชเชจเชพ เช
เชฎเชฒเชจเชพ เช
เชเชคเชจเซ เชฐเชพเชน เชเซเช เชฐเชนเซเชฏเชพ เชเซเช, เชชเชฐ เชเชพเช
เชคเชฎเซ เชกเซเชเชพ เชฐเซเชกเซ เชถเชเซ เชเซ. เชธเชฐเชธ, เชฌเชฐเชพเชฌเชฐ เชจเซ?
เชเชพเชฒเซ เชนเชตเซ เชเชจเซ เชธเชพเชฅเซ เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฎ เชเชฐเชตเซเช เชคเซ เชถเซเชงเซเช, เช เชจเซ เชคเซ เช เชธเชฎเชฏเซ เชเซเชชเซเชฒเซเชเซเชฎเชพเช เชฌเซเชเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชธเซเช เชเชฎเซเชฐเซ.
เชเชชเชฃเซ เชธเชฎเชเชตเชพ เชฎเชพเชเชกเซเช เชเซเช
เชคเซ เชถเซเช เชฅเชฏเซ?
เช
เชฎเซ เชฌเซ VM เชฎเซเชณเชตเซเชฏเชพเช เชเซ เช
เชจเซ เชเช เชเชตเชพเชฌเชฆเชพเชฐ เชชเซเชฒเซเชฌเซเช เชเชฒเชพเชตเซ เชฐเชนเซเชฏเชพ เชเซเช เชเซเชฃเซ เช
เชฎเชพเชฐเซเช เชเซเชฒเชธเซเชเชฐ เชธเซเช เชเชฐเซเชฏเซเช เชเซ. เชเชพเชฒเซ เชซเชพเชเชฒเชจเซ เชธเชพเชฎเชเซเชฐเซ เชเซเชเช 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_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]
เชเช systemd เชธเซเชตเชพ เชฎเชพเชเซ เชชเซเชเซเช เชธเชพเชฅเซ เชตเชฟเชคเชฐเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ.
Ansible เชชเชพเชธเซ เชชเซเชเซเชเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพ เช เชจเซ เชธเชฟเชธเซเชเชฎd เชธเซเชตเชพเชเชจเซเช เชธเชเชเชพเชฒเชจ เชเชฐเชตเชพ เชฎเชพเชเซ เชฌเชฟเชฒเซเช-เชเชจ เชฎเซเชกเซเชฏเซเชฒเซ เชเซ, เช เชฎเซ เช เชนเซเช เชเชเชเชชเชฃ เชจเชตเซเช เชถเซเชงเซเชฏเซเช เชจเชฅเซ.
เชเซเชฒเชธเซเชเชฐ เชเซเชชเซเชฒเซเชเซ เชฐเซเชชเชฐเซเชเชพเชเชเชฟเชค เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช
เช
เชจเซ เช
เชนเซเช เชธเซเชฅเซ เชฐเชธเชชเซเชฐเชฆ เชถเชฐเซเชเชค เชฅเชพเชฏ เชเซ. เชธเชเชฎเชค เชฅเชพเช, เชชเซเชเซเชเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพ เช
เชจเซ เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ เชตเชฟเชถเซเชท เชเชตเชพเชฌเชฆเชพเชฐ เชญเซเชฎเชฟเชเชพเชฅเซ เชชเชฐเซเชถเชพเชจ เชฅเชตเซเช เชตเชฟเชเชฟเชคเซเชฐ เชนเชถเซ systemd
-เชธเซเชตเชพเช.
เชคเชฎเซ เชเซเชฒเชธเซเชเชฐเชจเซ เชฎเซเชจเซเชฏเซเช เชฒเซ เชธเซเช เชเชฐเซ เชถเชเซ เชเซ:
- เชชเซเชฐเชฅเชฎ เชตเชฟเชเชฒเซเชช: เชตเซเชฌ UI เชเซเชฒเซ เช เชจเซ เชฌเชเชจเซ เชชเชฐ เชเซเชฒเชฟเช เชเชฐเซ. เชเชฃเชพ เชเชฆเชพเชนเชฐเชฃเซเชจเซ เชเช-เชตเชเชคเชจเซ เชถเชฐเซเชเชค เชฎเชพเชเซ, เชคเซ เชเชเชฆเชฎ เชฏเซเชเซเชฏ เชเซ.
- เชฌเซเชเซ เชตเชฟเชเชฒเซเชช: เชคเชฎเซ GraphQl API เชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ. เช เชนเซเช เชคเชฎเซ เชชเชนเซเชฒเซเชฅเซ เช เชเชเชเช เชธเซเชตเชเชพเชฒเชฟเชค เชเชฐเซ เชถเชเซ เชเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชชเชพเชฏเชฅเซเชจเชฎเชพเช เชธเซเชเซเชฐเชฟเชชเซเช เชฒเชเซ.
- เชคเซเชฐเซเชเซ เชตเชฟเชเชฒเซเชช (เชญเชพเชตเชจเชพเชฎเชพเช เชฎเชเชฌเซเชค เชฎเชพเชเซ): เชธเชฐเซเชตเชฐ เชชเชฐ เชเชพเช, เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเช เชเชฆเชพเชนเชฐเชฃ เชธเชพเชฅเซ เชเชจเซเชเซเช เชเชฐเซ
tarantoolctl connect
เช เชจเซ เชฒเซเช เชฎเซเชกเซเชฏเซเชฒ เชธเชพเชฅเซ เชคเชฎเชพเชฎ เชเชฐเซเชฐเซ เชฎเซเชจเชฟเชชเซเชฏเซเชฒเซเชถเชจเซเชธ เชเชฐเซcartridge
.
เช เชฎเชพเชฐเซ เชถเซเชงเชจเซเช เชฎเซเชเซเชฏ เชเชพเชฐเซเชฏ เช เชเชฐเชตเชพเชจเซเช เชเซ, เชคเชฎเชพเชฐเชพ เชฎเชพเชเซ เชเชพเชฎเชจเซ เชธเซเชฅเซ เชฎเซเชถเซเชเซเชฒ เชญเชพเช.
Ansible เชคเชฎเชจเซ เชคเชฎเชพเชฐเซเช เชชเซเชคเชพเชจเซเช เชฎเซเชกเซเชฏเซเชฒ เชฒเชเชตเชพ เช เชจเซ เชญเซเชฎเชฟเชเชพเชฎเชพเช เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ. เช เชฎเชพเชฐเซ เชญเซเชฎเชฟเชเชพ เชเซเชฒเชธเซเชเชฐเชจเชพ เชตเชฟเชตเชฟเชง เชเชเชเซเชจเซเช เชธเชเชเชพเชฒเชจ เชเชฐเชตเชพ เชฎเชพเชเซ เช เชฎเซเชกเซเชฏเซเชฒเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ.
เชคเซ เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฎ เชเชฐเซ เชเซ? เชคเชฎเซ เชเซเชทเชฃเชพเชคเซเชฎเช เชฐเซเชชเชฐเซเชเชพเชฎเชพเช เชเซเชฒเชธเซเชเชฐเชจเซ เชเชเซเชเชฟเชค เชธเซเชฅเชฟเชคเชฟเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเซ เชเซ, เช เชจเซ เชญเซเชฎเชฟเชเชพ เชฆเชฐเซเช เชฎเซเชกเซเชฏเซเชฒเชจเซ เชคเซเชจเชพ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชตเชฟเชญเชพเชเชจเซ เชเชจเชชเซเช เชคเชฐเซเชเซ เชเชชเซ เชเซ. เชฎเซเชกเซเชฏเซเชฒ เชเซเชฒเชธเซเชเชฐเชจเซ เชตเชฐเซเชคเชฎเชพเชจ เชธเซเชฅเชฟเชคเชฟ เชฎเซเชณเชตเซ เชเซ เช เชจเซ เชคเซเชจเซ เชเชจเชชเซเช เชธเชพเชฅเซ เชธเชฐเชเชพเชตเซ เชเซ. เชเชเชณ, เชเช เชเซเชก เชฆเชพเชเชฒเชพเชเชฎเชพเชเชฅเซ เชเชเชจเชพ เชธเซเชเซเช เชฆเซเชตเชพเชฐเชพ เชเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเซ เชเซเชฒเชธเซเชเชฐเชจเซ เชเชเซเชเชฟเชค เชธเซเชฅเชฟเชคเชฟเชฎเชพเช เชฒเชพเชตเซ เชเซ.
เชชเชฐเชฟเชฃเชพเชฎเซ
เชเชเซ เช เชฎเซ เชเชฃเชพเชตเซเชฏเซเช เช เชจเซ เชฌเชคเชพเชตเซเชฏเซเช เชเซ เชคเชฎเชพเชฐเซ เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซ เชเซเชฐเชจเซเชเซเชฒ เชเชพเชฐเชเซเชฐเชฟเช เชชเชฐ เชเซเชตเซ เชฐเซเชคเซ เชเซเช เชตเชตเซ เช เชจเซ เชเช เชธเชฐเชณ เชเซเชชเซเชฒเซเชเซ เชเซเชตเซ เชฐเซเชคเซ เชธเซเช เชเชฐเชตเซ. เช เชเชฐเชตเชพ เชฎเชพเชเซ, เช เชฎเซ Ansible เชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ, เชเช เชถเชเซเชคเชฟเชถเชพเชณเซ เชธเชพเชงเชจ เชเซ เชตเชพเชชเชฐเชตเชพ เชฎเชพเชเซ เชธเชฐเชณ เชเซ เช เชจเซ เชคเชฎเชจเซ เชเชเชธเชพเชฅเซ เชเชฃเชพ เชเชจเซเชซเซเชฐเชพเชธเซเชเซเชฐเชเซเชเชฐ เชจเซเชกเซเชธเชจเซ เชเซเช เชตเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ (เช เชฎเชพเชฐเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช, เช เชเซเชฒเชธเซเชเชฐ เชเชฆเชพเชนเชฐเชฃเซ เชเซ).
เชเชชเชฐ, เช
เชฎเซ Ansible เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเซเชฒเชธเซเชเชฐ เชฐเซเชชเชฐเซเชเชพเชเชเชจเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเชตเชพเชจเซ เชเชฃเซ เชฐเซเชคเซเชฎเชพเชเชฅเซ เชเช เชธเชพเชฅเซ เชตเซเชฏเชตเชนเชพเชฐ เชเชฐเซเชฏเซ. เชเชเชตเชพเชฐ เชคเชฎเซ เชเชพเชฃเซ เชเซ เชคเชฎเซ เชเชเชณ เชตเชงเชตเชพ เชฎเชพเชเซ เชคเซเชฏเชพเชฐ เชเซ, เชถเซเชเซ group_vars
ะธ host_vars
.
เชเซเชฌ เช เชเซเชเช เชธเชฎเชฏเชฎเชพเช เช
เชฎเซ เชคเชฎเชจเซ เชเซเชชเซเชฒเซเชเซ, เชฌเซเชเชธเซเชเซเชฐเซเชช vshard, เชเชเซเชฎเซเชเชฟเช เชซเซเชฒเชเชตเชฐ เชฎเซเชกเชจเซ เชฎเซเชจเซเช เชเชฐเชตเชพ, เช
เชงเชฟเชเซเชคเชคเชพเชจเซ เชฐเซเชชเชฐเซเชเชพเชเชเชฟเชค เชเชฐเชตเชพ เช
เชจเซ เชเซเชฒเชธเซเชเชฐ เชฐเซเชชเชฐเซเชเชพเชจเซ เชชเซเช เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฏเชฎเซ เชงเซเชฐเชฃเซ เชฆเซเชฐ เชเชฐเชตเชพ (เชเชพเชขเซ เชจเชพเชเชตเซ) เชคเซ เชตเชฟเชถเซ เชเชฃเชพเชตเซเชถเซเช. เช เชฆเชฐเชฎเชฟเชฏเชพเชจ, เชคเชฎเซ เชคเชฎเชพเชฐเชพ เชชเซเชคเชพเชจเชพ เชชเชฐ เช
เชญเซเชฏเชพเชธ เชเชฐเซ เชถเชเซ เชเซ
เชเซ เชเชเชเช เชเชพเชฎ เชเชฐเชคเซเช เชจเชฅเซ, เชคเซ เชเชพเชคเชฐเซ เชเชฐเซ
เชธเซเชฐเซเชธ: www.habr.com