Перейти к основному содержимому
Версия: v2.8.x

Логикор. Автоматическое развертывание с помощью 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 в продуктивной среде без явного согласования.

Алгоритм при нестандартном запросе заказчика​

  1. Выберите ближайший поддерживаемый вариант развертывания и установите максимально возможную часть Системы штатным инсталлятором.
  2. Если развертывание компонента в требуемом виде не поддерживается, используйте use_external_instance и установите компонент вручную.
  3. Задайте 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 <путь_к_конфигурационному_файлу_Логикор>