Verbinden von Computern zur Skalierung unter Verwendung von Ansible Playbooks
Sie können in Ansible verwaltete Knoten mithilfe von Ansible Playbooks auf Azure Arc-aktivierten Servern integrieren. Dazu müssen Sie das entsprechende Playbook herunterladen, ändern und dann ausführen.
Bevor Sie beginnen, sollten Sie die Voraussetzungen überprüfen und sicherstellen, dass Ihr Abonnement und Ihre Ressourcen auch diese Anforderungen erfüllen. Informationen zu unterstützten Regionen und andere Überlegungen finden Sie unter Unterstützte Azure-Regionen. Machen Sie sich anhand unseres Leitfadens unter Planen und Bereitstellen von Servern mit Arc-Unterstützung auch mit den Entwurfs- und Bereitstellungskriterien sowie mit unseren Verwaltungs- und Überwachungsempfehlungen vertraut.
Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Automatische Verbindung für SQL Server
Wenn Sie einen Windows- oder Linux-Server, auf dem auch Microsoft SQL Server installiert ist, mit Azure Arc verbinden, werden die SQL Server-Instanzen automatisch auch mit Azure Arc verbunden. SQL Server mit Azure Arc-Unterstützung bietet eine detaillierte Inventur und zusätzliche Verwaltungsfunktionen für Ihre SQL Server-Instanzen und -Datenbanken. Im Rahmen des Verbindungsprozesses wird eine Erweiterung auf Ihrem Server mit Azure Arc-Unterstützung bereitgestellt, und neue Rollen werden auf SQL Server und Datenbanken angewendet. Wenn Sie Ihre SQL Server-Instanzen nicht automatisch mit Azure Arc verbinden möchten, können Sie diese Option deaktivieren, indem Sie dem Windows- oder Linux-Server ein Tag mit dem Namen ArcSQLServerExtensionDeployment
und dem Wert Disabled
hinzufügen, wenn er mit Azure Arc verbunden ist.
Weitere Informationen finden Sie unter Verwalten der automatischem Verbindung von SQL Server mit Azure Arc-Unterstützung.
Generieren eines Dienstprinzipals und Sammeln von Azure-Details
Bevor Sie das Skript zum Verbinden Ihrer Computer ausführen können, müssen Sie folgende Schritte ausführen:
Befolgen Sie die Schritte zum Erstellen eines Dienstprinzipals für Onboarding im großen Stil.
- Weisen Sie Ihrem Dienstprinzipal die Rolle Onboarding verbundener Azure-Computer zu und beschränken Sie den Geltungsbereich der Rolle auf das Azure-Zielzone,-Abonnemnt.
- Notieren Sie sich die Dienstprinzipal-ID und das Dienstprinzipalgeheimnis, da Sie diese Werte später benötigen.
Sammeln Sie Details zur Mandanten-ID, Abonnement-ID, Ressourcengruppe und Region, in der die Azure Arc-aktivierte Ressource integriert wird.
Führen Sie das Ansible Playbook aus
Wenn Sie Computer auf Azure Arc-fähigen Servern einbinden, kopieren Sie die folgende Ansible Playbook-Vorlage und speichern das Playbook 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)
Führen Sie das Ansible Playbook aus
Stellen Sie nach dem Herunterladen des Ansible Playbook die folgenden Schritte fertig:
Ändern Sie im Ansible Playbook die Variablen im Abschnitt „Vars“ anhand des Dienstprinzipals und der Azure-Details, die Sie zuvor gesammelt haben:
- Dienstprinzipal-ID:
- Geheimnis des Dienstprinzipals
- Ressourcengruppe
- Mandanten-ID
- Abonnement-ID
- Region
Wechseln Sie in das richtige „Hosts“-Feld, das die Zielserver für das Onboarding in Azure Arc erfasst. Sie können Ansible-Muster verwenden, um selektiv auf die Hybridcomputer abzuzielen, für die ein Onboarding durchgeführt werden soll.
Diese Vorlage übergibt das Dienstprinzipalgeheimnis als Variable im Ansible-Playbook. Beachten Sie, dass ein Ansible-Tresor verwendet werden könnte, um dieses Geheimnis zu verschlüsseln, und dass die Variablen über eine Konfigurationsdatei übergeben werden könnten.
Führen Sie das Ansible Playbook aus
Führen Sie im Ansible-Steuerelementknoten das Ansible Playbook aus, indem Sie den ansible-playbook
-Befehl aufrufen:
ansible-playbook arc-server-onboard-playbook.yml
Nachdem das Playbook ausgeführt wurde, gibt die PLAY RECAP an, ob alle Vorgänge erfolgreich abgeschlossen wurden und alle Knoten angezeigt werden, auf denen Vorgänge fehlgeschlagen sind.
Überprüfen der Verbindung mit Azure Arc
Nachdem Sie den Agent erfolgreich installiert und zum Herstellen einer Verbindung mit Azure Arc-aktivierten Servern konfiguriert haben, wechseln Sie zum Azure-Portal, um zu überprüfen, ob die Server in Ihren Zielhosts erfolgreich verbunden sind. Zeigen Sie Ihre Computer im Azure-Portal an.
Nächste Schritte
- Lesen Sie den Planungs- und Bereitstellungsleitfaden, um die Bereitstellung von Servern mit Azure Arc-Unterstützung in beliebiger Größenordnung zu planen und eine zentrale Verwaltung und Überwachung zu implementieren.
- Informationen zur Problembehandlung finden Sie im Leitfaden zum Beheben von Problemen mit dem Connected Machine-Agent.
- Informieren Sie sich, wie Sie Ihren Computer mithilfe von Azure Policy verwalten können (z. B. bei Gastkonfigurationen für VMs, dem Überprüfen, ob der Computer dem erwarteten Log Analytics-Arbeitsbereich Bericht erstattet oder beim Aktivieren der Überwachung mit VM Insights).