Connettere computer su larga scala usando i playbook Ansible
È possibile eseguire l'onboarding di nodi gestiti da Ansible nei server abilitati per Azure Arc su larga scala usando i playbook Ansible. A tale scopo, è necessario scaricare, modificare ed eseguire il playbook appropriato.
Prima di iniziare, esaminare i prerequisiti e verificare che la sottoscrizione e le risorse soddisfino i requisiti. Per informazioni sulle aree supportate e altre considerazioni correlate, vedere Aree di Azure supportate. Esaminare anche la guida alla pianificazione su larga scala per comprendere i criteri di progettazione e distribuzione, nonché le raccomandazioni di gestione e monitoraggio.
Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Connessione automatica per SQL Server
Quando si connette un server Windows o Linux ad Azure Arc in cui è installato anche Microsoft SQL Server, anche le istanze di SQL Server verranno connesse automaticamente ad Azure Arc. SQL Server abilitato da Azure Arc offre un inventario dettagliato e funzionalità di gestione aggiuntive per le istanze e i database di SQL Server. Come parte del processo di connessione, un'estensione viene distribuita nel server abilitato per Azure Arc e i nuovi ruoli verranno applicati ai database e a SQL Server. Se non si vuole connettere automaticamente SQL Server ad Azure Arc, è possibile rifiutare aggiungendo un tag al server Windows o Linux con il nome ArcSQLServerExtensionDeployment
e il valore Disabled
quando è connesso ad Azure Arc.
Per ulteriori informazioni, vedere Gestione delle connessioni automatiche per SQL Server abilitato da Azure Arc.
Generare un'entità servizio e raccogliere i dettagli di Azure
Prima di poter eseguire lo script per connettere i computer, è necessario eseguire le operazioni seguenti:
Seguire la procedura per creare un'entità servizio per l'onboarding su larga scala.
- Assegnare il ruolo di onboarding di Azure Connected Machine all'entità servizio e limitare l'ambito del ruolo alla sottoscrizione o al gruppo di risorse di Azure di destinazione.
- Prendere nota del segreto dell'entità servizio e dell'ID client dell'entità servizio; questi valori saranno necessari in un secondo momento.
Raccogliere i dettagli relativi a ID tenant, ID sottoscrizione, gruppo di risorse e area in cui verrà eseguito l'onboarding della risorsa abilitata per Azure Arc.
Scaricare il playbook Ansible
Se si esegue l'onboarding dei computer nei server abilitati per Azure Arc, copiare il modello di playbook Ansible seguente e salvare il playbook come 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)
Modificare il playbook Ansible
Dopo aver scaricato il playbook Ansible, completare la procedura seguente:
Nel playbook Ansible modificare le variabili nella sezione vars con l'entità servizio e i dettagli di Azure raccolti in precedenza:
- ID dell'entità servizio
- Segreto dell'entità servizio
- Gruppo di risorse
- ID tenant
- ID sottoscrizione
- Paese
Immettere il campo host corretto che acquisisce i server di destinazione per l'onboarding in Azure Arc. È possibile usare modelli Ansible per definire in modo selettivo i computer ibridi di cui eseguire l'onboarding.
Questo modello passa il segreto dell'entità servizio come variabile nel playbook Ansible. Si noti che è possibile usare un insieme di credenziali Ansible per crittografare questo segreto e che le variabili potrebbero essere passate tramite un file di configurazione.
Eseguire il playbook Ansible
Dal nodo di controllo Ansible, eseguire il playbook Ansible richiamando il comando ansible-playbook
:
ansible-playbook arc-server-onboard-playbook.yml
Dopo l'esecuzione del playbook, PLAY RECAP indicherà se tutte le attività sono state completate correttamente e mostrerà eventuali nodi in cui le attività non sono riuscite.
Verificare la connessione con Azure Arc
Dopo aver installato correttamente l'agente e dopo averlo configurato per la connessione ai server abilitati per Azure Arc, passare al portale di Azure per verificare che i server negli host di destinazione siano stati connessi correttamente. Visualizzare i computer nel portale di Azure.
Passaggi successivi
- Vedere la Guida alla pianificazione e alla distribuzione per pianificare la distribuzione di server abilitati per Azure Arc su qualsiasi scala e implementare la gestione e il monitoraggio centralizzati.
- Esaminare le informazioni sulla risoluzione dei problemi di connessione nella guida Risolvere i problemi relativi all'agente di Connected Machine.
- Informazioni su come gestire il computer usando i criteri di Azure, ad esempio per la configurazione guest della VM, verificare che il computer stia segnalando l'area di lavoro Log Analytics prevista, abilitare il monitoraggio con Informazioni dettagliate sulle VM e molto altro ancora.