Ligar máquinas em escala utilizando manuais Ansible
Você pode integrar nós gerenciados pelo Ansible a servidores habilitados para Azure Arc em escala usando playbooks do Ansible. Para fazer isso, faça o download, modifique e execute o playbook apropriado.
Antes de começar, veja os pré-requisitos e verifique se a sua subscrição e recursos cumprem os requisitos. Para obter informações sobre regiões com suporte e outras considerações relacionadas, consulte Regiões do Azure com suporte. Consulte também nosso guia de planejamento em escala para entender os critérios de projeto e implantação, bem como nossas recomendações de gerenciamento e monitoramento.
Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Conexão automática para SQL Server
Quando liga 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 serão conectadas automaticamente ao Azure Arc. O SQL Server ativado pelo Azure Arc fornece um inventário detalhado e capacidades de gestão adicionais para as suas bases de dados e instâncias do SQL Server. Como parte do processo de ligação, é instalada uma extensão no seu servidor com Azure Arc ativado e serão aplicadas novas funções ao seu SQL Server e às bases de dados. Se não quiser conectar automaticamente seus SQL Servers ao Azure Arc, você pode desativar adicionando uma tag 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, consulte Gerir a ligação automática para SQL Server ativada 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á:
Siga as etapas para criar uma entidade de serviço para integração em escala.
- Atribua a função de Integração de Máquina Conectada do Azure à 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 Principal de Serviço; você precisará desses valores mais tarde.
Colete detalhes sobre a ID do Locatário, a ID da Assinatura, o Grupo de Recursos e a Região onde o recurso habilitado para Arco do Azure será integrado.
Faça o download do manual do Ansible
Se você estiver integrando máquinas em servidores habilitados para Azure Arc, copie o seguinte modelo de playbook do Ansible e salve o playbook 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)
Modificar o manual do Ansible
Depois de baixar o playbook do Ansible, conclua as seguintes etapas:
No manual 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 Principal do Serviço
- Grupo de Recursos
- ID de Inquilino do
- ID da subscrição
- Região
Insira o campo hosts corretos capturando os servidores de destino para integração ao Azure Arc. Você pode empregar padrões do Ansible para segmentar seletivamente quais máquinas híbridas devem ser integradas.
Este modelo passa o segredo da entidade de serviço como uma variável no manual do Ansible. Observe que o cofre do Ansible pode ser usado para criptografar esse segredo e as variáveis podem ser passadas por um arquivo de configuração.
Execute o manual do Ansible
No nó de controle do Ansible, execute o playbook do Ansible invocando o ansible-playbook
comando:
ansible-playbook arc-server-onboard-playbook.yml
Depois que o playbook é executado, PLAY RECAP indica todas as tarefas concluídas com êxito e exibe todos os nós onde as tarefas falharam.
Verificar a ligação com o Azure Arc
Depois de instalar o agente e configurá-lo para se conectar aos servidores habilitados para Azure Arc, vá para o portal do Azure para verificar se os servidores em seus hosts de destino se conectaram com êxito. Veja as suas máquinas no portal do Azure.
Próximos passos
- Revise o guia de planejamento e implantação para planejar a implantação de servidores habilitados para Azure Arc em qualquer escala e implementar gerenciamento e monitoramento centralizados.
- Analise as informações de solução de problemas de conexão no guia do agente Solucionar problemas de máquina conectada.
- Saiba como gerenciar sua máquina usando a Política do Azure para coisas como configuração de convidado de VM, verificação de que a máquina está relatando para o espaço de trabalho esperado do Log Analytics, habilitando o monitoramento com insights de VM e muito mais.