Сервер, который предоставляет доступ к каталогу объектов, таких как пользователи, группы, компьютеры и другие ресурсы в сети.
| Допускается использование любых серверов со стандартной схемой БД Microsoft (Active Directory Schema) |
Руководство включает полное поэтапное описание процесса установки и начальной настройки продукта «Служба управления конфигурациями» (LCM).
На этапе подготовки к установке:
Убедитесь, что установлено прикладное программное обеспечение требуемой версии на серверах согласно схеме развертывания.
Выполните настройку окружения.
Убедитесь, что у вас есть доступ к дистрибутиву продукта требуемой версии.
(Опционально) создайте файл сертификата SSL для синхронизации пользователей по протоколу LDAPS.
(Опционально) создайте Service Principal Name (SPN) и keytab-файл для сервисной учетной записи.
(Опционально) Если вы используете сторонний Java Runtime Environment (JRE), ознакомьтесь с дополнительной инструкцией по запуску бэкенда продукта.
Дистрибутив Java включен по умолчанию в устанавливаемый deb-пакет бэкендом продукта «Служба управления конфигурациями».
|
Компоненты LCM устанавливаются в операционной системе Astra Linux Special Edition версии не ниже 1.7.3 (лицензия: GNU General Public License от ООО «РусБИТехАстра»).
|
Допускается использование других систем, основанных на ядре Linux (например, система с открытым исходным кодом Ubuntu версии 20.04 LTS и выше). Убедитесь, что для выбранной ОС установлена подсистема инициализации systemd версии 245 и выше. Подсистема будет использоваться для установки deb-пакетов. |
Требования к системному и прикладному программному обеспечению приведены в таблице:
| Название | Описание | Версия | Тип лицензии | Правообладатель | ||
|---|---|---|---|---|---|---|
Apache Kafka |
Распределенная платформа для обработки потоков данных |
3.6.0 и выше |
Apache 2.0 |
Open Source |
||
LDAP-сервер |
Сервер, который предоставляет доступ к каталогу объектов, таких как пользователи, группы, компьютеры и другие ресурсы в сети.
|
«Служба каталогов» 1.1.0 и выше |
GPL-3.0 license |
ГК «Иннотех» |
||
Microsoft Windows Server 2012 (или более новый) |
Microsoft EULA |
Microsoft |
||||
Unboundid LDAP 4.0.16 |
GPL-2.0 license |
Open Source |
||||
PostgreSQL |
СУБД для хранения и обработки данных продукта |
Не ниже 14.0 |
PostgreSQL Licence |
Open Source |
||
S3-совместимое файловое хранилище |
Система хранения контента (например, Ceph, Minio и др.) |
|||||
Веб-сервер |
ПО, которое используется для обработки запросов от веб-браузеров и ответа на них, а также для предоставления доступа к веб-ресурсам, таким как веб-страницы, изображения, файлы и другие данные (например, Nginx-сервер) |
Ниже приведены минимальные требования к настройке следующего программного обеспечения:
Apache Kafka
Создан отдельный топик (например, salt-topic) для передачи данных с серверов управления в
бэкенд LCM.
Для топика рекомендуется задать параметры:
retention — время, в течение которого сообщения будут храниться в топике до момента удаления;
partitions — способ физического разделения данных в топике на несколько частей.
Эти параметры могут быть настроены в зависимости от требований к производительности и надежности
системы.
LDAP-сервер
Создана учетная запись для подключения и сканирования LDAP-сервера.
Создана учетная запись для валидации билетов Kerberos (это может быть та же учетная запись, что и в п.1).
Создана сервисная учетная запись Kerberos.
Убедитесь, что все компьютеры, которые будут использоваться для работы с кабинетом администратора и магазином приложений, находятся в составе домена под управлением службы каталогов (Active Directory Domain Services, Samba, FreeIPA и др.), использующей для проверки подлинности протокол Kerberos.
|
При использовании PAM-аутентификации для корректной работы сервера управления (master) необходим root-доступ — полный доступ к системе, который предоставляется пользователю с правами администратора (root). Если аутентификация выполняется при помощи LDAP-сервера, то root-доступ необязателен. Для корректной работы агентов (minions) root-доступ обязателен. Для работы остальных компонентов продукта root-доступ не требуется. |
PostgreSQL
Создана техническая учетная запись пользователя.
Техническому пользователю назначена схема, в которой будут созданы таблицы с бэкендом LCM автоматически после установки продукта.
Пользователю выданы права на выполнение DDL-операций.
S3-совместимое файловое хранилище
Cоздана техническая учетная запись.
Созданы бакеты:
salt-bucket — для хранения формул модуля координации (SaltStack);
pillar-bucket — для хранения данных хранилища Pillar модуля координации (SaltStack);
icons-bucket — для хранения иконок;
images-bucket — для хранения изображений и скриншотов;
others-bucket — для хранения прочего мультимедиа-контента.
| Названия бакетов приведены в качестве примера, вы можете задать любые значения. |
Дистрибутив продукта включает компоненты:
inno-lcm-core — сборка бэкенда LCM, содержащая скомпилированный код для
массовой установки ПО на устройствах и обработки полученных событий;
inno-lcm-webadmin — пользовательский интерфейс «Кабинет администратора»;
inno-lcm-app-shop — пользовательский интерфейс «Магазин приложений»;
inno-lcm-salt-formulas — пакет с формулами — специальными шаблонами для установки ПО на устройствах;
salt-api — пакет, предоставляющий REST API для SaltStack;
salt-common — пакет, содержащий библиотеки, необходимые для работы SaltStack;
salt-master — пакет для установки сервера управления (master), который будет управлять всеми агентами (minions) в инфраструктуре;
salt-minion — пакет для установки агентов (minions) на удаленных серверах;
salt-cloud — (опциональный модуль) пакет для управления облачными провайдерами;
salt-dbg — (опциональный модуль) пакет для отладки установки и поиска ошибок в настройках;
salt-ssh — (опциональный модуль) пакет для взаимодействия с агентами (minions) через протокол SSH, который может использоваться в качестве
альтернативы, не требующей удаленного агента;
salt-syndic — (опциональный модуль) пакет, который используется для настройки среды с несколькими (masters) серверами управления и позволяет
связывать их в единую сеть и управлять ими из одного места;
CHANGELOG.md — файл, содержащий журнал изменений проекта в виде упорядоченного списка
версий продукта с датами их выхода и описанием;
kafka_return_custom.py — файл с инструментом, который перенаправляет сообщения от агентов в топик Kafka;
lcm-doc — сопроводительная документация, соответствующая версии продукта.
Дистрибутив распространяется следующими способами:
в виде deb-пакетов, доступных для установки из apt-репозитория
https://<repository.domain.name>/repository/<клиент>-<редакция>-apt-packages;
Перед установкой требуется добавить apt-репозиторий в список репозиториев операционной системы и обеспечить к нему доступ, используя полученные от ГК «Иннотех» публичный ключ и учетную запись пользователя.
в виде архивов в формате tar.gz, доступных для загрузки из репозитория
https://<repository.domain.name>/repository/<клиент>-<редакция>-raw-packages.
Доступ к репозиторию осуществляется с использованием полученной от ГК «Иннотех» учетной записи. Архивы в репозитории сгруппированы по версиям. Для каждой версии предоставляется стандартный набор архивов с файлами для проверки контрольных сумм.
Имена пакетов с основными модулями LCM (inno-lcm) формируются по шаблону:
<package_name>_<build_version>-<edition>_<architecture>.deb
Где:
package_name — наименование модуля продукта;
build_version — версия пакета в соответствии с принципами семантического версионирования (мажорная_версия.минорная_версия.патч-версия);
edition — редакция дистрибутива;
architecture — архитектура.
Пример:
inno-lcm-core_1.2.0-1_amd64.deb
Имена пакетов модуля координации (salt) формируются по шаблону:
<package_name>_<build_version>_<architecture>.deb
Где:
package_name — наименование модуля продукта;
build_version — версия пакета в соответствии с принципами семантического версионирования (мажорная_версия.минорная_версия.патч-версия);
architecture — архитектура.
Пример:
salt-api_3006.5_amd64.deb
Продукт поставляется в виде Deb-пакетов, которые можно установить из apt-репозитория или архива. Ниже представлена схема развертывания:
Для извлечения сертификата LDAP-сервера выполните команду в консоли:
openssl s_client -showcerts -connect <active_directory_domain_controller_address>:<ldap_ssl_port>
Пример:
openssl s_client -showcerts -connect 10.169.20.3:636
Пример вывода команды:
Connecting to 172.28.15.144
CONNECTED(00000004)
Can't use SSL_get_servername
depth=0 O=Samba Administration, OU=Samba - temporary autogenerated HOST certificate, CN=DEV-LCM-VM0106.lcm.terra.inno.tech
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 O=Samba Administration, OU=Samba - temporary autogenerated HOST certificate, CN=DEV-LCM-VM0106.lcm.terra.inno.tech
verify error:num=21:unable to verify the first certificate
verify return:1
depth=0 O=Samba Administration, OU=Samba - temporary autogenerated HOST certificate, CN=DEV-LCM-VM0106.lcm.terra.inno.tech
verify return:1
---
Certificate chain
0 s:O=Samba Administration, OU=Samba - temporary autogenerated HOST certificate, CN=DEV-LCM-VM0106.lcm.terra.inno.tech
i:O=Samba Administration, OU=Samba - temporary autogenerated CA certificate, CN=DEV-LCM-VM0106.lcm.terra.inno.tech
a:PKEY: rsaEncryption, 4096 (bit); sigalg: RSA-SHA256
v:NotBefore: Oct 19 14:59:09 2023 GMT; NotAfter: Sep 18 14:59:09 2025 GMT
-----BEGIN CERTIFICATE-----
MIIF0DCCA7igAwIBAgIEPUQxZTANBgkqhkiG9w0BAQsFADCBhTEdMBsGA1UEChMU
U2FtYmEgQWRtaW5pc3RyYXRpb24xNzA1BgNVBAsTLlNhbWJhIC0gdGVtcG9yYXJ5
IGF1dG9nZW5lcmF0ZWQgQ0EgY2VydGlmaWNhdGUxKzApBgNVBAMTIkRFVi1MQ00t
Vk0wMTA2LmxjbS50ZXJyYS5pbm5vLnRlY2gwHhcNMjMxMDE5MTQ1OTA5WhcNMjUw
OTE4MTQ1OTA5WjCBhzEdMBsGA1UEChMUU2FtYmEgQWRtaW5pc3RyYXRpb24xOTA3
BgNVBAsTMFNhbWJhIC0gdGVtcG9yYXJ5IGF1dG9nZW5lcmF0ZWQgSE9TVCBjZXJ0
aWZpY2F0ZTErMCkGA1UEAxMiREVWLUxDTS1WTTAxMDYubGNtLnRlcnJhLmlubm8u
dGVjaDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANnnfyyW1P1I80Cw
t/TVWTZTRXIHKNPECGz3flV7XzxECUwMN/TZoft3uucukWs6jsa53REmIsjIgUrQ
3FiQn4lo/fzuC5gbwF9RE7jA3OcankaDjL5exB8FHtVUFy0hjAKulsZ1L1bO2Z49
2SAZpK64B9IOI092rV2DyiBkkVh3xCRHUpm97Buzvt8ERQsDEGWx8lYJl66F/Zi4
2QnIlMn1D7Q1VVp5OggqPaua3il9s3q7uoS6hXuin/AD6i3ddT3tHeBP/L/j3bdr
oesfQl5xd15d0xCdUqMteyMpa+aMj1Sln32hpaM4U4Q8sIn4cLOd+8ZjRclyZyFe
wRyV4Ox9WKfOlwh+vRNE28zNbhU0ljJM4qIj8mXTAewHCI6xLQEYFjy1GJf7KS6C
o2Ub5+FwnZ72tXvB99STgvhyD6JhoSThy0OHjqx5Z9HK6Pjx+QPlkk4JEO/KRl0s
zneehA06XdUUQc2G/Cn5wVMdZpfo3OXiePsEKZKg2AA979TvsqqqCWAbNG4RbXyK
riCtFyJqqwEiUEOeYr0y65AHV/jD1NlPIYGUzXlFhBnFJlLOoXN04J58p4UbTcdd
mBBHPmGk69W6Oxf5oF7HJsfZrxHVe8j4lpNH/Ybh54g9otoqpxP157H26dqcRvZM
mxXDJtg4AoWsoGQXM1ej4S7kwJclAgMBAAGjRDBCMAwGA1UdEwEB/wQCMAAwEwYD
VR0lBAwwCgYIKwYBBQUHAwEwHQYDVR0OBBYEFOP4eYlKWA77ur5P4ys0xE57aRGj
MA0GCSqGSIb3DQEBCwUAA4ICAQCHDPbmgIpfqXoKh0x3FtNt6EecJvdLtRPHrBO+
MHXL9o7SZyqtbXs4mhsoMbP8GGGcJtem02ELZosWLr1/2cg0d9uQuhpB5zLwrTiV
E7u7ZVADXJc75gMxulBPHDLaUT8AdP0GEVt6W6dw1xQULT1CGI9728vsZ+q9VetK
3qgtx/lAB16wJKhm0LMxS9FAR2iOfHgnVYHqKMQKkNUecV95imo10G44P6sj4wSt
L7lB+Za2EA//7OdGvQYeCQCSbpQQbNPV0g1LHXJ/eO5y1EEIRm4gtsTyipg/52fC
VRTmGw5jZUEzUZBCUY/A4XiyoczqfuO+tGT0rLBZVmP7EC7/KJt3EKnu1CQgkv8w
gPkgYNX6+2zuOCUirXY8QqciQqD44SSyS2+LNk5qfftoxcNZ5yBiOiJDZ9KayW+F
t0OwfgTAvGBoBDQ5Gkop1sAEXFEoEhRO8ktOFLjnG6vxEPc35Wj3qX9K3Tye03ue
hbxv5qrzs5STOF1fqbTuckuP+91ysuNbKvivlB1nlXBXgycoqYRF6/uU/sK1Xesb
YJ8oYR+7edrYyRpz1WECR9MAS9iH49RfaEVO+8pSxuGwUMtaiKA4BQo02aGLMKDW
hFtNhfVEmARoKPkuqdIoxjWL9bltPal6mr1ku2P5TwIyQIWHfI1C+mqnxlh2Z78Z
MDjQmQ==
-----END CERTIFICATE-----
Скопируйте сертификат из вывода команды и создайте файл с сертификатом.
Сохраните файл с сертификатом на сервере, на который будет устанавливаться бэкенд продукта. Путь к файлу необходимо будет указать на этапе его настройки.
Ниже приведен пример создания SPN (Service Principal Name) и keytab-файла для сервисной учетной записи в домене под управлением Samba.
Создайте SPN с полным доменным именем.
Пример команды:
samba-tool spn add HTTP/lcm-dev-2-lcm-1@LCM.TERRA.INNO.TECH lcm-dev-2-lcm-1
Создайте SPN с коротким именем.
Пример команды:
$ samba-tool spn add HTTP/lcm-dev-2-lcm-1 lcm-dev-2-lcm-1
Выполните проверку созданных SPN.
Пример команды:
$ samba-tool spn list lcm-dev-2-lcm-1
Пример вывода:
lcm-dev-2-lcm-1 User CN=lcm-dev-2-lcm-1,CN=Users,DC=lcm,DC=terra,DC=inno,DC=tech has the following servicePrincipalName: HTTP/lcm-dev-2-lcm-1@LCM.TERRA.INNO.TECH HTTP/lcm-dev-2-lcm-1
Выполните проверку атрибутов сервисной учетной записи.
Пример команды:
$ samba-tool user show lcm-dev-2-lcm-1
Пример вывода со значимыми параметрами:
cn: lcm-dev-2-lcm-1 name: lcm-dev-2-lcm-1 sAMAccountName: lcm-dev-2-lcm-1 userPrincipalName: lcm-dev-2-lcm-1@lcm.terra.inno.tech objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=lcm,DC=terra,DC=inno,DC=tech msDS-SupportedEncryptionTypes: 24 accountExpires: 0 servicePrincipalName: HTTP/lcm-dev-2-lcm-1@LCM.TERRA.INNO.TECH servicePrincipalName: HTTP/lcm-dev-2-lcm-1 distinguishedName: CN=lcm-dev-2-lcm-1,CN=Users,DC=lcm,DC=terra,DC=inno,DC=tech
Создайте keytab-файл.
Пример команды:
$ sudo samba-tool domain exportkeytab ./lcm-user.keytab --principal=lcm-dev-2-lcm-1
Чтобы просмотреть файл, выполните команду:
$ sudo klist -e -k ./lcm-user.keytab
Пример файла:
Keytab name: FILE:./lcm-user.keytab KVNO Principal ---- -------------------------------------------------------------------------- 7 lcm-dev-2-lcm-1@LCM.TERRA.INNO.TECH (aes256-cts-hmac-sha1-96) 7 lcm-dev-2-lcm-1@LCM.TERRA.INNO.TECH (aes128-cts-hmac-sha1-96) 7 lcm-dev-2-lcm-1@LCM.TERRA.INNO.TECH (DEPRECATED:arcfour-hmac)
Сохраните файл на сервере, на который будет устанавливаться бэкенд продукта. Путь к файлу необходимо будет указать на этапе его настройки.
По умолчанию в устанавливаемый deb-пакет с модулем inno-lcm-core (бэкендом продукта «Служба управления конфигурациями») уже включен
Java Runtime Environment (JRE).
При установке и запуске модуля inno-lcm-core из deb-пакета автоматически
происходит создание службы lcm.service и запуск бэкенда через встроенный JRE.
В данном случае дополнительных действий предпринимать не требуется.
Версия Java должна быть не ниже 17.
|
Для запуска модуля inno-lcm-core через стороний JRE, выполните действия:
Установите на сервер, на котором будет производиться запуск, JRE не ниже версии 17.
Убедитесь, что переменная JAVA_HOME содержит путь к актуальной JRE не ниже версии 17.
|
Загрузите и распакуйте архив *.tar.gz с deb-пакетом
inno-lcm-core.
Перенесите deb-пакет в требуемую директорию, например, выполнив команду:
dpkg-deb -R inno-lcm.core-<version>.deb inno-lcm-core /opt/inno-lcm-core
Перейдите в директорию с исполняемыми файлами *.jar модуля inno-lcm-core:
cd /opt/inno-lcm-core/lib/app
Запустите исполняемый файл lcm-app-runner.jar удобным способом, например, выполнив команду:
java -Dquarkus.config.locations=/opt/inno-lcm-core/application.properties -jar lcm-app-runner.jar
Дистрибутив продукта «Служба управления конфигурациями» включает два архива:
архив с модулем координации (SaltStack);
Пример архива:
salt_3006.5.zip
архив с основными модулями (бэкенд и фронтенд) продута.
Пример архива:
inno-lcm-all-1.3.0.tar.gz
Для доступа к хранилищу с архивами требуется:
ссылка на хранилище с архивами в формате https://<repository.domain.name>/repository/<клиент>-<редакция>-raw-packages;
учетная запись для доступа к хранилищу.
Установка продукта выполняется в два этапа:
Установка модуля координации (SaltStack).
Установка бэкенда и фронтенда продукта.
Чтобы установить модуль координации (SaltStack), выполните шаги:
Скачайте и распакуйте архив с модулем координации (SaltStack) для последующей установки сервера управления (master).
Установите deb-пакеты salt-common, salt-api и salt-master.
Выполните настройку конфигурации сервера управления (master).
Выполните настройку Kafka returner.
Запустите сервер управления (master).
Запустите модуль salt-api.
Скачайте и распакуйте архив с модулем координации (SaltStack) для последующей установки агентов (minions).
Установите deb-пакеты salt-common и salt-minion.
Выполните настройку конфигурации агентов (minions).
Создайте пары открытых ключей (public key) для взаимодействия сервера управления (master) с агентами (minions).
Запустите и проверьте работу systemd-службы для агентов (minions).
Скачайте архив с пакетами требуемых версий и соответствующие файлы контрольных сумм из предоставленного хранилища любым доступным способом.
(Опционально) убедитесь в целостности архива, сравнив его контрольные суммы с контрольными суммами в соответствующих файлах.
Пример команды, запускаемой в консоли для проверки целостности:
shasum -a 512 -c salt_3006.5.zip salt_3006.5.zip.sha512
Перенесите скачанный архив на машину, на которой будет запускаться сервер управления (master), выполнив команду scp (secure copy):
Пример команды:
scp salt_3006.5.zip 10.6.32.39
Создайте временный каталог для распаковки и распакуйте архив.
Пример команд для создания каталога и распаковки архива:
mkdir salt-lcm unzip salt_3006.5.zip -d salt-lcm
Пример результата выполнения с содержимым архива:
./salt-dbg_3006.5_amd64.deb ./salt-3006.5_amd.build ./salt-ssh_3006.5_amd64.deb ./salt-master_3006.5_amd64.deb ./salt-common_3006.5_amd64.deb ./salt-3006.5_amd64.chages ./salt-cloud_3006.5_amd64.deb ./salt-minion_3006.5_amd64.deb ./salt-3006.5_amd.buildinfo ./salt-3006.5.dsc ./salt-api_3006.5_amd64.deb ./salt_3006.5.zip.xz
Установите deb-пакеты стандартным способом в указанном порядке на сервере, который вы будете использовать в качестве сервера управления:
salt-common — пакет, содержащий библиотеки, необходимые для работы модуля координации (SaltStack).
salt-api — пакет, предоставляющий REST API для модуля координации (SaltStack).
salt-master — пакет для установки сервера управления (master), который будет управлять всеми агентами (minions) в
инфраструктуре.
Опционально вы можете установить следующие deb-пакеты, используя общий принцип установки:
salt-cloud — пакет для управления облачными провайдерами.
salt-dbg — пакет для отладки установки и поиска ошибок в настройках.
salt-ssh — пакет для взаимодействия с агентами (minions) через протокол SSH, который может
использоваться в качестве альтернативы, не требующей удаленных агентов.
salt-syndic — пакет, который используется для настройки среды с несколькими серверами
управления (masters) и позволяет связывать их в единую сеть и управлять ими из одного места.
| Если вы предполагаете использовать несколько серверов управления (masters), выполните установку отдельно для каждого из них. |
Пример команд для установки пакетов:
sudo apt install ./inno-salt/salt-common_3006.5_amd64.deb sudo apt install ./inno-salt/salt-api_3006.5_amd64.deb sudo apt install ./inno-salt/salt-master_3006.5_amd64.deb
На машине, на которой установлен сервер управления (master), задайте настройки его конфигурации, следуя инструкциям в разделах ниже.
|
По умолчанию сервер управления (master) настраивается через главный файл конфигурации — Также поддерживается создание файлов конфигураций в каталоге Подробную информацию о настройке главного файла конфигурации сервера управления (master) см. в официальной документации. |
Чтобы включить модуль salt-api для модуля координации (SaltStack), выполните шаги:
(Опционально) установите SSL-сертификаты.
| Подробную информацию см. в официальной документации. |
Cоздайте файл конфигурации сервера управления (master) /etc/salt/master.d/salt-api.conf.
Задайте значение параметров:
rest_cherrypy — параметры управления конфигурацией встроенного веб-сервера Cherrypy, который использует salt-api:
port — укажите порт, который будет запущен salt-api (например, 8080);
debug — (опционально) включите (True) или отключите (False) режим отладки (debug mode) для salt-api;
disable_ssl — (опционально) если в первом шаге вы не установили SSL-сертификаты, задайте значение True.
Пример:
rest_cherrypy:
- port: 8080
- debug: True
- disable_ssl: True
Чтобы использовать S3-совместимое хранилище в качестве пространства для хранения общих файлов конфигураций и файлов состояний, выполните шаги:
Cоздайте файл конфигурации сервера управления (master) /etc/salt/master.d/fileserver_backend.conf.
В созданном файле в параметре fileserver_backend укажите имя хранилища, которое вы будете использовать в качестве бэкенда для файлов.
Пример:
fileserver_backend:
- s3fs
Cоздайте файл конфигурации сервера управления (master) /etc/salt/master.d/s3.conf.
В созданном файле задайте настройки подключения к хранилищу S3:
s3.service_url — определяет URL-адрес и порт для обращения к S3-совместимому хранилищу;
s3.keyid — ключ доступа, который обеспечивает авторизацию и доступ к S3-совместимому хранилищу;
s3.key — секретный ключ, который обеспечивает авторизацию и доступ к S3-совместимому хранилищу;
s3.buckets — бакет с именем salt-bucket для хранения файлов состояния и формул;
s3.path_style — определяет стиль представления пути к объектам в S3-совместимом хранилище;
s3.location — определяет регион, в котором расположено S3-совместимое хранилище.
Пример:
s3.service_url: <s3_hostname>:<s3_port>
s3.keyid: <ACCESS_KEY>
s3.key: <SECRET_KEY>
s3.buckets:
- salt-bucket
s3.path_style: True
s3.location: <REGION>
| Подробное описание всех параметров приведено в официальной документации. |
Cоздайте файл конфигурации сервера управления (master) /etc/salt/master.d/ext_pillar.conf.
В созданном файле задайте настройки подключения к S3-совместимому хранилищу для хранения в отдельном бакете данных Pillar:
service_url — определяет URL-адрес и порт для обращения к S3-совместимому хранилищу;
keyid — ключ доступа, который обеспечивает авторизацию и доступ к S3-совместимому хранилищу;
key — секретный ключ, который обеспечивает авторизацию и доступ к S3-совместимому хранилищу;
bucket — имя бакета (pillar-bucket), которое будет использоваться для хранения данных Pillar;
multiple_env — определяет, поддерживается ли использование нескольких окружений (environments) в хранилище Pillar;
environment — указывает на основное окружение (base environment) для хранилища Pillar;
prefix — префикс для путей к данным в S3-хранилище; пустая строка означает отсутствие префикса;
verify_ssl — указывает, следует ли проверять SSL-сертификаты при обращении к S3-хранилищу;
s3_cache_expire — время жизни кэша (в секундах) для данных, полученных из S3-хранилища;
s3_sync_on_update — определяет, следует ли выполнять синхронизацию данных при обновлении Pillar;
path_style — определяет стиль представления пути к объектам в S3-хранилище;
https_enable — указывает, следует ли использовать HTTPS для обращения к S3-хранилищу.
Пример:
ext_pillar:
- s3:
service_url: <s3_hostname>:<s3_port>
keyid: <ACCESS_KEY>
key: <SECRET_KEY>
bucket: pillar-bucket
multiple_env: False
environment: base
prefix: ''
verify_ssl: False
s3_cache_expire: 30
s3_sync_on_update: True
path_style: True
https_enable: False
| Подробное описание всех полей приведено в официальной документации. |
| Готовые формулы (подробнее см. раздел «Готовые формулы» документа «Руководство по эксплуатации») импортируются автоматически при установке продукта. |
Чтобы загрузить пользовательские формулы (см. раздел «Пользовательские формулы» документа
«Руководство по эксплуатации») и формулы-шаблоны (см. раздел «Формулы-шаблоны» документа
«Руководство по эксплуатации»), используйте API для импорта формулы в S3-совместимое хранилище importFormulas
(см. раздел «Метод importFormulas» документа «Описание API»).
| Отправка событий с сервера управления (master) в Apache Kafka выполняется с помощью библиотеки librdkafka. |
Cоздайте файл конфигурации сервера управления (master) /etc/salt/master.d/returner.conf.
Пример файла:
returner.kafka_custom.bootstrap:
- "<kafka_host>:<kafka_port>"
returner.kafka_custom.topic: 'salt-topic'
returner.kafka_custom.security.protocol: ""
returner.kafka_custom.ssl.cipher.suites: ""
returner.kafka_custom.ssl.curves.list: ""
returner.kafka_custom.ssl.sigalgs.list: ""
returner.kafka_custom.ssl.key.location: ""
returner.kafka_custom.ssl.key.password: ""
returner.kafka_custom.ssl.key.pem: ""
returner.kafka_custom.ssl.certificate.location: ""
returner.kafka_custom.ssl.certificate.pem: ""
returner.kafka_custom.ssl.ca.location: ""
returner.kafka_custom.ssl.ca.pem: ""
returner.kafka_custom.ssl.ca.certificate.stores: ""
returner.kafka_custom.ssl.crl.location: ""
returner.kafka_custom.ssl.keystore.location: ""
returner.kafka_custom.ssl.keystore.password: ""
returner.kafka_custom.ssl.providers: ""
returner.kafka_custom.ssl.engine.id: ""
returner.kafka_custom.enable.ssl.certificate.verification: ""
returner.kafka_custom.ssl.endpoint.identification.algorithm: ""
returner.kafka_custom.debug: "all"
returner.kafka_custom.log_level: ""
returner.kafka_custom.allow.auto.create.topics: "true"
event_return: kafka_custom
В таблицах ниже приводится описание параметров из файла.
Обязательные параметры:
| Наименование | Описание | Пример значения |
|---|---|---|
|
Список хостов с указанием портов, где запущен брокер сообщений Apache Kafka |
|
|
Топик Apache Kafka |
|
|
Выбор способа отправки событий возврата |
|
Опциональные параметры:
| Наименование | Описание | Пример значения | ||
|---|---|---|---|---|
|
Протокол, который используется для соединения с Apache Kafka |
|
||
|
Набор шифров (именованная комбинация аутентификации, шифрование, MAC-адреса и алгоритмы обмена ключами), используемые для согласования параметров безопасности сетевого подключения по протоколу SSL. Подробнее см. SSL_CTX_set_cipher_list |
|||
|
Поддерживаемые кривые (supported curves), стандартные/именованные или «явные» GF(2^k) или GF(p) для использования сервером, которые передаются в сообщении TLS ClientHello. Подробнее см. SSL_CTX_set1_curves_list |
|||
|
Поддерживаемые алгоритмы цифровой подписи для использования сервером, которые передаются в сообщении TLS ClientHello. Подробнее см. SSL_CTX_set1_sigalgs |
|||
|
Путь к закрытому ключу клиента (PEM), который используется для аутентификации |
|||
|
Пароль для закрытого ключа (для использования с |
|||
|
Строка закрытого ключа клиента (в PEM-формате), которая используется для аутентификации |
|||
|
Путь к публичному ключу клиента (в PEM-формате), который используется для аутентификации |
|||
|
Строка публичного ключа клиента (в PEM-формате), которая используется для аутентификации |
|||
|
Путь к файлу или каталогу сертификатов CA (Certificate Authority) для проверки ключа брокера |
|||
|
Строка сертификата CA (в PEM-формате) для проверки ключа брокера |
|||
|
Список хранилищ сертификатов Windows (через запятую), из которых можно загрузить сертификаты CA. Сертификаты будут загружены в том же порядке, в котором указаны хранилища |
|||
|
Путь к CRL для валидации сертификата брокера |
|||
|
Путь к хранилищу ключей клиента (PKCS#12), которые используются для аутентификации |
|||
|
Пароль хранилища ключей клиента (PKCS#12) |
|||
|
Список провайдеров (разделенный запятыми) OpenSSL 3.0.x |
|||
|
Идентификатор OpenSSL |
|||
|
Включение проверки сертификата встроенного брокера OpenSSL (сервера). Эта проверка может быть расширена приложением путем реализации certificate_verify_cb |
|||
|
Алгоритм идентификации endpoint для проверки имени хоста брокера с использованием сертификата брокера |
|||
|
Список контекстов отладки (разделенный запятыми), которые необходимо включить |
|||
|
Уровень логирования |
|||
|
Разрешение автоматического создания темы в брокере при подписке на несуществующие темы или назначении им тем.
|
| В качестве инструкции по генерации сертификатов используйте документ "Using SSL with librdkafka". |
В S3-совместимое хранилище поместите файл kafka_return_custom.py в бакет salt-bucket по пути /base/_returners.
Пример результата:
Чтобы убедиться в корректности установки и готовности Kafka returner к использованию, обновите информацию о нем на сервере управления, выполнив команду:
salt-run saltutil.sync_returners
Запустите сервер управления (master), выполнив команду:
sudo systemctl start salt-master
Проверьте статус сервера управления (master), выполнив команду:
sudo systemctl status salt-master
Запустите модуль salt-api, выполнив команду:
sudo systemctl start salt-api
Проверьте статус модуля salt-api, выполнив команду:
sudo systemctl status salt-api
Скачайте архив с пакетами требуемых версий и соответствующие файлы контрольных сумм из предоставленного хранилища любым доступным способом.
(Опционально) убедитесь в целостности архива, сравнив его контрольные суммы с контрольными суммами в соответствующих файлах.
Пример команды для проверки целостности:
shasum -a 512 -c salt_3006.5.zip salt_3006.5.zip.sha512
Перенесите скачанный архив на машину, на которой будет запускаться агент (minion), выполнив команду scp (secure copy).
Пример команды:
scp salt_3006.5.zip 10.6.32.39
Создайте временный каталог для распаковки и распакуйте архив.
Пример команд для создания каталога и распаковки архива:
mkdir salt-lcm unzip salt_3006.5.zip -d salt-lcm
Пример результата выполнения с содержимым архива:
./salt-dbg_3006.5_amd64.deb ./salt-3006.5_amd.build ./salt-ssh_3006.5_amd64.deb ./salt-master_3006.5_amd64.deb ./salt-common_3006.5_amd64.deb ./salt-3006.5_amd64.chages ./salt-cloud_3006.5_amd64.deb ./salt-minion_3006.5_amd64.deb ./salt-3006.5_amd.buildinfo ./salt-3006.5.dsc ./salt-api_3006.5_amd64.deb ./salt_3006.5.zip.xz
Установите deb-пакеты стандартным способом в указанном порядке на устройствах, которые будут использоваться в качестве агентов (minions):
salt-common — пакет, содержащий библиотеки, необходимые для работы SaltStack.
salt-minion — пакет для установки агентов (minions) на удаленных устройствах.
Пример команд для установки пакетов:
sudo apt install ./inno-salt/salt-common_3006.5_amd64.deb sudo apt install ./inno-salt/salt-minion_3006.5_amd64.deb
На машине, на которой установлен агент (minion), задайте настройки его конфигурации, следуя инструкции ниже.
|
По умолчанию агент (minion) настраивается через главный файл конфигурации — Также поддерживается создание файлов конфигураций в каталоге Подробную информацию о настройке главного файла конфигурации агента см. в официальной документации. |
Cоздайте файл конфигурации агента (minion) /etc/salt/minion.d/master.conf.
Задайте параметры для подключения к серверу управления (master).
Задайте интервал в минутах, через который агент отправляет ping-запрос на сервер управления. Рекомендуемое значение — 10 минут.
|
Выбор оптимального значения для параметра определяется количеством агентов, пропускной способностью сети и требованиями к актуальности данных. При задании параметра следует учитывать следующие факторы:
|
Пример файла:
master:
- <адрес сервера управления (master)>
ping_interval: 10
(Опционально) для организации подключения в отказоустойчивом режиме (HA) — в режиме «мультимастер» (failover) внесите
соответствующие настройки в файл /etc/salt/minion.d/master.conf. Ниже представлены минимальные настройки для работы с
типом конфигурации failover:
master:
- <адрес 1-ого сервера управления (master)>
- <адрес 2-ого сервера управления (master)>
- ...
- <адрес N-ого сервера управления (master)>
master_type: failover
master_alive_interval: 60
master_failback: True
master_failback_interval: 30
random_master: true
Где:
master_type — используемый способ подключения к серверам управления (master) (режим failover);
master_alive_interval — таймаут проверки серверов на предмет доступности, используемый для переключения между серверами;
master_failback — сценарий повторного подключения к серверам при их недоступности (значение True позволяет выполнить попытку
подключения к серверам, которые были ранее недоступны);
master_failback_interval — таймаут проверки серверов при их повторной недоступности;
random_master — сценарий выбора сервера управления (master) из списка (значение True указывает, что будет выбираться
случайный сервер из списка).
Подробнее о настройке режима «мультимастер» (failover) см. в
официальной документации.
|
(Опционально) создайте файл конфигурации агента (minion) /etc/salt/minion.d/log_level.conf и задайте в нем параметр
log_level, чтобы включить подробный уровень логирования.
Пример файла:
log_level: debug
Сервер управления (master) будет взаимодействовать с агентом (minion) посредством ключей. Для этого необходимо сгенерировать ключевую пару на каждом узле и передать открытый ключ с агента (minion) на сервер управления (master). Выполните соответствующие настройки на сервере управления (master) и на агенте (minion):
На сервере управления (master):
Сгенерируйте открытый ключ (public key), выполнив команду:
sudo salt-key --gen-keys
Отобразите ключ на агент (minion), выполнив команду:
sudo salt-key --print
На агенте (minion):
Сгенерируйте открытый ключ (public key), выполнив команду:
sudo salt-key --gen-keys
Отобразите ключ на сервер управления (master), выполнив команду:
sudo salt-key --print
На сервере управления (master):
Выполните поиск списка ключей, которые ожидают принятия, выполнив команду:
sudo salt-key -L
Чтобы разрешить все ключи агентов, на сервере управления (master) выполните команду:
salt-key --accept-all
Будьте осторожными при использовании команды salt-key --accept-all, так как ее выполнение
может привести к добавлению ненужных или нежелательных ключей в список доверенных ключей сервера
управления (master).
|
Ориентируйтесь на команду отображения ключей агентов (minions).
Запустите systemd-службу salt-minion, выполнив команду:
sudo systemctl start salt-minion
Перезапустите systemd-службу salt-minion, выполнив команду:
sudo systemctl restart salt-minion
Проверьте статус службы salt-minion, выполнив команду:
sudo systemctl status salt-minion
Чтобы установить бэкенд и фронтенд продукта, выполните шаги:
Скачайте и распакуйте архив с основными модулями продукта.
Выполните предварительную настройку бэкенда.
Установите бэкенд.
Установите фронтенд и выполните настройку веб-сервера.
Скачайте архив с пакетами требуемой версии и соответствующие файлы контрольных сумм из предоставленного хранилища любым доступным способом.
(Опционально) убедитесь в целостности архива, сравнив его контрольные суммы с контрольными суммами в соответствующих файлах.
Пример команды, запускаемой в консоли для проверки целостности:
shasum -a 512 -c inno-lcm-all-1.3.0.tar.gz inno-lcm-all-1.3.0.tar.gz.sha512
Перенесите скачанный архив на машину, на которой будет запускаться inno-lcm, выполнив команду scp (secure copy):
Пример команды:
scp inno-lcm-all-1.3.0.tar.gz 10.6.32.218
Создайте временный каталог для распаковки и распакуйте архив.
Пример команд для создания каталога и распаковки архива:
mkdir inno-lcm tar xvf inno-lcm-all-1.3.0.tar.gz -C inno-lcm
Пример результата выполнения с содержимым архива:
x inno-lcm-salt-formulas-0.12.0.tar.gz x salt-custom/kafka_return_custom.py x packages/inno-lcm-core_1.3.0-1_amd64.deb x packages/inno-lcm-webadmin_1.3.3-1_all.deb x packages/inno-lcm-app-shop_1.2.0-1_all.deb x docs/LCM-UserGuide-Ru.pdf x docs/LCM-API-Guide-Ru.pdf x docs/LCM-AdminGuide-Ru.pdf x docs/LCM-MaintenanceGuide-Ru.pdf x docs/LCM-Desc-Ru.pdf x docs/LCM-InstallGuide-Ru.pdf x docs/CHANGELOG.md
Предварительная конфигурация бэкенда (модуля inno-lcm-core) выполняется перед его установкой и включает в
себя настройку параметров в файле конфигурации application.properties, который должен быть
помещен в каталог /opt/inno-lcm-core.
Пример конфигурационного файла:
#Настройка БД
quarkus.datasource."lcm-db".username=lcmadmin
quarkus.datasource."lcm-db".password=lcmpassword
quarkus.datasource."lcm-db".jdbc.url=jdbc:postgresql://10.6.32.156:5432/lcm
quarkus.datasource."lcm-db".reactive.url=postgresql://10.6.32.156:5432/lcm
quarkus.liquibase."lcm-db".default-schema-name=lcm
#Синхронизация пользователей и ресурсов c LDAP-сервера
lcm.inventory.ldap.datasource[0].name=lcm-1583.terra.inno.tech
lcm.inventory.ldap.datasource[0].host=10.6.32.204
lcm.inventory.ldap.datasource[0].port=636
lcm.inventory.ldap.datasource[0].username=Administrator@lcm-1583.terra.inno.tech
lcm.inventory.ldap.datasource[0].password=Welkom123
lcm.inventory.ldap.datasource[0].ssl=true
lcm.inventory.ldap.datasource[0].ssl-certificate=/opt/inno-lcm-core/samba_cert.pem
lcm.inventory.ldap.datasource[0].connect-timeout-millis=10000
lcm.inventory.ldap.datasource[0].response-timeout=10000
lcm.inventory.ldap.datasource[0].abandon-on-timeout=true
lcm.inventory.ldap.datasource[0].allow-concurrent-socket-factory-use=true
lcm.inventory.ldap.datasource[0].query-prefix=CN=Users
lcm.inventory.ldap.datasource[0].base-dn=DC=lcm-1583,DC=terra,DC=inno,DC=tech
lcm.inventory.job.sync-users.cron.expr=0 0 12 * * ?
lcm.inventory.ldap.search-page-size=500
#Интеграция с Kafka
mp.messaging.incoming.salt-events-kafka.bootstrap.servers=10.6.32.156:9092
mp.messaging.incoming.salt-events-kafka.topic=salt-topic
mp.messaging.incoming.salt-events-kafka.partitions=5
#Интеграция с S3
lcm.salt-adapter.s3.server-uri=http://10.6.32.156:9000
lcm.salt-adapter.s3.access-key-id=minioadmin
lcm.salt-adapter.s3.secret-access-key=minioadmin123
lcm.salt-adapter.s3.region=ru-location-1
lcm.multimedia.s3.server-uri=http://10.6.32.156:9000
lcm.multimedia.s3.icons-bucket-name=icons-bucket
lcm.multimedia.s3.images-bucket-name=images-bucket
lcm.multimedia.s3.others-bucket-name=others-bucket
lcm.multimedia.s3.access-key-id=minioadmin
lcm.multimedia.s3.secret-access-key=minioadmin123
#Интеграция с SaltStack
lcm.salt-adapter.command-runner.http-scheme=http
lcm.salt-adapter.command-runner.master-api-port=8000
lcm.salt-adapter.command-runner.global-auth.eauth=pam
lcm.salt-adapter.command-runner.global-auth.login=salt_api
lcm.salt-adapter.command-runner.global-auth.password=salt123
lcm.salt-adapter.command-runner.override-masters[0].id=lr-439601-ma-1
lcm.salt-adapter.command-runner.override-masters[0].uri=http://10.6.32.238:8000
lcm.inventory.job-sync-collection-pillars.cron.expr=0 0/15 * ? * * *
#Логирование
quarkus.log.file.enable=true
quarkus.log.file.path=application.log
quarkus.log.file.rotation.max-backup-index=5
quarkus.log.file.rotation.max-file-size=10M
#Аутентификация
lcm.application.auth.disabled=false
quarkus.kerberos.debug=true
quarkus.kerberos.service-principal-name=lcm_backend_svc
quarkus.kerberos.service-principal-password=Qwerty123
quarkus.kerberos.service-principal-realm=LCM.TERRA.INNO.TECH
#Лимиты категорий ПО
lcm.catalog.category.specification-limit=5
lcm.catalog.category.total-limit=15
В разделах ниже приводится описание логических блоков параметров из файла.
| Наименование | Описание | Значение по умолчанию | Пример значения |
|---|---|---|---|
|
Имя пользователя для подключения к БД |
|
|
|
Пароль пользователя для подключения к БД |
|
|
|
Адрес подключения к БД. Формат: |
|
|
|
Адрес подключения серверной части продукта к БД. Формат: |
|
|
|
Имя схемы данных |
|
|
Нумерация массива Параметры подключения к домену №2 аналогичны параметрам домена №1. Пример:
|
| Наименование | Описание | Значение по умолчанию | Пример значения | ||
|---|---|---|---|---|---|
|
Имя домена |
|
|||
|
IP-адрес или сетевое имя контроллера домена |
|
|||
|
Порт для соединения по протоколу LDAP. Опциональный параметр |
|
|
||
|
Имя пользователя для подключения к домену LDAP-сервера. Может быть указано в одном из следующих форматов:
|
|
|||
|
Пароль пользователя для подключения к домену LDAP-сервера |
|
|||
|
Параметр, отвечающий за соединение по протоколу LDAP over SSL (LDAPS). Возможные значения:
Опциональный параметр |
|
|
||
|
Относительный или абсолютный путь к файлу с сертификатом для подключения через LDAPS. Опциональный параметр |
|
|
||
|
Максимальная длительность подключения к LDAP-серверу в миллисекундах. Значение |
|
|
||
|
Максимальная длительность выполнения запроса к LDAP-серверу в миллисекундах. Значение |
|
|
||
|
Параметр, который отвечает за освобождение соединения в случае превышения максимальной длительности ожидания запроса.
Возможные значения: |
|
|
||
|
Параметр, указывающий, разрешать ли использование экземпляра фабрики сокетов (который может совместно использоваться несколькими соединениями) для одновременного создания нескольких сокетов |
|
|
||
|
Параметр для указания исходной директории для сканирования пользователей LDAP-сервера. Итоговое значение предиката поиска пользователей: "${cm.inventory.ldap.datasource[].query-prefix},${lcm.inventory.ldap.datasource[].base-dn}"
|
CN=Users |
|||
|
Базовое имя домена для поиска пользователей в формате записи LDAP |
|
|||
|
Максимальное количество пользователей, которое будет возвращаться в ответ на один запрос синхронизации с LDAP-сервером. Чем больше значение, тем больше данных LDAP-серверу необходимо обработать в рамках одного запроса. Чем меньше значение, тем дольше будет выполняться синхронизация |
|
|
||
|
Cron-выражение в формате Quartz для настройки запуска синхронизации пользователей LDAP.
|
|
|
| Наименование | Описание | Значение по умолчанию | Пример значения |
|---|---|---|---|
|
Адрес сервера для подключения к брокеру Apache Kafka, который будет использоваться для получения сообщений |
|
|
|
Топик Apache Kafka, из которого будут поступать сообщения |
|
|
| Наименование | Описание | Значение по умолчанию | Пример значения |
|---|---|---|---|
|
URI для подключения к S3-совместимому хранилищу, в котором будут храниться файлы для SaltStack |
|
|
|
Идентификатор ключа (access Key) S3-совместимого хранилища |
|
|
|
Секретный ключ (Secret Key) S3-совместимого хранилища |
|
|
|
Название региона S3 |
|
|
|
URI для подключения к S3-совместимому хранилищу, в котором будут храниться мультимедиа-файлы LCM (иконки, скриншоты) |
|
|
|
Название бакета S3 для хранения иконок |
|
|
|
Название бакета S3 для хранения изображений и скриншотов |
|
|
|
Название бакета S3 для хранения прочего контента |
|
|
|
Ключ доступа к сервису S3 (логин) |
|
|
|
Секретный ключ для доступа к сервису S3 (пароль) |
|
|
| Наименование | Описание | Значение по умолчанию | Пример значения | ||
|---|---|---|---|---|---|
|
Протокол, который будет использоваться для отправки HTTP-запросов между компонентами
Salt Adapter и Command Runner модуля координации. Возможные значения: |
|
|||
|
Порт, на котором будет запущен API-модуль сервера управления (master) |
|
|||
|
Тип аутентификации для запросов. Возможные значения:
|
|
|||
|
Логин для подключения к серверу управления (master) |
|
|||
|
Пароль для подключения к серверу управления (master) |
|
|||
|
Имя машины, на которой установлен сервер управления (master) |
|
|||
|
Полный адрес API-модуль сервера управления (master), указанного в параметре |
||||
|
Cron-выражение в формате quartz, которое задает частоту синхронизации состава коллекций на бэкенде LCM и на сервере управления (master) (см. описание формата в разделе «Cron-выражение формата Quartz» документа «Руководство по эксплуатации») |
|
|
| Наименование | Описание | Значение по умолчанию | Пример значения |
|---|---|---|---|
|
Активация логирования в файл |
|
|
|
Путь для сохранения файлов с логами продукта |
|
|
|
Предельное количество сохраняемых файлов с логами при ротации |
|
|
|
Максимальный размер одного файла с логами, после чего будет произведена ротация (создан следующий файл и продолжена запись) |
|
|
| Наименование | Описание | Значение по умолчанию | Пример значения |
|---|---|---|---|
|
Группы пользователей через запятую, которым выдается доступ на выполнение определенных операций в кабинете администратора |
CN=PlusUltra,CN=Users,DC=lcm,DC=terra,DC=inno,DC=tech |
|
|
Полное отключение аутентификации. При установленном значении |
|
|
|
Включение/выключение отправки сообщений для отладки Kerberos |
|
|
|
Имя принципала |
|
|
|
(Опциональный параметр) пароль принципала. С точки зрения безопасности рекомендуется не использовать этот параметр,
а использовать keytab-файл для аутентификации в домене (см. параметр |
|
|
|
(Опциональный параметр) путь к keytab-файлу, который содержит зашифрованные ключи и сертификаты, необходимые для аутентификации в домене |
|
|
|
Наименование области безопасности (realm) принципала |
|
| Наименование | Описание | Значение по умолчанию | Пример значения |
|---|---|---|---|
|
Максимальное количество категорий ПО для одной конфигурации |
|
|
|
Максимальное количество категорий ПО в магазине приложений |
|
|
Вы можете выполнить установку бэкенда как на отдельном сервере, так и на сервере вместе с фронтендом
LCM. Для этого установите пакет inno-lcm-core, выполнив команду:
sudo apt install ./<пакет>
Пример:
sudo apt install ./inno-lcm-core_1.3.0-1_amd64.deb
После успешной установки пакета будет прочитан файл с конфигурацией, а также создана и запущена systemd-служба lcm.
Для проверки статуса запуска службы используйте команду:
systemctl status lcm
В случае успешного запуска система вернет ответ:
systemctl status lcm
● lcm.service
Loaded: loaded (/etc/systemd/system/lcm.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2024-01-24 19:24:40 MSK; 22h ago
Main PID: 7894 (inno-lcm-core)
Tasks: 53 (limit: 19048)
Memory: 926.0M
CGroup: /system.slice/lcm.service
└─7894 /opt/inno-lcm-core/bin/inno-lcm-core
Где в поле Active указано значение active (running).
В случае неуспешного запуска поле Active будет содержать иное значение.
Проверьте логи системы (см. раздел «Рекомендации по сбору и предоставлению информации о проблеме/ошибке»
документа «Руководство по эксплуатации»).
Вы можете выполнить установку фронтенда как на отдельном сервере, так и на сервере вместе с бэкендом LCM.
Фронтенд LCM включает два отдельных модуля:
inno-lcm-webadmin — «Кабинет администратора»;
inno-lcm-app-shop — «Магазин приложений».
Каждый модуль устанавливается отдельно с помощью одноименного deb-пакета. Модули устанавливаются одинаково.
Установите пакеты inno-lcm-webadmin и inno-lcm-app-shop, выполнив команду:
sudo apt install ./<имя пакета>
Пример:
sudo apt install ./inno-lcm-webadmin_1.3.3-1_all.deb sudo apt install ./inno-lcm-app-shop_1.2.0-1_all.deb
Для проверки статуса установки выполните команду:
apt list | grep "<имя модуля>"
Пример:
apt list | grep "inno-lcm-webadmin" apt list | grep "inno-lcm-app-shop"
В случае успешной установки система вернет ответ:
inno-lcm-webadmin/1.7_x86-64,now 1.3.5 all [установлен]
В случае неуспешной установки проверьте логи системы (см. раздел «Рекомендации по сбору и предоставлению информации о проблеме/ошибке» документа «Руководство по эксплуатации»).
После установки deb-пакетов файлы для веб-сервера будут помещены в каталоги:
/var/www/lcm-web-ui;
/var/www/lcm-app-shop-ui.
Для корректной работы модулей настройте веб-сервер. Для этого создайте необходимые конфигурационные файлы и переопределите в них значения параметров.
В зависимости от используемого веб-сервера процедура настройки может незначительно отличаться, но конфигурационные файлы являются идентичными для каждого из модулей.
Ниже в качестве примера рассмотрена конфигурация веб-сервера для модуля inno-lcm-webadmin.
Пример файла:
server {
listen 80;
listen [::]:80;
server_name domain-of-your-lcm-web-ui.vpn.company.com;
root /var/www/lcm-web-ui;
index index.html;
error_log /var/log/nginx/error.log debug;
access_log /var/log/nginx/access.log;
location / {
try_files $uri $uri/ /index.html;
}
location /api {
set $backend_uri http://127.0.0.1:8081;
rewrite ^\/api(\/.*)$ $1 break;
proxy_pass $backend_uri;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name domain-of-your-lcm-web-ui.vpn.company.com;
root /var/www/lcm-web-ui;
index index.html;
ssl_certificate /etc/certs/MY_CRT;
ssl_certificate_key /etc/certs/MY_KEY;
error_log /var/log/nginx/error.log debug;
access_log /var/log/nginx/access.log;
location / {
try_files $uri $uri/ /index.html;
}
location /api {
set $backend_uri http://127.0.0.1:8081;
rewrite ^/api(/.*)$ $1 break;
proxy_pass $backend_uri;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Где:
listen — настраивает прослушивание портов на сервере;
server_name — доменное имя, которое будет обслуживаться сервером;
root — указывает директорию, в которой находятся статические файлы, отображаемые при запросе корневой директории;
index — задает стандартный файл, который будет отображаться при запросе корневой директории;
ssl_certificate — указывает SSL-сертификат для обеспечения безопасного соединения;
ssl_certificate_key — определяет путь к файлу приватного ключа SSL-сертификата;
error_log — указывает файл логов для логирования ошибок;
access_log — указывает файл логов для логирования ошибок доступа;
location / — указывает веб-серверу на поиск запрашиваемых файлов в директории root; и если файл будет не найден,
указывает на файл index.html.
location /api — настраивает проксирование запросов к API-серверу;
proxy_pass — директива, перенаправляющая запросы к /api на указанный бэкенд;
proxy_set_header — директива, устанавливающая необходимую информацию в заголовках запроса.
Чтобы задать рабочую конфигурацию, выполните действия:
Создайте конфигурационный файл, выполнив команду:
vi /etc/nginx/sites-available/lcm-web-ui.conf
Для передачи данных по HTTP переопределите значения только в первом блоке server; для передачи по
HTTPS — также переопределите значения во втором блоке.
|
В первом блоке server в поле server_name укажите имя домена.
В первом блоке server в поле location /api задайте адрес обращения к бэкенду.
(Опционально) во втором блоке server в поле server_name укажите имя домена.
(Опционально) во втором блоке server в поле location /api задайте адрес обращения к бэкенду.
(Опционально) в поле ssl_certificate укажите SSL-сертификат для обеспечения безопасного соединения.
(Опционально) в поле ssl_certificate_key задайте путь к файлу приватного ключа SSL-сертификата.
Активируйте файл в конфигурации веб-сервера, создав для него символическую ссылку в каталоге /etc/nginx/sites-enabled/:
ln -s /etc/nginx/sites-available/lcm-web-ui.conf /etc/nginx/sites-enabled/
Перезапустите веб-сервер, выполнив команду:
systemctl restart nginx.service
Убедитесь, что веб-сервер успешно работает, выполнив команду:
systemctl status nginx.service
В случае успешного запуска система вернет ответ:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2024-02-09 16:21:31 MSK; 4s ago
Docs: man:nginx(8)
Process: 23739 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 23740 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 23741 (nginx)
Tasks: 3 (limit: 4653)
Memory: 2.2M
CGroup: /system.slice/nginx.service
├─23741 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
├─23742 nginx: worker process
└─23743 nginx: worker process
фев 09 16:21:31 lr-441246-cm-1 systemd[1]: Starting A high performance web server and a reverse proxy server...
фев 09 16:21:31 lr-441246-cm-1 systemd[1]: Started A high performance web server and a reverse proxy server.
В качестве дополнительной простой проверки вы можете выполнить запрос посредством утилиты curl на доменное имя,
указанное в параметре server_name:
curl -I domain-of-your-lcm-web-ui.vpn.company.com HTTP/1.1 200 OK Server: nginx/1.22.1 Date: Fri, 09 Feb 2024 13:32:44 GMT Content-Type: text/html Content-Length: 551 Last-Modified: Tue, 06 Feb 2024 12:20:20 GMT Connection: keep-alive ETag: "65c22404-227" Accept-Ranges: bytes
Cлужба каталогов, которая используется в среде Windows Server для управления пользователями, компьютерами и другими ресурсами в доменной сети. Она обеспечивает централизованное управление доступом к ресурсам, авторизацию и аутентификацию пользователей, а также хранение информации о пользователях, группах и других объектах в сети. С помощью службы AD можно настраивать политики безопасности, управлять правами доступа к файлам и папкам, а также создавать и удалять пользователей и группы в сети.
Список отозванных сертификатов. Список сертификатов, которые удостоверяющий центр (Certificate Authority — CA) пометил как отозванные. Используется для проверки действительности сертификата. CRL содержит информацию о сертификатах, которые больше не должны использоваться, например, если они были скомпрометированы или утеряны.
Формат времени, используемый в системах планирования задач в операционных системах Unix и Linux. Этот формат представляет собой строку, которая содержит шесть или семь полей, разделенных пробелами или табуляцией. В каждом поле задано значение времени или даты, когда задача должна быть выполнена. Поля могут содержать любые разрешенные значения, а также различные комбинации разрешенных специальных символов для этого поля.
Формат упаковки программного обеспечения для операционной системы Debian и ее производных, таких
как Ubuntu. Deb-пакет содержит программу или библиотеку, а также информацию о зависимостях и
конфигурации. Он может быть установлен с помощью менеджера пакетов, например, apt-get или dpkg.
Deb-пакеты облегчают установку и обновление программного обеспечения в системе, а также
позволяют управлять зависимостями между пакетами.
Один из стандартов семейства Public-Key Cryptography Standards (PKCS), опубликованных RSA Laboratories.
Формат кодирования данных, который используется для хранения и передачи сертификатов, закрытых ключей, а также других конфиденциальных данных в виде текста. Формат PEM был разработан для безопасной передачи электронной почты, но сейчас широко используется в SSL/TLS-сертификатах и других системах безопасности.
Уникальное имя для аутентификации службы в рамках протокола Kerberos.
Служебный узел, который управляется с помощью модуля координации. Он может являться физической или виртуальной машиной, контейнером или сетевым устройством. Агент подключается к серверу управления и получает от него команды для выполнения различных задач, таких как установка программного обеспечения, настройка конфигурации или мониторинг состояния системы. Агенту присваивается свой уникальный идентификатор, который используется для идентификации узла на сервере управления.
Сущность LCM, которая представляет собой отдельный файл в формате JSON. Файл загружается в модуль «Кабинет администратора» и позволяет изменять конфигурацию в соответствии с требованиями пользователя. В файле указывается идентификатор версии, мета-атрибуты версии и параметры формулы, доступные для переопределения.
Графический интерфейс администратора для работы с коллекциями пользователей и устройств, настройки конфигураций, постановки задач на исполнение конфигураций, а также отслеживания статуса применения конфигураций к устройствам.
Сущность LCM, которая представляет собой список устройств, сформированный в результате фильтрации всех устройств по атрибутам самих устройств и атрибутам пользователей, ассоциированных с ними. Существуют статические и динамические коллекции. Список устройств в статических коллекциях обновляется только при создании коллекции или администратором вручную. Список устройств в динамических коллекциях обновляется автоматически по заданному расписанию, а также администратором при создании и редактировании.
Сущность LCM, которая представляет собой отдельный файл в формате JSON, содержащий описание набора метаданных для формулы SaltStack. Файл загружается в модуль «Кабинет администратора», и, используя формулу, обеспечивает выполнение установки и настройки системы в соответствии с требованиями пользователя.
Графический интерфейс, посредством которого сотрудники организации могут выполнять автоматизированную установку, удаление и обновление ПО на своих устройствах.
Центральный узел в инфраструктуре управления конфигурацией. Управляет всеми устройствами в инфраструктуре — агентами, отправляет команды на выполнение, хранит конфигурационные данные и предоставляет отчеты о выполнении задач. Также обеспечивает безопасную и защищенную связь между устройствами и сервером управления.
Сущность SaltStack, представляющая собой директорию с файлами состояний (файлы с расширением .sls) в формате YAML. Файлы состояний определяют поведение и конечное состояние системы, которого она должна достичь после применения формулы, и используются для установки, настройки и управления программным обеспечением, настройки сетевых параметров, создания пользователей и др. Виды формул:
готовые — загруженные на сервер готовые к использованию формулы с настройками по умолчанию; при необходимости могут быть переопределены пользователем;
пользовательские — готовые формулы, для корректной работы которых необходимо создать пользовательскую конфигурацию;
формулы-шаблоны — формулы, которые используются в качестве примера для создания собственных формул подобного типа.