Mulai: Mengonfigurasi Ansible pada VM Azure

Perhatian

Artikel ini mereferensikan CentOS, distribusi Linux yang mendekati status End Of Life (EOL). Harap pertimbangkan penggunaan dan rencanakan yang sesuai. Untuk informasi selengkapnya, lihat panduan Akhir Masa Pakai CentOS.

Artikel ini menunjukkan cara menginstal Ansible pada VM Centos di Azure.

Dalam artikel ini, Anda akan mempelajari cara:

  • Buat grup sumber daya
  • Membuat mesin virtual CentOS
  • Menginstal Ansible di mesin virtual
  • Sambungkan ke mesin virtual melalui SSH
  • Mengonfigurasikan Ansible di mesin virtual

Prasyarat

  • Langganan Azure: Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum memulai.
  • Perwakilan layanan Azure: Buat perwakilan layanan, catat nilai-nilai berikut: appId, displayName, kata sandi, dan penyewa.

Membuat mesin virtual

  1. Buat grup sumber daya Azure.

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

    Anda mungkin perlu mengganti parameter --location dengan nilai yang sesuai untuk lingkungan Anda.

  2. Membuat mesin virtual Azure untuk Ansible.

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

    Ganti kata sandi Anda <password>.

  3. Dapatkan alamat Ip publik dari mesin virtual Azure.

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

Sambungkan mesin virtual Anda memulai SSH

Menggunakan perintah SSH, sambungkan ke alamat IP publik mesin virtual Anda.

ssh azureuser@<vm_ip_address>

Ganti <vm_ip_address> dengan nilai yang sesuai yang dikembalikan dalam perintah sebelumnya.

Menginstal Ansible di mesin virtual

Ansible 2.9 dengan modul azure_rm

Jalankan perintah berikut untuk mengonfigurasi Ansible 2.9 di Centos:

#!/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]

Ansible 2.10 dengan azure.azcollection

Jalankan perintah berikut untuk mengonfigurasi Ansible di Centos:

#!/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

Poin utama:

  • Node kontrol Ansible memerlukan Python 2 (versi 2.7) atau Python 3 (versi 3.5 dan lebih tinggi) diinstal. Ansible 4.0.0 dan ansible-core 2.11 memiliki ketergantungan lunak pada Python 3.8, tetapi berfungsi dengan versi yang lebih rendah. Namun, Ansible 5.0.0 dan ansible-core 2.12 akan membutuhkan 3.8 dan yang lebih baru.

Membuat info masuk Azure

Untuk mengonfigurasi info masuk Ansible, Anda memerlukan informasi berikut:

  • ID langganan Azure Anda dan ID penyewa
  • ID dan rahasia aplikasi perwakilan layanan

Konfigurasikan info masuk Ansible menggunakan salah satu teknik berikut:

Opsi 1: Buat file info masuk Ansible

Di bagian ini, Anda membuat file info masuk lokal untuk memberikan info masuk ke Ansible. Untuk alasan keamanan, file info masuk hanya boleh digunakan di lingkungan pengembangan.

Untuk informasi selengkapnya tentang mendefinisikan info masuk Ansible, lihat Memberikan Info Masuk ke Modul Azure.

  1. Setelah Anda berhasil terhubung ke mesin virtual host, buat dan buka file bernama credentials:

    mkdir ~/.azure
    vi ~/.azure/credentials
    
  2. Sisipkan baris berikut ke dalam file. Ganti tempat penampung dengan nilai perwakilan layanan.

    [default]
    subscription_id=<subscription_id>
    client_id=<service_principal_app_id>
    secret=<service_principal_password>
    tenant=<service_principal_tenant_id>
    
  3. Simpan dan tutup file.

Opsi 2: Tentukan variabel lingkungan Ansible

Pada mesin virtual host, ekspor nilai perwakilan layanan untuk mengonfigurasi info masuk Ansible Anda.

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>

Menguji instalasi Ansible

Kini Anda memiliki mesin virtual dengan Ansible yang diinstal dan dikonfigurasi!

Bagian ini menunjukkan cara membuat grup sumber daya uji dalam konfigurasi Ansible baru Anda. Jika Anda tidak perlu melakukan hal tersebut, Anda dapat melewati bagian ini.

Opsi 1: Menggunakan perintah ansible ad-hoc

Jalankan perintah Ansible ad-hoc berikut untuk membuat grup sumber daya:

#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>"

Ganti <resource_group_name> dan <location> dengan nilai Anda.

Opsi 2: Menulis dan menjalankan playbook Ansible

  1. Simpan kode berikut sebagai create_rg.yml.

    Ansible 2.9 dengan modul azure_rm

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

    Ansible 2.10 dengan azure.azcollection

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

    Ganti <resource_group_name> dan <location> dengan nilai Anda.

  2. Jalankan playbook menggunakan ansible-playbook.

    ansible-playbook create_rg.yml
    

Baca selengkapnya tentang azure.azcollection.

Membersihkan sumber daya

  1. Simpan kode berikut sebagai delete_rg.yml.

    ---
    - hosts: localhost
      tasks:
        - name: Deleting resource group - "{{ name }}"
          azure_rm_resourcegroup:
            name: "{{ name }}"
            state: absent
          register: rg
        - debug:
            var: rg
    
  2. Jalankan playbook menggunakan perintah ansible-playbook. Ganti tempat penampung dengan nama grup sumber daya yang akan dihapus. Semua sumber daya dalam grup sumber daya akan dihapus.

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

    Poin utama:

    • Karena variabel register dan bagian debug dari playbook, hasilnya akan ditampilkan ketika perintah selesai.

Langkah berikutnya