Share via


Başlarken: Azure VM'de Ansible'ı Yapılandırma

Dikkat

Bu makalede, Kullanım Süresi Sonu (EOL) durumuna yakın bir Linux dağıtımı olan CentOS'a başvuruda bulunur. Lütfen kullanımınızı göz önünde bulundurun ve uygun şekilde planlayın. Daha fazla bilgi için bkz . CentOS Kullanım Süresi Sonu kılavuzu.

Bu makalede, Ansible'ın Azure'daki bir Centos VM'sine nasıl yükleneceği gösterilmektedir.

Bu makalede şunları öğreneceksiniz:

  • Kaynak grubu oluşturma
  • CentOS sanal makinesi oluşturma
  • Ansible'ı sanal makineye yükleme
  • SSH aracılığıyla sanal makineye Bağlan
  • Ansible'ı sanal makinede yapılandırma

Önkoşullar

  • Azure aboneliği: Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Sanal makine oluşturun

  1. Azure kaynak grubu oluşturun.

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

    parametresini --location ortamınız için uygun değerle değiştirmeniz gerekebilir.

  2. Ansible için Azure sanal makinesini oluşturun.

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

    <password> Parolanızı değiştirin.

  3. Azure sanal makinesinin genel Ip adresini alın.

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

SSH aracılığıyla sanal makinenize Bağlan

SSH komutunu kullanarak sanal makinenizin genel IP adresine bağlanın.

ssh azureuser@<vm_ip_address>

değerini <vm_ip_address> önceki komutlarda döndürülen uygun değerle değiştirin.

Ansible'ı sanal makineye yükleme

azure_rm modülü ile Ansible 2.9

Centos'ta Ansible 2.9'u yapılandırmak için aşağıdaki komutları çalıştırın:

#!/bin/bash

# Update all packages that have available updates.
sudo yum update -y

# Install Python 3 and pip.
sudo yum install -y python3-pip

# Upgrade pip3.
sudo pip3 install --upgrade pip

# Install Ansible.
pip3 install "ansible==2.9.17"

# Install Ansible azure_rm module for interacting with Azure.
pip3 install ansible[azure]

azure.azcollection ile Ansible 2.10

Centos'ta Ansible'ı yapılandırmak için aşağıdaki komutları çalıştırın:

#!/bin/bash

# Update all packages that have available updates.
sudo yum update -y

# Install Python 3 and pip.
sudo yum install -y python3-pip

# Upgrade pip3.
sudo pip3 install --upgrade pip

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

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

Önemli noktalar:

  • Ansible denetim düğümü için Python 2 (sürüm 2.7) veya Python 3 (sürüm 3.5 ve üzeri) yüklü olmalıdır. Ansible 4.0.0 ve ansible-core 2.11, Python 3.8'e geçici bir bağımlıdır ancak daha düşük sürümlerle çalışır. Ancak Ansible 5.0.0 ve ansible-core 2.12 için 3.8 ve üstü gerekir.

Azure kimlik bilgilerini oluşturma

Ansible kimlik bilgilerini yapılandırmak için aşağıdaki bilgilere ihtiyacınız vardır:

  • Azure abonelik kimliğiniz ve kiracı kimliğiniz
  • Hizmet sorumlusu uygulama kimliği ve gizli dizi

Ansible kimlik bilgilerini aşağıdaki tekniklerden birini kullanarak yapılandırın:

Seçenek 1: Ansible kimlik bilgileri dosyası oluşturma

Bu bölümde, Ansible'a kimlik bilgileri sağlamak için bir yerel kimlik bilgileri dosyası oluşturacaksınız. Güvenlik nedeniyle kimlik bilgileri dosyaları yalnızca geliştirme ortamlarında kullanılmalıdır.

Ansible kimlik bilgilerini tanımlama hakkında daha fazla bilgi için bkz . Azure Modüllerine Kimlik Bilgileri Sağlama.

  1. Konak sanal makinesine başarıyla bağlandıktan sonra adlı credentialsbir dosya oluşturun ve açın:

    mkdir ~/.azure
    vi ~/.azure/credentials
    
  2. Dosyaya aşağıdaki satırları ekleyin. Yer tutucuları hizmet sorumlusu değerleriyle değiştirin.

    [default]
    subscription_id=<subscription_id>
    client_id=<service_principal_app_id>
    secret=<service_principal_password>
    tenant=<service_principal_tenant_id>
    
  3. Dosyayı kaydedip kapatın

Seçenek 2: Ansible ortam değişkenlerini tanımlama

Ana bilgisayar sanal makinesinde, Ansible kimlik bilgilerinizi yapılandırmak için hizmet sorumlusu değerlerini dışarı aktarın.

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>

Ansible yüklemesini test edin

Artık Ansible yüklü ve yapılandırılmış bir sanal makineniz var!

Bu bölümde, yeni Ansible yapılandırmanızda bir test kaynak grubunun nasıl oluşturulacağı gösterilmektedir. Bunu yapmanız gerekmiyorsa bu bölümü atlayabilirsiniz.

Seçenek 1: Geçici bir ansible komutu kullanma

Kaynak grubu oluşturmak için aşağıdaki geçici Ansible komutunu çalıştırın:

#Ansible 2.9 with azure_rm module
ansible localhost -m azure_rm_resourcegroup -a "name=ansible-test location=eastus"

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

ve <location> değerlerini değerlerinizle değiştirin<resource_group_name>.

2. Seçenek: Ansible playbook yazma ve çalıştırma

  1. Aşağıdaki kodu olarak create_rg.ymlkaydedin.

    azure_rm modülü ile Ansible 2.9

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

    azure.azcollection ile Ansible 2.10

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

    ve <location> değerlerini değerlerinizle değiştirin<resource_group_name>.

  2. Ansible-playbook kullanarak playbook'u çalıştırın.

    ansible-playbook create_rg.yml
    

azure.azcollection hakkında daha fazla bilgi edinin.

Kaynakları temizleme

  1. Aşağıdaki kodu olarak delete_rg.ymlkaydedin.

    ---
    - hosts: localhost
      tasks:
        - name: Deleting resource group - "{{ name }}"
          azure_rm_resourcegroup:
            name: "{{ name }}"
            state: absent
          register: rg
        - debug:
            var: rg
    
  2. ansible-playbook komutunu kullanarak playbook'u çalıştırın. Yer tutucuyu silinecek kaynak grubunun adıyla değiştirin. Kaynak grubundaki tüm kaynaklar silinir.

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

    Önemli noktalar:

    • Playbook'un register değişkeni ve debug bölümü nedeniyle, komut tamamlandığında sonuçlar görüntülenir.

Sonraki adımlar