Для настройки докер-контейнеров на сервере-локации платформа использует конфигурационный файл /opt/ispsystem/dci/etc/location.yaml. Для описания конфигурации используется формат Docker Compose.
Вы можете изменить конфигурацию с помощью механизма патчей (модификаций). Патчи позволяют добавить в докер-контейнеры файлы, переменные окружения и дополнительные сервисы.
Пример создания патча
В примере рассматривается изменение переменной окружения IMPITOOL_PATH. После выполнения этих действий в докер-контейнере eservice_handler для запуска утилиты ipmitool будет использоваться файл /usr/bin/ipmitool_1.8.19.
- Подключитесь к серверу-локации по SSH.
-
Создайте файл патча patch.yaml следующего содержания:
patch.yamlversion: "3.5" services: eservice_handler: environment: IPMITOOL_PATH: "/usr/bin/ipmitool_1.8.19"
-
Закодируйте содержимое файла patch.yaml по стандарту Base64:
echo -ne "patch.yaml" | base64
Сохраните вывод команды.
Пример выводаcGF0Y2gueWFtbA==
- Получите токен авторизации:
curl -k -X POST -H "accept: application/json" -H "Content-Type: application/json" 'https://domain.com/api/auth/v4/public/token' -d '{"email": "admin_email", "password": "admin_pass"}'
Пояснения к командеВ ответ придёт сообщение вида:
Пример ответа в JSON{ "confirmed": true, "expires_at": null, "id": "6", "token": "4-e9726dd9-61d9-2940-add3-914851d2cb8a" }
Сохраните полученное значение параметра token — токен авторизации.
-
Выполните API-запрос:
curl -k -# -d '{"patches":[{"name":"<patch_name>","patch":"<patch_base64>"}]}' -H "Cookie: ses6=<token>" -H "x-xsrf-token: <token>" -o- "https://domain.com/dci/v3/location/<location_id>/setup"
Пояснения к командеDCImanager 6 запустит настройку локации с учётом созданного патча.
Управление патчами
Вы можете управлять патчами через API-запросы.
curl -k -# -d '{"patches":[{"name":"<patch1_name>","patch":"<patch1_base64>"},{"name":"<patch2_name>","patch":"<patch2_base64>"},{"name":"<patch3_name>","patch":"<patch3_base64>"}]}' -H "Cookie: ses6=<token>" -H "x-xsrf-token: <token>" -o- "https://domain.com/dci/v3/location/<location_id>/setup"
curl -k -# -X GET -H "Cookie: ses6=<token>" -H "x-xsrf-token: <token>" -o- "https://domain.com/dci/v3/location/<location_id>"
Вывод команды будет содержать параметр patches с данными о патчах.
curl -k -# -d '{"patches":[]}' -H "Cookie: ses6=<token>" -H "x-xsrf-token: <token>" -o- "https://domain.com/dci/v3/location/<location_id>/setup"
Управление модифицированными контейнерами
Для запуска и остановки модифицированных контейнеров на сервере-локации используйте скрипт /opt/ispsystem/dci/etc/location_compose.sh. Платформа формирует скрипт автоматически и включает туда информацию обо всех патчах, которые нужно запустить на локации. Если не использовать скрипт, то при перезапуске контейнеров текущие патчи удалятся.
/opt/ispsystem/dci/etc/location_compose.sh up -d
/opt/ispsystem/dci/etc/location_compose.sh down