Connecter des machines à l’échelle utilisant des playbooks Ansible
Vous pouvez intégrer des nœuds gérés par Ansible aux serveurs avec Azure Arc à grande échelle à l’aide de playbooks Ansible. Pour ce faire, vous devez télécharger, modifier, puis exécuter le playbook approprié.
Avant de commencer, veillez à consulter les conditions préalables et vérifiez que votre abonnement et vos ressources répondent aux exigences. Pour plus d'informations sur les régions prises en charge et d'autres considérations connexes, consultez Régions Azure prises en charge. Consultez également notre Guide de planification à grande échelle pour comprendre les critères de conception et de déploiement, ainsi que nos recommandations en matière de gestion et de surveillance.
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
Connexion automatique pour SQL Server
Lorsque vous connectez à Azure Arc un serveur Windows ou Linux sur lequel Microsoft SQL Server est également installé, les instances SQL Server sont automatiquement connectées à Azure Arc. SQL Server activé par Azure Arc fournit un inventaire détaillé et des fonctionnalités de gestion supplémentaires pour vos instances et bases de données SQL Server. Dans le cadre du processus de connexion, une extension est déployée sur votre serveur avec Azure Arc et de nouveaux rôles sont appliqués à votre SQL Server et à vos bases de données. Si vous ne souhaitez pas connecter automatiquement vos SQL Servers à Azure Arc, vous pouvez refuser la connexion en ajoutant une balise au serveur Windows ou Linux avec le nom ArcSQLServerExtensionDeployment
et la valeur Disabled
lorsqu’il est connecté à Azure Arc.
Pour plus d’informations, consultez Gérer la connexion automatique pour SQL Server activée par Azure Arc.
Générer un principal de service et collecter les détails d’Azure
Avant de pouvoir exécuter le script pour connecter vos machines, vous devez effectuer les opérations suivantes :
Effectuez les étapes permettant de créer un principal de service pour une intégration à grande échelle.
- Attribuez le rôle Intégration Azure Connected Machine à votre principal de service et limitez l’étendue du rôle à l’abonnement ou au groupe de ressources Azure cible.
- Notez l’identifiant client et le secret du principal de service, car vous aurez besoin de ces valeurs ultérieurement.
Collectez des détails sur l’ID de locataire, l’ID d’abonnement, le groupe de ressources et la région où la ressource avec Azure Arc sera intégrée.
Télécharger le playbook Ansible
Si vous intégrez des machines à des serveurs avec Azure Arc, copiez le modèle de playbook Ansible suivant et enregistrez le playbook en tant que 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)
Modifier le playbook Ansible
Après avoir téléchargé le playbook Ansible, procédez comme suit :
Dans le playbook Ansible, modifiez les variables sous la section vars avec le principal de service et les détails Azure collectés précédemment :
- ID de principal de service
- Secret du principal de service
- Groupe de ressources
- ID client
- Identifiant d’abonnement
- Région
Entrez le champ hôte approprié qui capture les serveurs cibles pour l’intégration à Azure Arc. Vous pouvez utiliser des modèles Ansible pour cibler de manière sélective les machines hybrides à intégrer.
Ce modèle transmet le secret du principal de service en tant que variable dans le playbook Ansible. Notez qu’un coffre Ansible peut être utilisé pour chiffrer ce secret et que les variables peuvent être passées par le biais d’un fichier de configuration.
Exécuter le playbook Ansible
À partir du nœud de contrôle Ansible, exécutez le playbook Ansible en appelant la commande ansible-playbook
:
ansible-playbook arc-server-onboard-playbook.yml
Une fois le playbook exécuté, le RÉCAP PLAY indique si toutes les tâches ont été effectuées avec succès et tous les nœuds où les tâches ont échoué.
Vérifier la connexion avec Azure Arc
Après avoir correctement installé l’agent et l’avoir configuré pour qu’il se connecte aux serveurs avec Azure Arc, accédez au Portail Azure pour vérifier que les serveurs de vos hôtes cibles se sont connectés. Affichez vos machines dans le portail Azure.
Étapes suivantes
- Consultez le Guide de planification et de déploiement pour planifier le déploiement de serveurs avec Azure Arc à n’importe quelle échelle et implémenter la gestion et la supervision centralisées.
- Consultez les informations relatives à la résolution des problèmes de connexion dans le guide Résoudre les problèmes liés à Azure Connected Machine Agent.
- Découvrez comment gérer votre machine en utilisant Azure Policy, par exemple pour la configuration d’invité de machine virtuelle, en vérifiant que la machine crée des rapports sur l’espace de travail Log Analytics prévu, en activant le monitoring avec les insights de machine virtuelle, et bien plus encore.