Compartilhar via


Conectar computadores em escalas usando guias estratégicos do Ansible

Você pode integrar nós gerenciados pelo Ansible a servidores habilitados para Azure Arc em escala usando guias estratégicos do Ansible. Para fazer isso, baixe, modifique e execute o manual apropriado.

Antes de começar, examine os pré-requisitos e verifique se a sua assinatura e os recursos atendem aos requisitos. Para obter informações sobre as regiões com suporte e outras considerações relacionadas, confira Regiões com suporte do Azure. Examine também nosso guia de planejamento em escala para entender os critérios de design e implantação, bem como nossas recomendações de gerenciamento e monitoramento.

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

Conexão automática do SQL Server

Quando você conecta um servidor Windows ou Linux ao Azure Arc que também tem o Microsoft SQL Server instalado, as instâncias do SQL Server também são conectadas automaticamente ao Azure Arc. O SQL Server habilitado pelo Azure Arc fornece um inventário detalhado e recursos de gerenciamento adicionais para suas instâncias e bancos de dados do SQL Server. Como parte do processo de conexão, uma extensão é implantada no servidor habilitado para Azure Arc e novas funções serão aplicadas ao SQL Server e aos bancos de dados. Se você não quiser conectar automaticamente seus SQL Servers ao Azure Arc, poderá recusar a adição de uma marca ao servidor Windows ou Linux com o nome ArcSQLServerExtensionDeployment e o valor Disabled quando ele estiver conectado ao Azure Arc.

Para obter mais informações, confira Gerenciar conexão automática para o SQL Server habilitado pelo Azure Arc.

Gerar uma entidade de serviço e coletar detalhes do Azure

Antes de executar o script para conectar suas máquinas, você precisará:

  1. Siga as etapas para criar uma entidade de serviço para integração em escala.

    • Atribua a função de integração do Azure Connected Machine à sua entidade de serviço e limite o escopo da função à assinatura ou grupo de recursos do Azure de destino.
    • Anote o segredo da entidade de serviço e a ID do cliente da entidade de serviço; você precisará desses valores mais tarde.
  2. Colete detalhes sobre o ID do locatário, o ID da assinatura, o grupo de recursos e a região onde o recurso habilitado para Azure Arc será integrado.

Baixe o guia estratégico do Ansible.

Se você estiver integrando máquinas a servidores habilitados para Azure Arc, copie o seguinte modelo de manual do Ansible e salve-o como 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)

Modifique o guia estratégico do Ansible

Depois de baixar o guia estratégico do Ansible, conclua as seguintes etapas:

  1. No guia estratégico do Ansible, modifique as variáveis na seção vars com a entidade de serviço e os detalhes do Azure coletados anteriormente:

    • ID da Entidade de Serviço
    • Segredo da Entidade de Serviço
    • Grupo de recursos
    • ID do locatário
    • ID da assinatura
    • Region
  2. Insira o campo de hosts correto capturando os servidores de destino para integração ao Azure Arc. Você pode usar os modelos do Ansible para escolher seletivamente quais máquinas híbridas serão incluídas no sistema.

  3. Esse modelo passa o segredo da entidade de serviço como uma variável no guia estratégico do Ansible. Observe que o Ansible Vault pode ser usado para criptografar esse segredo e as variáveis ​​podem ser passadas por meio de um arquivo de configuração.

Execute o guia estratégico do Ansible

No nó de controle Ansible, execute o guia estratégico do Ansible invocando o comando ansible-playbook:

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

Após a execução do manual, o PLAY RECAP indica todas as tarefas concluídas com sucesso e exibe todos os nós onde as tarefas falharam.

Verificar a conexão com o Azure Arc

Depois de instalar o agente e configurá-lo para se conectar aos servidores habilitados para Azure Arc, acesse o portal do Azure para verificar se os servidores nos hosts de destino foram conectados com êxito. Veja seus computadores no portal do Azure.

Próximas etapas