Поделиться через


Подключение компьютеры в масштабе с помощью сборников схем Ansible

Вы можете подключить управляемые Ansible узлы к серверам с поддержкой Azure Arc в масштабе с помощью сборников схем Ansible. Для этого необходимо скачать, изменить и запустить соответствующую сборник схему.

Прежде чем приступить к работе, ознакомьтесь с данными о необходимых компонентах и убедитесь, что подписка и ресурсы соответствуют требованиям. Сведения о поддерживаемых регионах и других связанных вопросах см. в статье Поддерживаемые регионы Azure. Кроме того, ознакомьтесь с нашим руководством по планированию для больших масштабов, чтобы понять критерии проектирования и развертывания, а также ознакомиться с рекомендациями по управлению и мониторингу.

Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.

Автоматическое подключение для SQL Server

При подключении сервера Windows или Linux к Azure Arc с установленным Microsoft SQL Server экземпляры SQL Server будут автоматически подключены к Azure Arc. SQL Server, включенный Azure Arc , предоставляет подробные возможности инвентаризации и дополнительные возможности управления для экземпляров и баз данных SQL Server. В процессе подключения расширение развертывается на сервере с поддержкой Azure Arc, а новые роли будут применены к SQL Server и базам данных. Если вы не хотите автоматически подключать серверы SQL Server к Azure Arc, можно отказаться, добавив тег на сервер Windows или Linux с именем ArcSQLServerExtensionDeployment и значением Disabled при подключении к Azure Arc.

Дополнительные сведения см. в статье "Управление автоматическим подключением для SQL Server" с поддержкой Azure Arc.

Создание субъекта-службы и сбор сведений о Azure

Прежде чем запустить скрипт для подключения компьютеров, вам потребуется выполнить следующие действия:

  1. Выполните действия, чтобы создать субъект-службу для подключения в масштабе.

    • Назначьте роль подключения Подключение компьютера Azure субъекту-службе и ограничьте область роли целевой подписке или группе ресурсов Azure.
    • Запишите идентификатор клиента субъекта-службы и секрет субъекта-службы; Эти значения потребуются позже.
  2. Соберите сведения о идентификаторе клиента, идентификаторе подписки, группе ресурсов и регионе, где будет подключен ресурс с поддержкой Azure Arc.

Скачивание сборника схем Ansible

При подключении компьютеров к серверам с поддержкой Azure Arc скопируйте следующий шаблон сборника схем Ansible и сохраните сборник схем как arc-server-onboard-playbook.yml.

---
- name: Onboard Linux and Windows Servers to Azure Arc-enabled servers with public endpoint connectivity
  hosts: all
  # vars:
  #   azure:
  #     service_principal_id: 'INSERT-SERVICE-PRINCIPAL-CLIENT-ID'
  #     service_principal_secret: 'INSERT-SERVICE-PRINCIPAL-SECRET'
  #     resource_group: 'INSERT-RESOURCE-GROUP'
  #     tenant_id: 'INSERT-TENANT-ID'
  #     subscription_id: 'INSERT-SUBSCRIPTION-ID'
  #     location: 'INSERT-LOCATION'
  tasks:
  - name: Check if the Connected Machine Agent has already been downloaded on Linux servers
    stat:
      path: /usr/bin/azcmagent
      get_attributes: False
      get_checksum: False
    register: azcmagent_lnx_downloaded
    when: ansible_system == 'Linux'

  - name: Download the Connected Machine Agent on Linux servers
    become: yes
    get_url:
      url: https://aka.ms/azcmagent
      dest: ~/install_linux_azcmagent.sh
      mode: '700'
    when: (ansible_system == 'Linux') and (azcmagent_lnx_downloaded.stat.exists == false)

  - name: Install the Connected Machine Agent on Linux servers
    become: yes
    shell: bash ~/install_linux_azcmagent.sh
    when: (ansible_system == 'Linux') and (not azcmagent_lnx_downloaded.stat.exists)

  - name: Check if the Connected Machine Agent has already been downloaded on Windows servers
    win_stat:
      path: C:\Program Files\AzureConnectedMachineAgent
    register: azcmagent_win_downloaded
    when: ansible_os_family == 'Windows'

  - name: Download the Connected Machine Agent on Windows servers
    win_get_url:
      url: https://aka.ms/AzureConnectedMachineAgent
      dest: C:\AzureConnectedMachineAgent.msi
    when: (ansible_os_family == 'Windows') and (not azcmagent_win_downloaded.stat.exists)

  - name: Install the Connected Machine Agent on Windows servers
    win_package:
      path: C:\AzureConnectedMachineAgent.msi
    when: (ansible_os_family == 'Windows') and (not azcmagent_win_downloaded.stat.exists)

  - name: Check if the Connected Machine Agent has already been connected
    become: true
    command:
     cmd: azcmagent check
    register: azcmagent_lnx_connected
    ignore_errors: yes
    when: ansible_system == 'Linux'
    failed_when: (azcmagent_lnx_connected.rc not in [ 0, 16 ])
    changed_when: False

  - name: Check if the Connected Machine Agent has already been connected on windows
    win_command: azcmagent check
    register: azcmagent_win_connected
    when: ansible_os_family == 'Windows'
    ignore_errors: yes
    failed_when: (azcmagent_win_connected.rc not in [ 0, 16 ])
    changed_when: False

  - name: Connect the Connected Machine Agent on Linux servers to Azure Arc
    become: yes
    shell: azcmagent connect --service-principal-id "{{ azure.service_principal_id }}" --service-principal-secret "{{ azure.service_principal_secret }}" --resource-group "{{ azure.resource_group }}" --tenant-id "{{ azure.tenant_id }}" --location "{{ azure.location }}" --subscription-id "{{ azure.subscription_id }}"
    when:  (ansible_system == 'Linux') and (azcmagent_lnx_connected.rc is defined and azcmagent_lnx_connected.rc != 0)

  - name: Connect the Connected Machine Agent on Windows servers to Azure
    win_shell: '& $env:ProgramFiles\AzureConnectedMachineAgent\azcmagent.exe connect --service-principal-id "{{ azure.service_principal_id }}" --service-principal-secret "{{ azure.service_principal_secret }}" --resource-group "{{ azure.resource_group }}" --tenant-id "{{ azure.tenant_id }}" --location "{{ azure.location }}" --subscription-id "{{ azure.subscription_id }}"'
    when: (ansible_os_family == 'Windows') and (azcmagent_win_connected.rc is defined and azcmagent_win_connected.rc != 0)

Изменение сборника схем Ansible

После скачивания сборника схем Ansible выполните следующие действия:

  1. В сборнике схем Ansible измените переменные в разделе vars с помощью субъекта-службы и сведений Azure, собранных ранее:

    • Идентификатор субъекта-службы
    • Секрет субъекта-службы
    • Группа ресурсов
    • Идентификатор клиента
    • Идентификатор подписки
    • Регион
  2. Введите правильное поле узлов, записывющее целевые серверы для подключения к Azure Arc. Вы можете использовать шаблоны Ansible для выборочного назначения гибридных компьютеров для подключения.

  3. Этот шаблон передает секрет субъекта-службы в качестве переменной в сборнике схем Ansible. Обратите внимание, что хранилище Ansible может использоваться для шифрования этого секрета, и переменные могут передаваться через файл конфигурации.

Запуск сборника схем Ansible

В узле управления Ansible запустите сборник схем Ansible, вызвав ansible-playbook команду:

ansible-playbook arc-server-onboard-playbook.yml

После запуска сборника схем приложение PLAY RECAP указывает, были ли выполнены все задачи успешно, а все узлы, в которых не удалось выполнить задачи.

Проверка подключения с помощью Azure Arc

После успешной установки агента и настройки подключения к серверам с поддержкой Azure Arc перейдите к портал Azure, чтобы убедиться, что серверы в целевых узлах успешно подключены. Просмотрите свои компьютеры на портале Azure.

Следующие шаги