Логикор. Автоматическое развертывание с помощью Ansible
В данной статье описано автоматическое развертывание системы хранения и обработки данных Логикор с помощью плейбуков Ansible.
Требования к аппаратным ресурсам серверов (количество ядер, объем оперативной памяти и дискового пространства) зависят от предполагаемой нагрузки и приведены в статье Логикор. Аппаратные требования.
Подготовка серверов
На каждом сервере должна быть выполнена интеграция с корпоративным NTP-сервером.
Настройка SSH-подключения
OpenSSH должен быть настроен на стандартный 22 порт.
Для настройки SSH-подключения необходимо выполнить следующие действия:
Шаг 1. Если для развертывания Логикор имеется потребность в использовании непривилегированного пользователя, отличного от root, то необходимо создать целевого SSH-пользователя на всех control- и managed-серверах, если этого не было сделано ранее. Для этого на всех control- и managed-серверах выполните следующие команды:
sudo useradd -m -s /usr/bin/bash -g users -G sudo <целевой_ssh_пользователь>
sudo groupadd <целевой_ssh_пользователь>
Шаг 2. Если целевой пользователь на control- и managed-серверах является непривилегированным, отличным от root, то на каждом из них необходимо добавить пользователя в sudo с отключением ввода пароля:
echo '<целевой_ssh_пользователь> ALL=(ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers
Шаг 3. На control-сервере выполните генерацию SSH-ключей под целевым пользователем, под которым будет запускаться развертывание Логикор:
su - <целевой_ssh_пользователь>
ssh-keygen -t rsa
Шаг 4. Скопируйте публичный SSH-ключ с control-сервера на каждый managed-сервер под целевым SSH-пользователем:
ssh-copy-id <целевой_ssh_пользователь>@<IP_адрес_или_FQDN_managed_сервера_1>
ssh-copy-id <целевой_ssh_пользователь>@<IP_адрес_или_FQDN_managed_сервера_2>
ssh-copy-id <целевой_ssh_пользователь>@<IP_адрес_или_FQDN_managed_сервера_N>
Загрузка сборки Логикор для оффлайн-развертывания
Для оффлайн-развертывания Системы необходимо загрузить на control-сервер оффлайн-версию Логикор и затем распаковать ее. Для этого выполните следующие действия:
Шаг 1. Подключите USB-накопитель к устройству, с которого доступен control-сервер по SSH, и скопируйте дистрибутив на сервер:
scp <путь_к_оффлайн-сборке_на_USB-накопителе> <целевой_ssh_пользователь>@<адрес_control_сервера>:/opt/logicore_<версия_Логикор>-offline_amd64.run
Шаг 2. Вернитесь в терминал управления control-сервера и выполните распаковку офлайн-дистрибутива:
sudo chmod +x /opt/logicore_<версия_Логикор>-offline_amd64.run
sudo /opt/logicore_<версия_Логикор>-offline_amd64.run
Подготовка конфигурационного файла Логикор
Общая информация
Конфигурация Логикор описывается в конфигурационном файле, представляющем собой Ansible Inventory-файл.
В каталоге /usr/share/lctl/ansible/inventories/presets хранятся пресеты для различных конфигураций Логикор, которые можно использовать как есть (за исключением пресетов, в которых необходимо задать параметры хостов) для развертывания Логикор или для клонирования одного из пресетов с последующей перенастройкой Логикор под специфические условия и окружение:
AIO-docker-offline.yml— All-in-One-конфигурация для оффлайн-развертывания Логикор через Docker Compose локально на одном сервере. В качестве control- и managed- выступает один и тот же сервер;prod-docker-offline.yml— продуктовая конфигурация для оффлайн-развертывания Логикор через Docker Compose с использованием внешних хранилищ (PostgreSQL и S3), ClickHouse и ClickHouse Keeper разворачиваются на bare-metal серверах;AIO-helm-offline.yml— All-in-One-конфигурация для оффлайн-развертывания Логикор через Helm Chart в кластере K8s;prod-helm-offline.yml— продуктовая конфигурация для оффлайн-развертывания Логикор через Helm Chart в кластере K8s с использованием внешних хранилищ (PostgreSQL и S3), ClickHouse и ClickHouse Keeper разворачиваются на bare-metal серверах.
Путь к конфигурационному файлу Логикор можно указать через флаг -f </conf/path>. Если параметр не указан, то по умолчанию используется путь /etc/lctl/config.yml.
Рекомендуется использовать путь по умолчанию /etc/lctl/config.yml для хранения конфигурации Логикор на control-сервере, чтобы исключить риск перезаписи конфигурационного файла при обновлении каталога со сборкой Логикор.
Процесс подготовки конфигурационного файла
Для того чтобы подготовить конфигурационный файл, выполните на control-сервере следующую команду, находясь в каталоге сборки Логикор:
sudo cp /usr/share/lctl/ansible/inventories/presets/<имя_выбранного_пресета>.yml /etc/lctl/config.yml
Настройка приема данных
При подготовке конфигурационного файла необходимо определить способ приема данных. Для этого в файле /etc/lctl/config.yml используется параметр use_apigw_proxy.
Пример настройки:
variables_overrides:
saturn:
config:
use_apigw_proxy: "false"
Если параметр saturn.config.use_apigw_proxy: "false", то в контейнере Saturn выполнится публикация внешних портов приема данных, а внешние порты apigw отключатся.
Если Saturn и apigw уже были развернуты, то после активации saturn.config.use_apigw_proxy: "false" необходимо переразвернуть и apigw (в первую очередь) и Saturn, иначе контейнер Saturn не сможет развернуться из-за конфликта внешних портов с apigw.
Переопределение переменных Ansible
Все переменные Ansible со значениями по умолчанию находятся во внутреннем файле /usr/share/lctl/ansible/inventories/defaults.yml. При необходимости любое из этих значений можно переопределить во внешнем конфигурационном файле /etc/lctl/config.yml.
Глобальное переопределение выполняется через секцию variables_overrides:
variables_overrides:
deployment_type: "docker-compose"
offline_mode: "true"
init_aptly: "true"
use_repo_aptly: "true"
apigw:
config:
product_info_page_enable: "true"
mpsiem_rabbitmq:
use_external_instance: "true"
Также при необходимости можно выполнить переопределение значения переменной на уровне конкретного хоста/хостов через секцию hosts. Такое переопределение имеет более высокий приоритет, чем в секции variables_overrides.
hosts:
- name: control-node
address: 127.0.0.1
connection: local
- name: saturn1
address: 10.10.10.10
user: administrator
connection: ssh
docker_rootless: "false"
- name: "click1-1"
address: "10.10.10.11"
connection: "ssh"
user: "administrator"
deployment_type: "bare-metal"
clickhouse_shard_id: "shard-01"
clickhouse_replica_id: "replica-01-01"
variables_overrides:
docker_rootless: "true"
deployment_type: "docker-compose"
Файл defaults.yml также можно использовать как справочник — в нем перечислены все доступные параметры и настройки продукта Логикор, а также показана структура вложенности YAML.
Важно строго придерживаться этой структуры при переопределении параметров: если нарушить вложенность или формат, изменения не будут применены.
Пример конфигурационного файла
Ниже приведен пример конфигурационного файла Логикор — этот же пример выводит команда lctl get-example-conf:
# Определение целевых хостов для продукта. По умолчанию определяется только локальный хост `control-node`.
hosts: []
# Примеры:
#
# - name: "<имя целевого хоста>"
# address: "<IP|FQDN целевого хоста или переменная ansible>"
# connection: "<local|ssh|docker>" # Опциональный параметр с указанием типа подключения ansible на целевые хосты. Если не указать, то будет использоваться значение 'ssh'.
# user: "<ssh username>" # Обязательный параметр с указанием SSH-пользователя, если `connection: "ssh"`. Альтернатива параметру: задать переменную `ansible_user` в секции `variables_overrides` для всех хостов.
#
# - name: "control-node"
# address: "127.0.0.1"
# connection: "local"
# - name: "example-storage-01"
# address: "10.10.10.10"
# connection: "ssh"
# user: "root"
# Переопределение целевых хостов для конкретных компонентов продукта. По умолчанию для всех компонентов используется локальный хост `control-node`.
# Список доступных компонентов: clickhouse, clickhouse_keeper, postgres, s3, apigw, aptly, registry, vault, portainer, mpsiem_rabbitmq, venus, earth, saturn, mercury, mars, docs, prometheus, grafana, victoriametrics, openldap, mailhog, docker
targets_overrides: {}
#
# Примеры:
#
# <наименование компонента>:
# hosts:
# - <значение параметра `name` целевого хоста из секции `hosts`>
#
# clickhouse:
# hosts:
# - example-storage-01
# - example-storage-02
# Переопределение переменных с параметрами развертывания продукта и его компонентов. Перечень доступных параметров и их структуру можно посмотреть в /usr/share/lctl/ansible/inventories/defaults.yml
variables_overrides:
deployment_type: "docker-compose" # Обязательный параметр с указанием типа развертывания. Возможные значения: docker-compose, helm, bare-metal
offline_mode: "true"
init_aptly: "true"
use_repo_aptly: "true"
apigw:
config:
product_info_page_enable: "true"
mpsiem_rabbitmq:
use_external_instance: "true"
mailhog:
use_external_instance: "true"
openldap:
use_external_instance: "true"
portainer:
use_external_instance: "true"
earth:
config:
clickhouse:
max_execution_time: 3600
max_concurrent_queries_for_user: 40 # Важно! Может потребоваться подбор более оптимального значения параметра под целевое окружение от 40 до 80
max_threads: 4 # Важно! Может потребоваться подбор более оптимального значения параметра в зависимости от нагрузки на CPU узлов Clickhouse
max_memory_usage_for_user: 20615843021 # Важно! Укажите 30% от объема RAM на одном узле ClickHouse (байты)
saturn:
manual_set_endpoints:
mpsiem_rabbitmq: "localhost" # Укажите адрес rabbitmq MaxPatrol SIEM
vault:
secret_data:
saturn:
mpsiem_rabbitmq_username: "siem" # можно удалить после первого деплоя
mpsiem_rabbitmq_password: "CHANGEME" # можно удалить после первого деплоя
# Важно! Убедитесь, что значения по умолчанию для jvm_xmx (+ requests и limits для развертывания через helm) соответствуют целевому окружению компонента Сатурн.
#config:
# jvm_xms: "10g"
# jvm_xmx: "42g"
# jvm_xss: "4M"
#resources:
# saturn:
# limits:
# cpu: ""
# memory: 71680Mi
# requests:
# cpu: 31000m
# memory: 64512Mi
venus:
manual_set_endpoints:
mpsiem_ptkb: "localhost" # Укажите адрес PTKB MaxPatrol SIEM
vault:
secret_data:
venus:
mpsiem_ptkb_username: "Administrator" # можно удалить после первого деплоя
mpsiem_ptkb_password: "CHANGEME" # можно удалить после первого деплоя
mars:
vault:
secret_data:
mars:
mpsiem_ptkb_username: "Administrator" # можно удалить после первого деплоя
mpsiem_ptkb_password: "CHANGEME" # можно удалить после первого деплоя
config:
mpsiem_ptkb:
hostname: "localhost" # Укажите адрес PTKB MaxPatrol SIEM
#scheme: "https"
#ms_port: 3334
#kb_port: 8091
#timeout: "300s"
#skip_tls_verify: "true"
Перед развертыванием выберите формат записи событий. Для этого задайте значение параметра taxonomy_format в конфигурационном файле:
"mpsiem"— формат MP SIEM, используется по умолчанию;"json"— формат JSON.
Переключение режима записи событий (значение параметра taxonomy_format) после развертывания стенда недопустимо.
Пример переопределения временных каталогов Ansible
Во время распаковки крупных архивов (например, aptly или registry) Ansible использует временные каталоги, в которых должно быть достаточно свободного места. Каталог на целевых хостах задается параметром remote_tmp (в дистрибутиве — remote_tmp = /tmp/.ansible-${USER}/tmp в файле /usr/share/lctl/ansible/cfg/ansible.cfg), каталог на управляющем хосте — параметром local_tmp (по умолчанию ~/.ansible/tmp).
Если раздел /tmp имеет недостаточный размер (например, менее 10 ГБ), могут возникать ошибки при выполнении Ansible-задач, связанных с распаковкой крупных архивов. В этом случае переопределите используемые каталоги перед запуском lctl с помощью переменных окружения ANSIBLE_REMOTE_TMP и ANSIBLE_LOCAL_TEMP:
sudo mkdir -p /opt/.ansible/tmp && sudo chown -R ${USER}:${USER} /opt/.ansible
export ANSIBLE_REMOTE_TMP="/opt/.ansible/tmp"
export ANSIBLE_LOCAL_TEMP="/opt/.ansible/tmp"
Важно, чтобы каталоги существовали, а пользователь, под которым запускается Ansible, имел доступ на всех целевых хостах, перечисленных в блоке hosts в /etc/lctl/config.yml, включая control-node.
Запуск процесса подготовки хостов к развертыванию Логикор
Шаг выполняется при любом типе развертывания: в Docker Compose, на bare-metal хостах и в Kubernetes (helm). Для helm подготовка хостов включена по умолчанию — в частности, на платформе Штурвал настраивается sysctl для узлов Saturn.
Для того чтобы запустить процесс подготовки хостов к развертыванию Логикор, выполните на control-сервере следующую команду, находясь в каталоге сборки Логикор:
# опциональный параметр: -f <путь_к_конфигурационному_файлу_Логикор>:
lctl prepare-host
Помимо подготовки хостов команда lctl prepare-host устанавливает bash-автодополнение для lctl: в новом терминале после ее выполнения заработает автодополнение команд и компонентов (например, lctl up ea + Tab → earth).
Процесс развертывания Логикор
Для того чтобы запустить процесс развертывания Логикор, выполните на нем следующую команду:
# опциональный параметр: -f <путь_к_конфигурационному_файлу_Логикор>:
lctl up <список_сервисов_и/или_модулей>
Примеры выполнения команд
Установка всех компонентов Логикор
lctl up
Установка службы vault и модуля services
lctl up vault services
Установка нескольких модулей и служб
lctl up vault s3 services openldap monitoring
Справка об использовании скрипта развертывания Логикор
Справка об использовании скрипта развертывания LogICore
Команды:
prepare-host Подготовить хосты и окружение к развертыванию или обновлению LogICore
Использование: lctl prepare-host [--ansible-tags <tag1,tag2,...>]
Опциональные параметры:
--ansible-tags <tag1,tag2,...> Указать теги для запуска определенных задач Ansible. Если параметр не указан, то по умолчанию указываются все доступные Ansible теги
Доступные Ansible теги:
security_disable,set_sysctl,init_aptly,os_packages_install,docker_install,hosts_file
deploy|uninstall Развернуть/обновить или удалить компоненты LogICore
Использование: lctl <deploy|uninstall> <module|service>… [-f </conf/path>]
Пример: lctl deploy earth,venus | lctl uninstall --components all
up|down Короткие алиасы: up = deploy, down = uninstall
Использование: lctl up <module|service>… [-f </conf/path>]
lctl down <module|service>… [-f </conf/path>]
Пример: lctl up earth mars | lctl up (без списка = все компоненты)
ls Список доступных модулей и сервисов
Список компонентов — один и тот же для deploy|uninstall|up|down, предпочтителен следующий формат:
lctl up earth mars
Разделители — запятая и/или пробел, регистр не важен, дубли отбрасываются; all — все модули.
Совместимый формат: --components earth,mars.
generate-helm-charts Сгенерировать Helm-чарты из Ansible-шаблонов без деплоя в Kubernetes
Использование: lctl generate-helm-charts [-f </conf/path>]
Результат: готовые чарты (values.yaml, files/, Chart.yaml, templates/) для ручного развертывания через helm
Документация: /usr/share/lctl/docs/vanilla-k8s/manual-deployment-in-k8s.md
ansible Прямой вызов ansible, путь к инвентарю необходимо передать через -f </conf/path> или создать его по пути /etc/lctl/config.yml
Использование: lctl ansible <ansible commands and flags>
ansible-playbook Прямой вызов ansible-playbook, путь к инвентарю необходимо передать через -f </conf/path> или создать его по пути /etc/lctl/config.yml
Использование: lctl ansible-playbook <ansible-playbook commands and flags>
get-config Вывести текущую полную конфигурацию LogICore
Использование: lctl get-config
get-example-conf Вывести пример конфигурационного файла LogICore
Использование: lctl get-example-conf
completion [bash|install] Автодополнение bash (самообновляемое)
Установка (один раз): lctl completion install # стаб в /etc/bash_completion.d (нужен sudo)
lctl completion install --user # без sudo, только своему пользователю (~/.bashrc)
Стаб генерирует дополнение из установленного lctl при старте шелла — файл не отстаёт от версии lctl.
На стенде ставится автоматически при 'lctl prepare-host'.
Новые терминалы подхватывают его сами; в текущем: source /etc/bash_completion.d/lctl (или exec bash).
Печать самого скрипта (просмотр/ручная установка): lctl completion bash
Работает и при запуске по пути (./bin/lctl): спеку bash ищет по имени команды, компоненты берутся из набранного бинарника.
Проверка: набрать 'lctl up ea' и нажать Tab — подставится 'earth'.
Вывести значение Vault Root Token:
Использование: lctl ansible-playbook ./ansible/playbooks/mgmt/get_hashi_vault_token.yml
Ограничение целевых узлов выполнения Ansible:
Использование: lctl deploy --components services --ansible-opts '--limit control-node,app1-node'
Обязательное условие: в параметре --limit всегда должен быть указан узел control-node
Дополнительные флаги:
-f </conf/path> Путь к конфигурационному файлу LogICore. Если параметр не указан, то по умолчанию используется /etc/lctl/config.yml
--ansible-opts '<--param1 --param2 -P3>' Дополнительные параметры Ansible, например, '-diff --check --list-tasks --limit'
--plan|--dry-run Показать состав, порядок работ и команды Ansible без запуска (deploy|uninstall|up|down)
-h|--help|help Вывести эту справку
-v|--version|version Вывести версию LogICore
Список доступных модулей и сервисов LogICore:
registry: registry
tools: portainer,vault
storage: clickhouse,s3,postgres,mpsiem_rabbitmq
external: openldap,mailhog
services: earth,apigw,docs,mercury,mars,saturn,venus
monitoring: prometheus,victoriametrics,grafana,traefik,cadvisor,docket-proxy,script-exporter,saturn-metrics-exporter,php-fpm-exporter
Для выбора всех вышеперечисленных модулей укажите: all
Пример развертывания Логикор с внешним слоем хранения
# Выполняем развертывание Docker Registry и tools (portainer, vault)
lctl up registry tools
# Создаем файл export_hashi_vault_secrets.json с секретами Логикор — значения CHANGEME тестовые, замените их на целевые перед импортом секретов в Vault
cat <<EOF | sudo tee export_hashi_vault_secrets.json
{
"clickhouse": {
"CLICKHOUSE_DB": "logger",
"CLICKHOUSE_PASSWORD": "CHANGEME",
"CLICKHOUSE_USER": "logger",
"CLICKHOUSE_READER_PASSWORD": "CHANGEME",
"CLICKHOUSE_READER_USER": "logger_reader"
},
"ldap": {
"LDAP_ADMIN_USERNAME": "admin",
"LDAP_PASSWORDS": "password1,password2",
"LDAP_USERS": "user01,user02",
"app_password": "CHANGEME",
"app_username": "cn=admin,dc=example,dc=org",
"base_dn": "dc=example,dc=org",
"bind_on": "ou=users,dc=example,dc=org"
},
"mailer": {
"from_address": "hello@example.com",
"from_name": "system",
"password": "null",
"username": "null"
},
"mpsiem_rabbitmq": {
"password": "CHANGEME",
"username": "rabbitmq"
},
"postgres": {
"PATRONI_REPLICATION_PASSWORD": "CHANGEME",
"PATRONI_REPLICATION_USERNAME": "replicator",
"PATRONI_RESTAPI_PASSWORD": "CHANGEME",
"PATRONI_RESTAPI_USERNAME": "admin",
"PATRONI_SUPERUSER_PASSWORD": "CHANGEME",
"PATRONI_SUPERUSER_USERNAME": "postgres",
"PATRONI_admin_PASSWORD": "CHANGEME",
"app_password": "CHANGEME",
"app_username": "logiq"
},
"s3": {
"AWS_ACCESS_KEY_ID": "logiq-key",
"AWS_SECRET_ACCESS_KEY": "CHANGEME",
"MINIO_ROOT_PASSWORD": "CHANGEME",
"MINIO_ROOT_USER": "logiq"
},
"venus": {
"mpsiem_ptkb_username": "Administrator",
"mpsiem_ptkb_password": "CHANGEME"
},
"saturn": {
"mpsiem_rabbitmq_username": "siem",
"mpsiem_rabbitmq_password": "CHANGEME"
},
"mars": {
"mpsiem_ptkb_username": "Administrator",
"mpsiem_ptkb_password": "CHANGEME"
}
}
EOF
# Запускаем процесс импорта секретов в Hashicorp Vault из файла export_hashi_vault_secrets.json
lctl ansible-playbook ./ansible/playbooks/mgmt/import_hashi_vault_secrets.yml
# Заходим в веб-интерфейс Hishicorp Vault и актуализируем значения секретов (s3, postgres, clickhouse) на целевые значения
# http://<IP_адрес_или_FQDN_managed_сервера_vault>:8200
# Для того чтобы получить Vault Root Token используйте команду
lctl ansible-playbook ./ansible/playbooks/mgmt/get_hashi_vault_token.yml
# После актуализации секретов на целевые значения выполняем экспорт всех секретов Логикор из Hashicorp Vault и копируем их в надежное место для возможности быстрого восстановления в случае потери данных
lctl ansible-playbook ./ansible/playbooks/mgmt/export_hashi_vault_secrets.yml
cat export_hashi_vault_secrets.json
# Для автоматического развертывания компонента слоя хранения Clickhouse и Clickhouse-keeper в формате bare-metal вносим описание состояния кластера Clickhouse в файл config.yml
hosts:
- name: "control-node"
address: "10.10.10.1"
connection: "ssh"
user: "user"
- name: "clickhouse-keeper"
address: "10.10.10.2"
connection: "ssh"
user: "user"
deployment_type: "bare-metal"
- name: "clickhouse-01"
address: "10.10.10.3"
connection: "ssh"
user: "user"
deployment_type: "bare-metal"
clickhouse_shard_id: "shard-1"
clickhouse_replica_id: "replica-1-1"
- name: "clickhouse-02"
address: "10.10.10.4"
connection: "ssh"
user: "user"
deployment_type: "bare-metal"
clickhouse_shard_id: "shard-1"
clickhouse_replica_id: "replica-1-2"
targets_overrides:
clickhouse:
hosts:
- clickhouse-01
- clickhouse-02
clickhouse_keeper:
hosts:
- clickhouse-keeper
# Запускаем развертывание служб и мониторинга
lctl up storage services monitoring
Параметр targets_overrides.clickhouse_keeper обязателен: если он не указан, развертывание ClickHouse в формате bare-metal прерывается с ошибкой.
Режимы и ограничения развертывания Системы
Рекомендуемые варианты развертывания в продуктивной среде
- Docker/K8s + модуль
storage(ClickHouse, S3, PostgreSQL) на выделенных хостах в режиме bare-metal; - Docker/K8s + внешний модуль
storageчерезuse_external_instanceиmanual_set_endpoints— если развернутые ClickHouse, S3 и PostgreSQL уже есть в целевой инфраструктуре.
Допустимые режимы развертывания
- AIO-развертывание — для демонстрационных стендов, тестирования и небольших инсталляций.
Нежелательные варианты развертывания
- смешивание Docker и bare-metal на одном хосте;
- модуль
storageв Docker/K8s в продуктивной среде без явного согласования.
Алгоритм при нестандартном запросе заказчика
- Выберите ближайший поддерживаемый вариант развертывания и установите максимально возможную часть Системы штатным инсталлятором.
- Если развертывание компонента в требуемом виде не поддерживается, используйте
use_external_instanceи установите компонент вручную. - Задайте
manual_set_endpointsдля интеграции.
FAQ
Что такое control-сервер?
Control-сервер — это хост, с которого вы запускаете lctl и инструменты Ansible CLI (ansible-playbook, ansible, ansible-vault и другие).
В конфигурационном файле Логикор control-сервер описан как хост control-node с типом подключения local: этот узел всегда должен быть указан в секции hosts, а при ограничении целевых узлов через --ansible-opts '--limit …' — и в списке --limit.
Вы можете использовать любой компьютер, который соответствует требованиям к программному обеспечению, в качестве control-сервера: например, ноутбук с Ubuntu/Debian (или Windows с WSL2), виртуальную машину с Ubuntu/Debian. Вы также можете запускать Ansible в контейнерах, известных как Execution Environments.
Что такое managed-серверы?
Managed-серверы — это целевые хосты, которыми вы собираетесь управлять с помощью Ansible и на которые планируется развертывание компонентов Логикор.
Как указать компоненты при развертывании или остановке Логикор?
Компоненты перечисляются позиционно в командах lctl up (развернуть/обновить) и lctl down (остановить): lctl up vault services, lctl down vault services. Разделители — запятая и/или пробел, регистр не важен, дубли отбрасываются, all — все модули. Если список не указан, команда lctl up развернет все компоненты Логикор, а для lctl down список обязателен (защита от остановки всего стенда). Команды up и down — короткие алиасы команд deploy и uninstall; совместимый формат — lctl deploy --components vault,services. Подробнее описано в справке lctl --help.
Как посмотреть список доступных модулей и сервисов?
Выполните команду lctl ls — она выведет модули, входящие в них сервисы и примеры команд. Машиночитаемый список (по одному компоненту на строку) — lctl ls --plain.
Как указать нужные версии сервисов?
Просмотрите файл /usr/share/lctl/stand.env: параметр PRODUCT_VERSION задает версию продукта, параметры вида <СЕРВИС>_IMAGE_TAG — версии используемых сервисов.
Как изменить конфигурацию Логикор при развертывании?
Конфигурация Логикор описывается в конфигурационном файле, представляющем собой Ansible Inventory-файл. Путь к файлу указывается флагом -f </conf/path> (если параметр не указан, используется /etc/lctl/config.yml). В каталоге /usr/share/lctl/ansible/inventories/presets хранятся пресеты для различных конфигураций Логикор, которые можно использовать как есть для развертывания Логикор или для клонирования одного из пресетов с последующей перенастройкой Логикор под специфичные условия и окружение.
Как остановить работу служб?
Для остановки работы служб используйте следующую команду:
lctl down <список_служб_и/или_модулей> -f <путь_к_конфигурационному_файлу_Логикор>