Вы можете добавить в платформу собственный репозиторий скриптов. В качестве репозитория может использоваться выделенный или виртуальный сервер.
Порядок добавления
Чтобы создать собственный репозиторий скриптов:
- На сервере для репозитория:
- Установите и настройте веб-сервер.
- Создайте директорию для репозитория. Директория должна быть доступна для внешних подключений по HTTP. Например, /var/www/html/recipes/.
- Скопируйте файлы скриптов в директорию для репозитория.
-
Создайте в директории для репозитория файл metadata.json с описанием скриптов:
Пример файла metadata.json{ "type": "recipe", "recipe": [ { "name": "ForLinux", "tags": [ "linux" ], "description": "script1", "file_name": "script1.sh", "updated_at": "2020-05-15 12:01:12" }, { "name": "ForWindows", "tags": [ "windows" ], "description": "script2", "file_name": "script2.ps", "updated_at": "2022-04-14 07:57:13" } ] }
Пояснения к файлу
- Получите токен авторизации:
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 -H 'x-xsrf-token: <token>' -X POST https://localhost/vm/v3/repository -d '{"name":"<repo_name>","url":"<repo_url"}'
Пояснения к команде
Проверка добавления
- Подключитесь к серверу с платформой по SSH.
-
Запросите список репозиториев:
В связи с поэтапным переходом платформы на использование СУБД PostgreSQL, разные экземпляры VMmanager могут использовать разные СУБД:
- VMmanager Hosting — MySQL;
- VMmanager Infrastructure:
- для новых установок на ОС Astra Linux, начиная с версии VMmanager 2023.06.1 — PostgreSQL;
- в остальных случаях — MySQL.
Чтобы определить тип СУБД, выполните на сервере с платформой команду:
docker ps --filter name=pgsql
Пример ответаCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3213c5dc94d0 postgres:12 "docker-entrypoint.s…" 5 days ago Up 4 days 5432/tcp pgsql
Если вывод команды содержит информацию о контейнере, платформа использует PostgreSQL, если ответ пустой — MySQL.
MySQLdocker exec -it mysql bash -c "mysql isp -p\$MYSQL_ROOT_PASSWORD -e \"SELECT name,url FROM vm_repository WHERE type='recipe';\""
PostgreSQLdocker exec -it pgsql bash -c "psql -d isp -c \"SELECT name,url FROM vm_repository WHERE type='recipe';\" "
Пример вывода+-------------------+-------------------------------------------------------+ | name | url | +-------------------+-------------------------------------------------------+ | recipe_repository | http://download.ispsystem.com/OSTemplate/vm6/recipes/ | | My repo | http://example.com/recipes/ | +----+-------------------+--------+-----------------------------------------+
- В интерфейсе платформы:
Обновление списка скриптов
Список скриптов в платформе синхронизируется с репозиторием каждые 15 минут. Чтобы обновить список скриптов вручную:
- Получите токен авторизации:
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 -H 'x-xsrf-token: <token>' -X POST "https://domain.com/vm/v3/repository/<repo_id>/update" -d ''
Пояснения к команде