Udostępnij za pośrednictwem


Łączenie komputerów na dużą skalę przy użyciu podręczników rozwiązania Ansible

Węzły zarządzane przez rozwiązanie Ansible można dołączać do serwerów z obsługą usługi Azure Arc na dużą skalę przy użyciu podręczników rozwiązania Ansible. W tym celu pobierz, zmodyfikuj, a następnie uruchom odpowiedni podręcznik.

Przed rozpoczęciem należy zapoznać się z wymaganiami wstępnymi i sprawdzić, czy posiadana subskrypcja i zasoby spełniają wymagania. Aby uzyskać informacje o obsługiwanych regionach i innych powiązanych zagadnieniach, zobacz obsługiwane regiony świadczenia usługi Azure. Zapoznaj się również z naszym przewodnikiem planowania na dużą skalę, aby zrozumieć kryteria projektowania i wdrażania, a także nasze zalecenia dotyczące zarządzania i monitorowania.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Automatyczne połączenie dla programu SQL Server

Po podłączeniu serwera Windows lub Linux do usługi Azure Arc, gdzie zainstalowano również program Microsoft SQL Server, wystąpienia programu SQL Server zostaną automatycznie połączone z usługą Azure Arc. Program SQL Server włączony przez usługę Azure Arc zapewnia szczegółową inwentaryzację i dodatkowe możliwości zarządzania wystąpieniami programu SQL Server i bazami danych. W ramach procesu łączenia na serwerze z włączoną usługą Azure Arc zostanie wdrożone rozszerzenie, a do serwera SQL Server i baz danych zostaną zastosowane nowe role. Jeśli nie chcesz automatycznie łączyć serwerów SQL z usługą Azure Arc, możesz zrezygnować, dodając tag do serwera z systemem Windows lub Linux o nazwie ArcSQLServerExtensionDeployment i wartości Disabled , gdy jest połączony z usługą Azure Arc.

Aby uzyskać więcej informacji, zobacz Zarządzanie automatycznym połączeniem dla programu SQL Server włączonego przez usługę Azure Arc.

Generowanie jednostki usługi i zbieranie szczegółów platformy Azure

Przed uruchomieniem skryptu w celu połączenia maszyn należy wykonać następujące czynności:

  1. Wykonaj kroki, aby utworzyć jednostkę usługi na potrzeby dołączania na dużą skalę.

    • Przypisz rolę dołączania maszyny połączonej platformy Azure do jednostki usługi i ogranicz zakres roli do docelowej subskrypcji platformy Azure lub grupy zasobów.
    • Zanotuj identyfikator klienta jednostki usługi i jednostki usługi; te wartości będą potrzebne później.
  2. Zbierz szczegółowe informacje na temat identyfikatora dzierżawy, identyfikatora subskrypcji, grupy zasobów i regionu, w którym zostanie dołączony zasób z włączoną usługą Azure Arc.

Pobieranie podręcznika rozwiązania Ansible

Jeśli dołączasz maszyny do serwerów z obsługą usługi Azure Arc, skopiuj następujący szablon podręcznika rozwiązania Ansible i zapisz podręcznik jako 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)

Modyfikowanie podręcznika rozwiązania Ansible

Po pobraniu podręcznika rozwiązania Ansible wykonaj następujące kroki:

  1. W podręczniku rozwiązania Ansible zmodyfikuj zmienne w sekcji vars za pomocą jednostki usługi i szczegółów platformy Azure zebranych wcześniej:

    • Identyfikator jednostki usługi
    • Wpis tajny jednostki usługi
    • Grupa zasobów
    • Identyfikator dzierżawy
    • Identyfikator subskrypcji
    • Region
  2. Wprowadź prawidłowe pole hostów przechwytujące serwery docelowe na potrzeby dołączania do usługi Azure Arc. Można stosować wzorce rozwiązania Ansible w celu selektywnego określania, które maszyny hybrydowe mają być dołączane.

  3. Ten szablon przekazuje wpis tajny jednostki usługi jako zmienną w podręczniku rozwiązania Ansible. Należy pamiętać, że magazyn rozwiązania Ansible może służyć do szyfrowania tego wpisu tajnego, a zmienne mogą być przekazywane za pośrednictwem pliku konfiguracji.

Uruchamianie podręcznika rozwiązania Ansible

W węźle sterowania rozwiązania Ansible uruchom podręcznik rozwiązania Ansible, wywołując ansible-playbook polecenie:

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

Po uruchomieniu podręcznika FUNKCJA PLAY RECAP wskazuje wszystkie zadania zakończone pomyślnie i wyświetla wszystkie węzły, w których zadania zakończyły się niepowodzeniem.

Weryfikowanie połączenia z usługą Azure Arc

Po zainstalowaniu agenta i skonfigurowaniu go w celu nawiązania połączenia z serwerami z obsługą usługi Azure Arc przejdź do witryny Azure Portal, aby sprawdzić, czy serwery na hostach docelowych zostały pomyślnie połączone. Wyświetl maszyny w witrynie Azure Portal.

Następne kroki

  • Zapoznaj się z przewodnikiem planowania i wdrażania, aby zaplanować wdrażanie serwerów z obsługą usługi Azure Arc w dowolnej skali i zaimplementować scentralizowane zarządzanie i monitorowanie.
  • Zapoznaj się z informacjami dotyczącymi rozwiązywania problemów z połączeniem w przewodniku Rozwiązywanie problemów z agentem połączonej maszyny.
  • Dowiedz się, jak zarządzać maszyną przy użyciu usługi Azure Policy na potrzeby takich rzeczy jak konfiguracja gościa maszyny wirtualnej, weryfikowanie, czy maszyna raportuje do oczekiwanego obszaru roboczego usługi Log Analytics, umożliwiając monitorowanie za pomocą szczegółowych informacji o maszynie wirtualnej i wiele innych.