Облачная платформаEvolution

Зарегистрировать несколько хостов


Чтобы хост работал с сервисом Управление ПО, на нем должен быть установлен агент — специальная утилита, которая передает сервису данные о хосте, может выполнять обновления и применять политики.

С помощью Ansible можно управлять агентом сразу на нескольких хостах, в том числе на хостах с разными ОС.

Перед началом работы

  1. Проверьте, что виртуальные машины или физические серверы соответствуют требованиям, необходимым для подключения к сервису.

  2. Получите идентификатор проекта и запишите его, он понадобится далее.

  3. Назначьте роль vmmanager.admin пользователю или сервисному аккаунту, который будет управлять программным обеспечением на хостах и просматривать их данные.

  4. Получите ключи доступа сервисного аккаунта. Запишите Key ID (логин) и Key Secret (пароль), они понядобятся далее.

  5. Проверьте сетевое соединение между хостами и следующими сервисами:

    Подключитесь к хосту через SSH, виртуальную или серийную консоль.


    Выполните команды:

    nc -vz console.cloud.ru 443
    nc -vz id.cloud.ru 443
    nc -vz vmmanager-osconfig.api.cloud.ru 443

    Если утилита nc недоступна на хосте, используйте curl:

    curl -I https://console.cloud.ru 2>/dev/null | head -n 1
    curl -I https://id.cloud.ru 2>/dev/null | head -n 1
    curl -I https://vmmanager-osconfig.api.cloud.ru 2>/dev/null | head -n 1

    Каждая проверка должна вернуть HTTP/2 200 или HTTP/1.1 200 OK.

    Повторите для каждого хоста, на который планируете установить агент.

  6. Один из хостов будет использоваться в качестве Ansible-контроллера: все изменения и конфигурации будут устанавливаться на нем, а затем разворачиваться на все хосты. Обычно это виртуальная машина с OC Linux.

    Подключитесь к этому хосту и установите Ansible, если он еще не установлен.

    Дальшнейшие действия инструкции должны выполняться с этого хоста.

Порядок действий

  1. Установите роль vmmanager с помощью утилиты ansible-galaxy:

    ansible-galaxy role install --roles-path . https://vmmanager-osconfig.api.cloud.ru/ansible/vmmanager.tar.gz

    Синтаксис команды одинаков для Linux и Windows.

  2. Создайте плейбук Ansible.

    Примечание

    Вы также можете добавть необходимые параметры в существующий плейбук.

    Для этого создайте файл playbook.yaml и добавьте в него код:


    - name: Install VM Agent example
    hosts: all
    become: true
    roles:
    - role: vmmanager
    vars:
    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, агент, конфигурационные файлы и регистрация хоста будут удалены.

  3. Создайте файл инвентаризации inventory.yaml с описанием хостов, на которые нужно установить агент, и параметров подключения к ним:


    all:
    hosts:
    host1.example.com:
    ansible_user: ubuntu
    ansible_ssh_private_key_file: ~/.ssh/vm_key.pem
    host2.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 в одном файле инвентаризации.

  4. Запустите плейбук:

    ansible-playbook -i inventory.yml playbook.yml

    Где:

    • inventory.yml — файл инвентаризации (список хостов).

    • playbook.yml — файл плейбука.

Результат

Подключенные хосты появятся в списке на вкладке Виртуальные машины. Теперь вы можете просматривать информацию о них и применять политики.