Чтобы хост работал с сервисом Управление ПО, на нем должен быть установлен агент — специальная утилита, которая передает сервису данные о хосте, может выполнять обновления и применять политики.
С помощью Ansible можно управлять агентом сразу на нескольких хостах, в том числе на хостах с разными ОС.
Проверьте, что виртуальные машины или физические серверы соответствуют требованиям, необходимым для подключения к сервису.
Получите идентификатор проекта и запишите его, он понадобится далее.
Назначьте роль vmmanager.admin пользователю или сервисному аккаунту, который будет управлять программным обеспечением на хостах и просматривать их данные.
Получите ключи доступа сервисного аккаунта. Запишите Key ID (логин) и Key Secret (пароль), они понядобятся далее.
Проверьте сетевое соединение между хостами и следующими сервисами:
Личным кабинетом — https://console.cloud.ru.
Системой Identity and Access Management — https://id.cloud.ru.
Репозиторием, откуда будет скачан агент — https://vmmanager-osconfig.api.cloud.ru.
Подключитесь к хосту через SSH, виртуальную или серийную консоль.
Выполните команды:
nc -vz console.cloud.ru 443nc -vz id.cloud.ru 443nc -vz vmmanager-osconfig.api.cloud.ru 443
Если утилита nc недоступна на хосте, используйте curl:
curl -I https://console.cloud.ru 2>/dev/null | head -n 1curl -I https://id.cloud.ru 2>/dev/null | head -n 1curl -I https://vmmanager-osconfig.api.cloud.ru 2>/dev/null | head -n 1
Каждая проверка должна вернуть HTTP/2 200 или HTTP/1.1 200 OK.
Повторите для каждого хоста, на который планируете установить агент.
Один из хостов будет использоваться в качестве Ansible-контроллера: все изменения и конфигурации будут устанавливаться на нем, а затем разворачиваться на все хосты. Обычно это виртуальная машина с OC Linux.
Подключитесь к этому хосту и установите Ansible, если он еще не установлен.
Дальшнейшие действия инструкции должны выполняться с этого хоста.
Установите роль vmmanager с помощью утилиты ansible-galaxy:
ansible-galaxy role install --roles-path . https://vmmanager-osconfig.api.cloud.ru/ansible/vmmanager.tar.gz
Синтаксис команды одинаков для Linux и Windows.
Создайте плейбук Ansible.
Вы также можете добавть необходимые параметры в существующий плейбук.
Для этого создайте файл playbook.yaml и добавьте в него код:
- name: Install VM Agent examplehosts: allbecome: trueroles:- role: vmmanagervars:vmmanager_iam_url: "https://id.cloud.ru"vmmanager_console_url: "https://console.cloud.ru"vmmanager_project_id: 'f02f856a-735b-4de0-9cc6-6cb26c000000'vmmanager_client_id: 'b0bc96f777605af13e2c5f266666666'vmmanager_client_secret: '8b47152b88881cfdd40e4f3f42b88888'## optional variables# vmmanager_agent_additional_opts:# instance:# attributes:# osconfig-disabled-features: "tasks"# vmmanager_reset_host: `false`
Переменные роли, которые определяют настройку, указаны в таблице:
Переменная | Описание |
|---|---|
vmmanager_iam_url | URL системы Identity and Access Management — https://id.cloud.ru. |
vmmanager_console_url | URL личного кабинета — https://console.cloud.ru. |
vmmanager_project_id | ID проекта, из которого нужно управлять подключаемыми хостами. |
vmmanager_client_id | Key ID (логин) ключа доступа для аутентификации в API Cloud.ru. |
vmmanager_client_secret | Key Secret (пароль) ключа доступа для аутентификации в API Cloud.ru. |
vmmanager_agent_additional_opts (опционально) | Дополнительные опции запуска агента. Если указано osconfig-disabled-features: "tasks", ПО инвентаризируется, но обновлять его и применять политики будет нельзя. |
vmmanager_reset_host (опционально) | Сброс конфигурации агента на хосте. По умолчанию false. Если указано true, агент, конфигурационные файлы и регистрация хоста будут удалены. |
Создайте файл инвентаризации inventory.yaml с описанием хостов, на которые нужно установить агент, и параметров подключения к ним:
all:hosts:host1.example.com:ansible_user: ubuntuansible_ssh_private_key_file: ~/.ssh/vm_key.pemhost2.example.com:ansible_user: root
Где:
host1.example.com — DNS-имя хоста. Для IP-адреса замените на ansible_host: 10.0.0.15.
ansible_user — пользователь для подключения по SSH.
ansible_ssh_private_key_file — путь к приватному ключу, если используется аутентификация по ключу.
Допускается сочетание хостов Linux и Windows в одном файле инвентаризации.
Запустите плейбук:
ansible-playbook -i inventory.yml playbook.yml
Где:
inventory.yml — файл инвентаризации (список хостов).
playbook.yml — файл плейбука.
Подключенные хосты появятся в списке на вкладке Виртуальные машины. Теперь вы можете просматривать информацию о них и применять политики.