Общие сведения
В общем случае процесс установки состоит из следующих этапов:
Установка выполняется с использованием дистрибутива продукта «Служба управления конфигурациями» от ГК «Иннотех».
Состав дистрибутива
Дистрибутив продукта «Служба управления конфигурациями» включает модули:
-
inno-lcm-core— сборка бэкенда LCM, содержащая скомпилированный код для обработки заявок (Orders), массовой установки ПО на АРМ и обработки событий, полученных от АРМ; -
lcm-web-ui— пользовательский интерфейс администиратора; -
salt-formulas-package— пакет с формулами для установки ПО на АРМ с использованием SaltStack; -
CHANGELOG.md— файлchangelog, содержащий журнал изменений проекта в виде упорядоченного списка версий продукта с датами их выхода и описанием; -
lcm-doc— сопроводительная документация, соответствующая версии продукта.
Требования к программному обеспечению
Требования к системному и прикладному программному обеспечению приведены в таблице ниже.
| Название | Описание | Версия | Тип лицензии | Правообладатель | ||
|---|---|---|---|---|---|---|
Astra Linux Special Edition |
Операционная система на базе Linux.
|
1.7 и выше |
GNU General Public License |
ООО «РусБИТехАстра» |
||
LDAP-сервер |
Сервер, который предоставляет доступ к каталогу объектов, таких как пользователи, группы, компьютеры и другие ресурсы в сети.
|
|
GPL-2.0 license |
Open Source |
||
PostgreSQL |
СУБД для хранения и обработки данных продукта |
Не ниже 14.0 |
PostgreSQL Licence |
Open source |
||
SaltStack |
Система управления конфигурацией и автоматизации операций в ИТ-инфраструктуре |
Не ниже 3005.1 |
Apache 2.0 |
Open Source |
||
systemd |
Подсистема инициализации и управления службами в Linux, которая используется для установки Deb-пакетов |
245 и выше |
GPL-2.0 license |
Open Source |
Предварительные требования
-
Убедитесь, что установлено требуемое прикладное программное обеспечение.
-
Убедитесь, что на вашем сервере установлен SaltStack (при необходимости, следуйте инструкции по установке на официальном сайте SaltStack). Для SaltStack должен быть включен модуль
salt-apiдля доступа к Мастеру через REST API.
Настройка SaltStack
Настройка SaltStack состоит из следующих этапов:
Настройка конфигурации Мастера и Миньонов
Salt-Мастер настраивается через главный файл конфигурации.
По умолчанию файл конфигурации хранится в директории /etc/salt/master.
В данном файле необходимо выполнить настройку, которая обеспечит трансляцию
событий на узел Master of Masters (MoM): syndic_forward_all_events: True.
Salt-Миньон настраивается через файл конфигурации.
По умолчанию файл конфигурации хранится в директории /etc/salt/minion.
Подробную информацию см. в официальной документации.
Создание хранилища Pillar
В директорию /master/roots/pillar добавьте файлы:
-
top.sls— основной файл конфигурации:base: "*": - state-highstate-schedule - grains-common-schedule -
grains-common-schedule.sls— задает расписание запуска выполнения задач на Миньонахschedule: get-common-grains: enabled: true function: grains.item seconds: 120 splay: 10 metadata: get-common-grains: true args: - fqdn - fqdn_ip4 - lsb_distrib_description - cpu_model - disks - domain - hwaddr_interfaces - id - ip4_gw - ip4_interfaces - ip6_interfaces - kernel - kernelrelease - lsb_distrib_codename - master - mem_total - nodename - num_cpus - oscodename - osfullname - osmajorrelease - osrelease - pythonexecutable - saltversion - serialnumber - ssds - swap_totalГде:
-
schedule/get-common-grains/enabled:-
true— задача включена; -
false— задача выключена;
-
-
schedule/get-common-grains/function— задает функцию SaltStack, которая будет вызвана при выполнении задачи; -
schedule/get-common-grains/seconds— определяет, через какой интервал времени будет выполняться задача; -
schedule/get-common-grains/splay— указывает, на какой интервал времени может быть случайная задержка перед выполнением задачи; -
schedule/get-common-grains/metadata/get-common-grains— содержит метаданные задачи; -
args— дополнительные аргументы для функцииgrains.item. -
state-highstate-schedule.sls— задает расписание запуска высокоуровневых состояний (highstate) на Миньонах:
schedule: apply-state-highstate: enabled: true run_on_start: true function: state.highstate seconds: 180 splay: 30 metadata: apply-state-highstate: trueПример:
tree /srv/pillar/ /srv/pillar/ ├── grains-common-schedule.sls ├── state-highstate-schedule.sls └── top.sls -
Добавление формул
-
В файле
file_roots.conf, который определяет корневую директорию для файловых серверов Salt, укажите путь к файлам конфигурации:Пример:
file_roots: base: - /home/salt/data/srv/salt - /home/salt/data/formulas/ark-formula - /home/salt/data/formulas/ca-cert-formula - /home/salt/data/formulas/yandex-browser-formula - /home/salt/data/formulas/deb-repo-formula - /home/salt/data/formulas/google-chrome-formula - /home/salt/data/formulas/okular-formulaФайл конфигурации:
# /srv/salt/top.sls base: '*': - ark-formula - ca-cert-formula - yandex-browser-formula - deb-repo-formula - google-chrome-formula - okular-formula -
Выполните команду, чтобы распаковать архив в директорию
file_rootsбазового окружения (по умолчанию —/srv/salt).Пример:
tar -xvf ~/Downloads/salt-formulas-package-0.5.0.tar.gz \ --strip-components 3 \ -C /srv/salt \ ./formulas/ark-formula/ark \ ./formulas/ca-cert-formula/ca-cert \ ./formulas/okular-formula/okular \ ./formulas/yandex-browser-formula/yandex-browser \ ./formulas/deb-repo-formula/deb-repo \ ./formulas/google-chrome-formula/google-chromeДанная команда распаковывает архив
salt-formulas-package-0.5.0.tar.gz, который содержит формулы SaltStack, в директорию/srv/salt. Опция--strip-components 3указывает на то, что необходимо удалить первые три компонента пути внутри архива (например, если путь внутри архива выглядит как/formulas/ark-formula/ark, то после применения этой опции путь будет выглядеть как./ark). В результате в директории/srv/saltбудет создана поддиректория./formulas/ark-formula/ark, содержащая файлы формулыark-formula.
Установка продукта
Чтобы установить продукт «Служба управления конфигурациями» (далее: LCM), выполните установку модулей:
-
inno-lcm-core; -
lcm-web-ui; -
salt-formulas-package.
Подробнее об установке и настройке модуля salt-formulas-package см. раздел «Настройка SaltStack».
|
Установка модулей inno-lcm-core и lcm-web-ui
Чтобы установить модули inno-lcm-core и lcm-web-ui, сначала установите
на сервере соответствующие Deb-пакеты из apt-репозитория.
|
Примечание.
Имена пакетов формируются по следующему шаблону:
Где:
Пример:
|
Для установки потребуются:
-
файл с публичным ключом для доступа к apt-репозиторию;
-
реквизиты для доступа к apt-репозиторию.
Чтобы установить Deb-пакеты, выполните действия:
-
Поместите файл с параметрами конфигурации
inno-lcm-coreиlcm-web-uiпродукта в директорию/opt/inno-lcm-core/application.properties. Данный файл включает в себя параметры подключения к БД, LDAP-серверу и другие свойства.
| Описание конфигурируемых параметров приведено в разделе «Параметры конфигурации бэкенда продукта». |
-
Добавьте публичный ключ для доступа к apt-репозиторию с пакетом стандартным способом, соответствующим используемому дистрибутиву Linux.
Например, на Astra Linux 1.7 SE или Ubuntu 20.04 используйте стандартную утилиту apt-key:
sudo apt-key add keyfile.pgpПри необходимости установки ключа для проверки подписи исполняемых файлов в защищенном режиме работы Astra Linux 1.7 SE следуйте инструкции в официальной документации. На Ubuntu 22.04 и выше используйте следующую команду (от имени пользователя root):
cat keyfile.gpg | gpg --dearmor > /usr/share/keyrings/innotech-keyring.gpg -
Создайте файл
/etc/apt/auth.conf.d/innotech.confи задайте в нем реквизиты для доступа к репозиторию в стандартном формате:machine <repo_host> login <repo_user> password <repo_password> -
Подключите требуемый apt-репозиторий в соответствии с инструкциями для используемого дистрибутива Linux (см., например, инструкцию в официальной документации Astra Linux).
Например, при использовании дистрибутива на основе Debian выполните следующую команду:
echo -e "deb [trusted=yes] https://nexus.inno.tech/repository/vtb-astra-apt-packages 1.7_x86-64 main" | sudo tee /etc/apt/sources.list.d/innotech.list -
Обновите пакеты с помощью стандартной команды.
Например, при использовании дистрибутива на основе Debian выполните следующую команду:
sudo apt update && sudo apt dist-upgrade -y -
Установите пакет
inno-lcm-core, выполнив команду:sudo apt -f -y install inno-lcm-core -
Установите пакет
lcm-web-ui, выполнив команду:sudo apt -f -y install lcm-web-ui
После успешной установки пакета:
-
Распакован архив пакета.
-
Прочитан файл с конфигурацией.
-
Создана systemd-служба
lcm. -
Запущена служба
lcm.
Чтобы проверить статус запуска службы lcm, выполните команду:
systemctl status lcm
Параметры конфигурации бэкенда продукта
В таблице ниже приведено описание конфигурационных параметров бэкенда продукта.
| Наименование | Описание | Пример значения |
|---|---|---|
|
Имя продукта, с которым оно будет запущено |
|
|
Порт, на котором работает LCM Rest API |
|
|
Активация логирования в файл. Значение по умолчанию — |
|
|
Путь для сохранения файлов с логами продукта. Значение по умолчанию — |
|
|
Формат записи логов в файл. Значение по умолчанию — |
|
|
Предельное количество сохраняемых файлов с логами при ротации. Значение по умолчанию — |
|
|
Максимальный размер одного файла с логами, после чего будет произведена ротация (создан следующий файл и продолжена запись).
Значение по умолчанию — |
|
|
Активация ротации при запуске продукта. Если 'true', то при запуске будет создан новый файл с логами.
Значение по умолчанию — |
|
|
Максимальное количество элементов, которое содержится в запросе к модулю |
|
|
Имя пользователя для подключения к схеме |
|
|
Пароль пользователя для подключения к схеме |
|
|
Параметр для подключения DB-client, применяемого в модуле |
|
|
Параметр для подключения Liquibase. Формат аттрибута: |
|
|
Максимальный размер пула |
|
|
Запуск миграции Liquibase для схемы |
|
|
Имя пользователя для подключения к схеме |
|
|
Пароль пользователя для подключения к схеме |
|
|
Параметр для подключения |
|
|
Параметр для подключения Liquibase. Формат аттрибута: |
|
|
Максимальный размер пула |
|
|
Запуск миграции Liquibase для схемы |
|
|
Имя пользователя для подключения к схеме |
|
|
Пароль пользователя для подключения к схеме |
|
|
Параметр для подключения DB-client, применяемого в модуле |
|
|
Параметр для подключения Liquibase. Формат аттрибута: |
|
|
Максимальный размер пула |
|
|
Запуск миграции Liquibase для схемы |
|
|
Cron-выражение для настройки запуска синхронизации пользователей LDAP |
|
|
Имя пользователя для подключения к схеме |
|
|
Пароль пользователя для подключения к схеме |
|
|
Параметр для подключения DB-client, применяемого в модуле inventory продукта. Формат аттрибута: |
|
|
Параметр для подключения liquibase. Формат аттрибута: |
|
|
Максимальный размер пула |
|
|
Запуск миграции Liquibase для схемы |
|
|
Максимальное количество пользователей для одной итерации синхронизации с LDAP |
|
|
Условное обозначение домена |
|
|
IP-адрес или сетевое имя контроллера домена |
|
|
Порт для соединения по протоколу LDAP. Опциональный параметр. Значение по умолчанию — |
|
|
Имя пользователя, которое будет использовано для подключения к домену MS AD. Может быть указано в одном из следующих форматов:
|
|
|
Пароль пользователя для подключения к домену MS AD |
|
|
Параметр, отвечающий за соединение по протоколу LDAP over SSL (LDAPS). Возможные значения:
Опциональный параметр, Значение по умолчанию — |
|
|
Относительный или абсолютный путь к файлу с сертификатом для подключения через LDAPS.
Опциональный параметр. Значение по умолчанию — |
|
|
Базовое имя домена для поиска пользователей в формате записи LDAP |
|
|
Максимальная длительность подключения к LDAP серверу в миллисекундах. Значение |
|
|
Максимальная длительность выполнения запроса к LDAP серверу в миллисекундах. Значение |
|
|
Отвечает за освобождение соединения в случае превышения максимальной длительности ожидания запроса.
Возможные значения: |
|
|
Указывает, разрешать ли использование экземпляра фабрики сокетов (который может совместно использоваться
несколькими соединениями) для одновременного создания нескольких сокетов. Как правило, реализации фабрики
сокетов являются потокобезопасными и могут создавать несколько соединений одновременно в отдельных потоках.
В некоторых реализациях виртуальных машин (например, фабрики сокетов SSL в IBM JVM) этот параметр может
использоваться, чтобы указать, следует ли разрешить одновременные попытки создания сокета
(что может обеспечить лучшую и более стабильную производительность, особенно в случаях, когда попытка подключения
не удалась из-за тайм-аута) или предотвратить (что может быть необходимо для непотокового реализации фабрики сокетов).
Опциональный параметр. Значение по умолчанию — |
|
Нумерация массива lcm.inventory.ldap.datasource начинается с 0.
|
|
Параметры подключения к домену №2 аналогичны параметрам домена №1:
|
Получение сертификата SSL для осуществления синхронизации пользователей по протоколу LDAPS
Для отображения сертификата выполните команду в консоли:
openssl s_client -showcerts -connect <active_directory_domain_controller_address>:<ldap_ssl_port>
Пример:
openssl s_client -showcerts -connect 10.169.20.3:636
Полученный сертификат вставьте в файл, указанный в параметре lcm.inventory.ldap.datasource[i].ssl-certificate.
Ниже приведен пример формата файла с сертификатом SSL:
-----BEGIN CERTIFICATE-----
MIIGAzCCA+ugAwIBAgITPgAA73OOkh5tlMKRpwAAAADvczANBgkqhkiG9w0BAQwF
#....
3tC+mTiQEgt99WnACQHV9E9CN4Nhvj8PoTvoZxstCz2QMgw3p9F2wm/4n4aBOTei
kNsrtXOXsA==
-----END CERTIFICATE-----
Настройка фронтенда продукта
Для настройки фронтенда выполните следующие шаги:
-
При установке продукта задайте адрес для обращения к бэкенду продукта в конфигурационном файле Nginx CI-процесса. Путь к конфигурационному файлу:
/etc/nginx/site-available/lcm-web-ui.Пример:
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; } } -
После того как вы укажете необходимый адрес, чтобы применить изменения, перезапустите Nginx-сервер, выполнив команду:
service nginx restart
Глоссарий
- Active Directory
-
Cлужба каталога, которая используется в среде Windows Server для управления пользователями, компьютерами и другими ресурсами в доменной сети. Она обеспечивает централизованное управление доступом к ресурсам, авторизацию и аутентификацию пользователей, а также хранение информации о пользователях, группах и других объектах в сети. С помощью службы AD можно настраивать политики безопасности, управлять правами доступа к файлам и папкам, а также создавать и удалять пользователей и группы в сети.
- Deb-пакет (Debian package)
-
Формат упаковки программного обеспечения для операционной системы Debian и ее производных, таких как Ubuntu. Deb-пакет содержит программу или библиотеку, а также информацию о зависимостях и конфигурации. Он может быть установлен с помощью менеджера пакетов, например,
apt-getилиdpkg. Deb-пакеты облегчают установку и обновление программного обеспечения в системе, а также позволяют управлять зависимостями между пакетами.
- Автоматизированное рабочее место (АРМ)
-
Программно-технический комплекс, предназначенный для автоматизации деятельности сотрудника из состава пользователей автоматизированных систем.
- Операционная система (ОС)
-
Программное обеспечение, управляющее компьютерами (включая микроконтроллеры) и позволяющее запускать на них прикладные программы. Предоставляет программный интерфейс для взаимодействия с компьютером, управляет прикладными программами и занимается распределением предоставляемых ресурсов, в том числе между прикладными программами. В широком смысле под операционной системой понимается совокупность ядра операционной системы и работающих поверх него программ и утилит, предоставляющих интерфейс для взаимодействия пользователя с компьютером.
- Программное обеспечение (ПО)
-
Программа или множество программ, используемых для управления компьютером.