Udostępnij za pośrednictwem


Wprowadzenie: konfigurowanie rozwiązania Ansible na maszynie wirtualnej platformy Azure

W tym artykule pokazano, jak zainstalować rozwiązanie Ansible na maszynie wirtualnej z systemem Ubuntu na platformie Azure.

W tym artykule omówiono sposób wykonywania następujących zadań:

  • Tworzenie grupy zasobów
  • Tworzenie maszyny wirtualnej z systemem Ubuntu
  • Instalowanie rozwiązania Ansible na maszynie wirtualnej
  • Nawiązywanie połączenia z maszyną wirtualną za pośrednictwem protokołu SSH
  • Konfigurowanie rozwiązania Ansible na maszynie wirtualnej

Wymagania wstępne

  • Subskrypcja platformy Azure: jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
  • Jednostka usługi platformy Azure: Utwórz jednostkę usługi, zanotuj następujące wartości: appId, displayName, password i tenant.

Tworzenie maszyny wirtualnej

  1. Utwórz grupę zasobów platformy Azure.

    az group create --name QuickstartAnsible-rg --location eastus
    

    Może być konieczne zastąpienie parametru --location odpowiednią wartością środowiska.

  2. Utwórz maszynę wirtualną platformy Azure dla rozwiązania Ansible.

    az vm create \
    --resource-group QuickstartAnsible-rg \
    --name QuickstartAnsible-vm \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --admin-password <password>
    

    Zastąp <password> hasło.

  3. Uzyskaj publiczny adres IP maszyny wirtualnej platformy Azure.

    az vm show -d -g QuickstartAnsible-rg -n QuickstartAnsible-vm --query publicIps -o tsv
    

Nawiązywanie połączenia z maszyną wirtualną za pośrednictwem protokołu SSH

Za pomocą polecenia SSH nawiąż połączenie z publicznym adresem IP maszyny wirtualnej.

ssh azureuser@<vm_ip_address>

Zastąp element <vm_ip_address> odpowiednią wartością zwróconą w poprzednich poleceniach.

Instalowanie rozwiązania Ansible na maszynie wirtualnej

Rozwiązanie Ansible z elementem azure.azcollection

Uruchom następujące polecenia, aby skonfigurować rozwiązanie Ansible w systemie Ubuntu:

#!/bin/bash

sudo apt update

sudo apt install software-properties-common

sudo add-apt-repository --yes --update ppa:ansible/ansible

sudo apt install ansible

# Install Ansible az collection for interacting with Azure. (optional)
ansible-galaxy collection install azure.azcollection --force 

# Install Ansible modules for Azure (optional)
sudo pip3 install -r ~/.ansible/collections/ansible_collections/azure/azcollection/requirements.txt

Kluczowe punkty:

  • Węzeł sterowania rozwiązania Ansible wymaga zainstalowanego środowiska Python 2 (wersja 2.7) lub Python 3 (wersje 3.5 i nowsze). Rozwiązanie Ansible 4.0.0 i ansible-core 2.11 ma miękką zależność od języka Python 3.8, ale działa z niższymi wersjami. Jednak rozwiązania Ansible 5.0.0 i ansible-core 2.12 będą wymagały wersji 3.8 i nowszej.

Tworzenie poświadczeń platformy Azure

Aby skonfigurować poświadczenia rozwiązania Ansible, potrzebne są następujące informacje:

  • Identyfikator subskrypcji platformy Azure i identyfikator dzierżawy
  • Identyfikator aplikacji jednostki usługi i wpis tajny

Skonfiguruj poświadczenia rozwiązania Ansible przy użyciu jednej z następujących technik:

Opcja 1. Tworzenie pliku poświadczeń rozwiązania Ansible

W tej sekcji utworzysz plik poświadczeń lokalnych, aby podać poświadczenia do rozwiązania Ansible. Ze względów bezpieczeństwa pliki poświadczeń powinny być używane tylko w środowiskach deweloperskich.

Aby uzyskać więcej informacji na temat definiowania poświadczeń rozwiązania Ansible, zobacz Dostarczanie poświadczeń do modułów platformy Azure.

  1. Po pomyślnym nawiązaniu połączenia z maszyną wirtualną hosta utwórz i otwórz plik o nazwie credentials:

    mkdir ~/.azure
    vi ~/.azure/credentials
    
  2. Wstaw następujące wiersze do pliku. Zastąp symbole zastępcze wartościami jednostki usługi.

    [default]
    subscription_id=<subscription_id>
    client_id=<service_principal_app_id>
    secret=<service_principal_password>
    tenant=<service_principal_tenant_id>
    
  3. Zapisz i zamknij plik.

Opcja 2. Definiowanie zmiennych środowiskowych rozwiązania Ansible

Na maszynie wirtualnej hosta wyeksportuj wartości jednostki usługi, aby skonfigurować poświadczenia rozwiązania Ansible.

export AZURE_SUBSCRIPTION_ID=<subscription_id>
export AZURE_CLIENT_ID=<service_principal_app_id>
export AZURE_SECRET=<service_principal_password>
export AZURE_TENANT=<service_principal_tenant_id>

Testowanie instalacji rozwiązania Ansible

Masz teraz maszynę wirtualną z zainstalowanym i skonfigurowanym rozwiązaniem Ansible.

W tej sekcji pokazano, jak utworzyć testową grupę zasobów w ramach nowej konfiguracji rozwiązania Ansible. Jeśli nie musisz tego robić, możesz pominąć tę sekcję.

Opcja 1. Używanie polecenia ad hoc ansible

Uruchom następujące polecenie ad hoc rozwiązania Ansible, aby utworzyć grupę zasobów:


#Ansible with azure.azcollection
ansible localhost -m azure.azcollection.azure_rm_resourcegroup -a "name=<resource_group_name> location=<location>"

Zastąp <resource_group_name> wartości i <location> wartościami.

Opcja 2. Pisanie i uruchamianie podręcznika rozwiązania Ansible

  1. Zapisz następujący kod jako create_rg.yml.

    Rozwiązanie Ansible z elementem azure.azcollection

    - hosts: localhost
      connection: local
      collections:
        - azure.azcollection
      tasks:
        - name: Creating resource group
          azure_rm_resourcegroup:
            name: "<resource_group_name"
            location: "<location>"
    

    Zastąp <resource_group_name> wartości i <location> wartościami.

  2. Uruchom podręcznik przy użyciu podręcznika ansible-playbook.

    ansible-playbook create_rg.yml
    

Przeczytaj więcej na temat pliku azure.azcollection.

Czyszczenie zasobów

  1. Zapisz następujący kod jako delete_rg.yml.

    ---
    - hosts: localhost
      tasks:
        - name: Deleting resource group - "{{ name }}"
          azure_rm_resourcegroup:
            name: "{{ name }}"
            state: absent
          register: rg
        - debug:
            var: rg
    
  2. Uruchom podręcznik przy użyciu polecenia ansible-playbook . Zastąp symbol zastępczy nazwą grupy zasobów, która ma zostać usunięta. Wszystkie zasoby w grupie zasobów zostaną usunięte.

    ansible-playbook delete_rg.yml --extra-vars "name=<resource_group>"
    

    Kluczowe punkty:

    • Ze względu na zmienną register i debug sekcję podręcznika wyniki są wyświetlane po zakończeniu polecenia.

Następne kroki