Computers op schaal verbinden met Ansible-playbooks
U kunt ansible-beheerde knooppunten op schaal onboarden naar servers met Azure Arc met behulp van Ansible-playbooks. Hiervoor moet u het juiste playbook downloaden, wijzigen en vervolgens uitvoeren.
Voordat u aan de slag gaat, moet u de vereisten controleren en verifiëren of uw abonnement en resources aan de vereisten voldoen. Zie ondersteunde Azure-regio's voor informatie over ondersteunde regio's en andere gerelateerde overwegingen. Bekijk ook onze planningshandleiding op schaal om inzicht te hebben in de ontwerp- en implementatiecriteria, evenals onze aanbevelingen voor beheer en bewaking.
Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
Automatische verbinding voor SQL Server
Wanneer u een Windows- of Linux-server verbindt met Azure Arc waarop ook Microsoft SQL Server is geïnstalleerd, worden de SQL Server-exemplaren ook automatisch verbonden met Azure Arc. SQL Server ingeschakeld door Azure Arc biedt een gedetailleerde inventarisatie en aanvullende beheermogelijkheden voor uw SQL Server-exemplaren en -databases. Als onderdeel van het verbindingsproces wordt een extensie geïmplementeerd op uw server met Azure Arc en worden nieuwe rollen toegepast op uw SQL Server en databases. Als u uw SQL-servers niet automatisch wilt verbinden met Azure Arc, kunt u zich afmelden door een tag toe te voegen aan de Windows- of Linux-server met de naam ArcSQLServerExtensionDeployment
en waarde Disabled
wanneer deze is verbonden met Azure Arc.
Zie Automatische verbinding beheren voor SQL Server ingeschakeld door Azure Arc voor meer informatie.
Een service-principal genereren en Azure-details verzamelen
Voordat u het script kunt uitvoeren om uw computers te verbinden, moet u het volgende doen:
Volg de stappen om een service-principal te maken voor onboarding op schaal.
- Wijs de onboardingrol voor Azure Connected Machine toe aan uw service-principal en beperk het bereik van de rol tot het Azure-doelabonnement of de doelresourcegroep.
- Noteer het service-principalgeheim en de client-id van de service-principal; u hebt deze waarden later nodig.
Verzamel details over de tenant-id, abonnements-id, resourcegroep en regio waar de azure Arc-resource wordt toegevoegd.
Het Ansible-playbook downloaden
Als u machines onboardt op servers met Azure Arc, kopieert u de volgende Ansible-playbooksjabloon en slaat u het playbook op als 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)
Het Ansible-playbook wijzigen
Nadat u het Ansible-playbook hebt gedownload, voert u de volgende stappen uit:
Wijzig in het Ansible-playbook de variabelen in de sectie vars met de service-principal en Azure-gegevens die eerder zijn verzameld:
- Service-principal-id
- Service-principalgeheim
- Resourcegroep
- Tenant-id
- Abonnements-id
- Regio
Voer het juiste hostveld in waarmee de doelservers worden vastgelegd voor onboarding naar Azure Arc. U kunt Ansible-patronen gebruiken om selectief te richten op welke hybride machines moeten worden ge onboardd.
Met deze sjabloon wordt het geheim van de service-principal doorgegeven als een variabele in het Ansible-playbook. Houd er rekening mee dat een Ansible-kluis kan worden gebruikt om dit geheim te versleutelen en dat de variabelen kunnen worden doorgegeven via een configuratiebestand.
Het Ansible-playbook uitvoeren
Voer vanuit het knooppunt van het Ansible-besturingselement het Ansible-playbook uit door de ansible-playbook
opdracht aan te roepen:
ansible-playbook arc-server-onboard-playbook.yml
Nadat het playbook is uitgevoerd, geeft play RECAP aan of alle taken zijn voltooid en knooppunten waarop taken zijn mislukt, worden weergegeven.
De verbinding met Azure Arc controleren
Nadat u de agent hebt geïnstalleerd en geconfigureerd om verbinding te maken met servers met Azure Arc, gaat u naar Azure Portal om te controleren of de servers in uw doelhosts verbinding hebben gemaakt. Bekijk uw computers in Azure Portal.
Volgende stappen
- Raadpleeg de plannings- en implementatiehandleiding voor het plannen van de implementatie van servers met Azure Arc op elke schaal en implementeer gecentraliseerd beheer en bewaking.
- Bekijk de informatie over het oplossen van verbindingsproblemen in de handleiding Problemen met de connected machine-agent oplossen.
- Meer informatie over het beheren van uw machine met behulp van Azure Policy voor zaken zoals vm-gastconfiguratie, het controleren of de machine rapporteert aan de verwachte Log Analytics-werkruimte, het inschakelen van bewaking met VM-inzichten en nog veel meer.