VK Docs logo
Помощь
Обновлена 23 октября 2025 г. в 06:18

Сценарии администрирования вспомогательных сервисов

Настройка etcd

docker run --network host -it --rm \   -v ${PATH_TO_PRIVATE_KEY}:/ansible/.ssh/id_private_key:Z \   -v ${PATH_TO_INVENTORY}:/ansible/inventories/hosts.yml:Z \   -e SUPER_USER_NAME=${SUPER_USER_NAME} \   ansible-tarantool-enterprise:${DEPLOY_TOOL_VERSION_TAG} \   ansible-playbook -i /ansible/inventories/hosts.yml \   --extra-vars '{       "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",       "super_user":"'${SUPER_USER_NAME}'",       "tarantool_shared_become_user":"etcd",   }' \   playbooks/etcd.yml

С помощью данного сценария можно настроить SSL-подключение. Для этого необходимо:

  1. В инвентаре указать конечные точки (endpoints) ETCD со схемой https://cartridge_failover_params.etcd2_params.endpoints)
  2. Добавить в инвентарь переменные:
    • etcd_ca_ssl_cert (string) — имя файла SSL-сертификата удостоверяющего центра.
    • etcd_server_ssl_cert (string) — имя файла SSL-сертификата сервера.
    • etcd_server_ssl_key (string) — имя файла ключа для SSL-сертификата сервера.

Дополнительно присутствуют переменные:

  • etcd_cleanup_data (string) — полная очистка data-директории с последующим перезапуском ETCD.
    • yes
    • no ← (default)
  • etcd_copy_cert_files (boolean) — копировать SSL-сертификаты на удаленный сервер в случае настройки SSL. Имена сертификатов при этом все равно необходимы для создания конфигурационного файла ETCD.
    • true ← (default)
    • false

Настройка logrotate

Сценарий настраивает ротацию журналов с помощью утилиты logrotate. Имеет смысл только при записи журналов или журналов аудита в файл.

docker run --network host -it --rm \  -v ${PATH_TO_PRIVATE_KEY}:/ansible/.ssh/id_private_key:Z \  -v ${PATH_TO_INVENTORY}:/ansible/inventories/hosts.yml:Z \  -e SUPER_USER_NAME=${SUPER_USER_NAME} \  ansible-tarantool-enterprise:${DEPLOY_TOOL_VERSION_TAG} \  ansible-playbook -i /ansible/inventories/hosts.yml \  --extra-vars '{      "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",      "super_user":"'${SUPER_USER_NAME}'",      "tarantool_shared_become_user":"tarantool",      "tarantool_configure_logrotate":"true"  }' \  playbooks/logrotate.yml

Обязательный параметр:

  • tarantool_configure_logrotate (boolean)
    • true

Настройка nginx

Сценарий используется для настройки nginx на серверах с Tarantool.

docker run --network host -it --rm \  -v ${PATH_TO_PRIVATE_KEY}:/ansible/.ssh/id_private_key:Z \  -v ${PATH_TO_INVENTORY}:/ansible/inventories/hosts.yml:Z \  -e SUPER_USER_NAME=${SUPER_USER_NAME} \  -e BALANCER_FQDN=${BALANCER_FQDN} \  -e HOSTS_CONFIG_PATH=${HOSTS_CONFIG_PATH} \  -e REMOTE_SSL_PATH=${REMOTE_SSL_PATH} \  -e SERVER_SSL_CERT=${SERVER_SSL_CERT} \  -e SERVER_SSL_KEY=${SERVER_SSL_KEY} \  -e COPY_CERT_FILES=${COPY_CERT_FILES} \  ansible-tarantool-enterprise:${DEPLOY_TOOL_VERSION_TAG} \  ansible-playbook -i /ansible/inventories/hosts.yml \  --extra-vars '{      "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",      "super_user":"'${SUPER_USER_NAME}'",      "tarantool_shared_become_user":"tarantool",      "balancer_fqdn":"'${BALANCER_FQDN}'",      "hosts_configs_path":"'${HOSTS_CONFIG_PATH}'",      "remote_ssl_path":"'${REMOTE_SSL_PATH}'",      "server_ssl_cert":"'${SERVER_SSL_CERT}'",      "server_ssl_key":"'${SERVER_SSL_KEY}'",      "copy_cert_files":"'${COPY_CERT_FILES}'",  }' \  playbooks/configure_nginx.yml

Обязательные параметры:

  • balancer_fqdn (string) — доменное имя балансировщика; можно указать localhost, если не используется балансировка.
  • hosts_configs_path (string) — полный путь для создания конфигурационных файлов nginx.
  • remote_ssl_path (string) — полный путь для копирования сертификатов.
  • server_ssl_cert (string) — имя сертификата.
  • server_ssl_key (string) — имя ключа.
  • copy_cert_files (string) — копировать ли сертификат и ключ:
    • “yes” — нужно копировать.
    • “no” — не нужно копировать.

Настройка очистки резервных копий

Добавлено в версии 1.6.0

Сценарий backup_clean.yml настраивает задания cron для очистки резервных копий Tarantool на указанных хостах. Очистка может быть выполнена по количеству хранимых резервных копий или по их возрасту (дни хранения). Сценарий проверяет, что определена только одна из переменных — tarantool_backup_retention_count или tarantool_backup_retention_days.

  1. Если указана переменная tarantool_backup_retention_count, cron будет настроен на удаление старых резервных копий, когда их количество превышает заданное значение.

  2. Если указана переменная tarantool_backup_retention_days, cron будет настроен на удаление резервных копий, которые старше указанного количества дней.

docker run --network host -it --rm \   -v ${PATH_TO_PRIVATE_KEY}:/ansible/.ssh/id_private_key:Z \   -v ${PATH_TO_INVENTORY}:/ansible/inventories/hosts.yml:Z \   -e SUPER_USER_NAME=${SUPER_USER_NAME} \   -e PATH_TO_BACKUP_DIRECTORY=${PATH_TO_BACKUP_DIRECTORY} \   ansible-tarantool-enterprise:${DEPLOY_TOOL_VERSION_TAG} \   ansible-playbook -i /ansible/inventories/hosts.yml \   --extra-vars '{       "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",       "super_user":"'${SUPER_USER_NAME}'",       "tarantool_shared_become_user":"tarantool",       "tarantool_remote_backups_dir":"'${PATH_TO_BACKUP_DIRECTORY}'"   }' \   playbooks/backup_clean.yml

Обязательные переменные:

  • tarantool_remote_backups_dir (string) — путь к директории на удаленном сервере, в которой находятся резервные копии.
  • tarantool_backup_retention_count (int) — количество хранимых резервных копий. Оставляет только указанное количество новых резервных копий.
  • tarantool_backup_retention_days (int) - количество дней хранения резервных копий. Удаляет резервные копии, старше заданного количества дней.

Дополнительные переменные:

  • tarantool_backup_cleanup_time (необязательно) - время выполнения задачи очистки cron.
    • По умолчанию: weekly
    • Возможные значения:
      • hourly
      • daily
      • weekly
      • monthly
      • yearly
      • reboot