Anslut datorer i stor skala med ansible-spelböcker

Du kan registrera Ansible-hanterade noder till Azure Arc-aktiverade servrar i stor skala med ansible-spelböcker. För att göra det måste du ladda ned, ändra och sedan köra lämplig spelbok.

Innan du kommer igång måste du granska förutsättningarna och kontrollera att din prenumeration och dina resurser uppfyller kraven. Information om regioner som stöds och andra relaterade överväganden finns i Azure-regioner som stöds. Läs även vår planeringsguide i stor skala för att förstå design- och distributionskriterierna samt våra hanterings- och övervakningsrekommendationer.

Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Automatisk anslutning för SQL Server

När du ansluter en Windows- eller Linux-server till Azure Arc som även har Microsoft SQL Server installerat ansluts ÄVEN SQL Server-instanserna automatiskt till Azure Arc. SQL Server som aktiveras av Azure Arc innehåller en detaljerad inventering och ytterligare hanteringsfunktioner för dina SQL Server-instanser och -databaser. Som en del av anslutningsprocessen distribueras ett tillägg till din Azure Arc-aktiverade server och nya roller tillämpas på SQL Server och databaser. Om du inte vill ansluta dina SQL-servrar automatiskt till Azure Arc kan du avanmäla dig genom att lägga till en tagg på Windows- eller Linux-servern med namnet ArcSQLServerExtensionDeployment och värdet Disabled när den är ansluten till Azure Arc.

Mer information finns i Hantera automatisk anslutning för SQL Server som aktiveras av Azure Arc.

Generera ett huvudnamn för tjänsten och samla in Azure-information

Innan du kan köra skriptet för att ansluta dina datorer måste du göra följande:

  1. Följ stegen för att skapa ett huvudnamn för tjänsten för registrering i stor skala.

    • Tilldela rollen Azure Anslut ed Machine Onboarding till tjänstens huvudnamn och begränsa omfånget för rollen till azure-målprenumerationen eller resursgruppen.
    • Anteckna klient-ID:t för tjänstens huvudnamn och tjänstens huvudnamn; du behöver dessa värden senare.
  2. Samla in information om klientorganisations-ID, prenumerations-ID, resursgrupp och region där den Azure Arc-aktiverade resursen registreras.

Ladda ned Ansible-spelboken

Om du registrerar datorer till Azure Arc-aktiverade servrar kopierar du följande Ansible-spelboksmall och sparar spelboken som 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)

Ändra Ansible-spelboken

När du har laddat ned Ansible-spelboken utför du följande steg:

  1. I Ansible-spelboken ändrar du variablerna under avsnittet vars med tjänstens huvudnamn och Azure-information som samlats in tidigare:

    • Tjänstens huvudnamn-ID
    • Tjänstens huvudnamnshemlighet
    • Resursgrupp
    • Klientorganisations-ID
    • Prenumerations-ID:t
    • Region
  2. Ange rätt värdfält som samlar in målservrarna för registrering till Azure Arc. Du kan använda Ansible-mönster för att selektivt rikta in vilka hybriddatorer som ska registreras.

  3. Den här mallen skickar tjänstens huvudnamnshemlighet som en variabel i Ansible-spelboken. Observera att ett Ansible-valv kan användas för att kryptera den här hemligheten och att variablerna kan skickas via en konfigurationsfil.

Kör Ansible-spelboken

Från ansible-kontrollnoden kör du Spelboken Ansible genom att ansible-playbook anropa kommandot:

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

När spelboken har körts anger PLAY RECAP om alla uppgifter har slutförts och visar eventuella noder där aktiviteter misslyckades.

Kontrollera anslutningen med Azure Arc

När du har installerat agenten och konfigurerat den för att ansluta till Azure Arc-aktiverade servrar går du till Azure-portalen för att kontrollera att servrarna i målvärdarna har anslutits. Visa dina datorer i Azure-portalen.

Nästa steg

  • Läs planerings - och distributionsguiden för att planera för distribution av Azure Arc-aktiverade servrar i valfri skala och implementera centraliserad hantering och övervakning.
  • Granska information om felsökning av anslutningar i guiden Felsöka Anslut ed Machine Agent.
  • Lär dig hur du hanterar din dator med Hjälp av Azure Policy för exempelvis vm-gästkonfiguration, kontrollera att datorn rapporterar till den förväntade Log Analytics-arbetsytan, aktivera övervakning med VM-insikter och mycket mer.