10. Приложение 1

10.1. Основные объекты ADCM

Таблица 9. Основные объекты ADCM

Наименование

Назначение

Бандл

Единица установки в ADCM. Архив, содержащий информацию, по процессу установки/эксплуатации поставляемого расширения.

Существует два бандлов: кластерный, позволяет установить кластер и инфраструктурный – для добавления поддержки различных хост провайдеров.

Хост

Представление реального или виртуального хоста. Должен быть доступен по ssh. Каждый хост может быть добавлен только для настройки кластера.

Провайдер

То, что предоставляет хост. Например, у вас есть учетная запись Google Cloud. В этом случае вы создаете провайдера GCE, помещаете в него учетные данные, и он позволяет вам создать хост в GCE.

Сервис

Программное обеспечение, которое выполняет определенные функции

Компонент

Часть сервиса. Стандартный способ декомпозиции для сложных систем ПО.

Кластер

Набор служб, работающих на наборе хостов. Один кластер допускает только ограниченный набор видов услуг. Поэтому, если вы создаете кластер Hadoop из пакета Hadoop, добавить сервисы ADB из бандла ADB уже не выйдет.

10.2. Пример yml – файла настройки ProStore

10.3. Пример application.yml файла для СМЭВ3-адаптер

10.4. Пример application.yml файла для REST-адаптер

10.5. Пример adg.yml для установки ADG

# Marked as SSO cluster
---
all:
        vars:
                ansible_user: vagrant
                ansible_password: vagrant
                cartridge_app_name: memstorage
                cartridge_package_path: ../rpm/memstorage-0.3.2-0.rpm
                cartridge_cluster_cookie: C5yOoacDyA
                cartridge_failover_params:
                        mode: eventual
                ansible_ssh_private_key_file: ~/.ssh/id_rsa
                ansible_ssh_common_args: '-o IdentitiesOnly=yes -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
                cartridge_defaults:
                        memtx_memory: 67108864
                        vinyl_memory: 0

        hosts:
                storage-1:
                        config:
                                advertise_uri: '192.168.99.9:3301'
                                http_port: 8181
                                memtx_memory: 5368709120 # 5 Gb
                                vinyl_memory: 32212254720 # 30 Gb

                c-1:
                        config:
                                advertise_uri: '192.168.99.9:3302'
                                http_port: 8182

                ip-1:
                        config:
                                advertise_uri: '192.168.99.9:3303'
                                http_port: 8183

                out-task-1:
                        config:
                                advertise_uri: '192.168.99.9:3304'
                                http_port: 8184

                sch-1:
                        config:
                                advertise_uri: '192.168.99.9:3305'
                                http_port: 8185

                api-1:
                        config:
                                advertise_uri: '192.168.99.9:3306'
                                http_port: 8186

                state-1:
                        config:
                                advertise_uri: '192.168.99.9:3307'
                                http_port: 8187

        children:
                adg-01:
                        vars:
                                ansible_host: 192.168.99.9

                        hosts:
                                storage-1:
                                c-1:
                                ip-1:
                                out-task-1:
                                sch-1:
                                api-1:
                                state-1:

                storage_1_replicaset:
                        vars:
                                replicaset_alias: storage-1
                                weight: 2
                                failover_priority:
                                        - storage-1
                                roles: ['app.roles.adg_storage']
                        hosts:
                                storage-1:

                c_1_replicaset:
                        vars:
                                replicaset_alias: c-1
                                failover_priority:
                                        - c-1
                                roles: ['app.roles.adg_kafka_connector', failover-coordinator]
                        hosts:
                                c-1:

                ip_1_replicaset:
                        vars:
                                replicaset_alias: ip-1
                                failover_priority:
                                        - ip-1
                                roles: ['app.roles.adg_input_processor']
                        hosts:
                                ip-1:

                out_task_1_replicaset:
                        vars:
                                replicaset_alias: out-task-1
                                failover_priority:
                                        - out-task-1
                                roles: ['app.roles.adg_output_processor']
                        hosts:
                                out-task-1:

                sch_1_replicaset:
                        vars:
                                replicaset_alias: sch-1
                                failover_priority:
                                        - sch-1
                                roles: ['app.roles.adg_scheduler']
                        hosts:
                                sch-1:

                api_1_replicaset:
                        vars:
                                replicaset_alias: api-1
                                failover_priority:
                                        - api-1
                                roles: ['app.roles.adg_api']
                        hosts:
                                api-1:

                state_1_replicaset:
                        vars:
                                replicaset_alias: state-1
                                failover_priority:
                                        - state-1
                                roles: ['app.roles.adg_state']
                        hosts:
                                state-1:

10.6. Пример config.yml для установки ADG

---
kafka_produce:
custom_properties:
        log_level: '7'
properties:
kafka:
maxNumberOfMessagesPerPartition: 1
scheduler_tasks:
kafka_bootstrap:
bootstrap_connection_string: kafka_server_ip:9092
kafka_topics:
EMPLOYEES:
        error_topic: err
        schema_key: adb_upload_request
        target_table: EMPLOYEES
        schema_data: employees
        success_topic: succ
kafka_consume:
custom_properties:
        log_level: '7'
topics:
- EMPLOYEES
properties:
        enable.auto.offset.store: 'false'
        auto.offset.reset: earliest
        enable.auto.commit: 'false'
        group.id: tarantool-group-csv
        partition.assignment.strategy: roundrobin
        enable.partition.eof: 'false'
...

10.7. Пример cartridge.yml

# ---
#     - name: Deploy my Tarantool Cartridge app
#       hosts: all
#       become: true
#       become_user: root
#       gather_facts: false
#       tasks:
#         - name: Import Tarantool Cartridge role
#           import_role:
#             name: tarantool.cartridge
                # vars:
                #   cartridge_scenario:
                #     - edit_topology
---

- name: Deploy ADG
gather_facts: false
any_errors_fatal: true
become: true
become_user: root
hosts: all
roles:
        - tarantool.cartridge