GNU/Linux >> Belajar Linux >  >> Linux

Cara Menggunakan Variabel dalam Ansible Playbook

Jika Anda telah melakukan beberapa pemrograman dengan Python, Java, C, C++ atau dalam bahasa pemrograman lainnya, maka variabel bukanlah hal yang asing. Sama seperti dalam bahasa pemrograman, variabel dalam Ansible digunakan untuk menyimpan nilai.

Di Ansible, variabel memberikan fleksibilitas yang sangat dibutuhkan dalam Playbook, template, dan inventaris seperti yang akan kita lihat nanti dalam tutorial ini. Variabel bawaan dapat digunakan untuk menyediakan informasi sistem seperti nama host, arsitektur sistem, antarmuka, dll. Variabel juga dapat digunakan untuk mengganti string dan juga dalam loop untuk mengulang melalui serangkaian nilai yang diberikan.

Nama variabel yang valid dibuat dari karakter berikut

  • Surat
  • Angka
  • Menggarisbawahi
  • Kombinasi dari dua atau semua hal di atas

Variabel HARUS SELALU DIMULAI DENGAN HURUF  dan TIDAK BOLEH MENGANDUNG SPASI APAPUN.

Contoh nama variabel yang dapat diterima meliputi:

  •  meja putar
  •  meja putar
  •  meja putar01
  •  meja putar_01

Nama-nama di bawah ini tidak memenuhi syarat sebagai nama variabel yang valid

  •   putar meja
  •  meja putar
  •  01meja putar
  •  01

Sekarang mari kita lihat kasus penggunaan yang berbeda dari Variabel di Ansible

Variabel di Playbook

Seperti yang Anda ketahui, Buku pedoman adalah kumpulan permainan atau tugas yang harus dilakukan pada sistem jarak jauh. Dalam buku pedoman, variabel berguna dalam menentukan bagaimana tugas dapat dieksekusi. Menetapkan nilai ke variabel dalam buku pedoman cukup mudah dan lugas.

Mulailah dengan memanggil vars kata kunci kemudian panggil nama variabel diikuti dengan nilai seperti yang ditunjukkan.

--- - host:all vars:salutations:Halo teman-teman! tugas:- nama:Penggunaan Dasar Variabel yang Mungkin debug:msg:"{{ salam }}"

Dalam pedoman di atas, nama variabelnya adalah  salutations dan nilainya adalah Halo dunia! Saat playbook dijalankan, nilai playbook diakses dengan menempatkan variabel di antara kurung kurawal seperti yang ditunjukkan di atas. Saat dijalankan, playbook mencetak pesan ‘Halo guys ' di terminal.

Variabel dengan Array

Anda dapat menggunakan array dan menetapkannya ke variabel seperti yang ditunjukkan pada sintaks di bawah ini:

vars:

nama array:

– nilai1

– nilai2

Misalnya, buku pedoman di bawah ini berisi larik 5 nama siswa yang disimpan dalam variabel yang disebut siswa. Anda dapat mengakses nama siswa melalui pengindeksan ( seperti yang Anda lakukan dalam larik dalam bahasa pemrograman lainnya)  Misalnya, untuk mengambil nama 'Arthur' dari daftar larik gunakan sintaks siswa [2] seperti yang ditunjukkan di bawah ini.

- host:semua vars:siswa:- Mark - Melisa - Arthur - Kevin - Lisa tugas:- nama:Variabel Daftar Ansible Contoh debug:msg:"{{ siswa[2] }}"

Variabel dengan kamus

Dari daftar Array, Anda dapat menentukan lebih lanjut setiap entri menggunakan pasangan nilai kunci yang membentuk apa yang kita sebut daftar kamus. Sintaksnya ditunjukkan di bawah ini

vars:

nama array:

kamus_nama1:

nilai1:nilai item1

nilai2:nilai barang2

kamus_nama2:

nilai1:nilai item1

nilai2:nilai barang2

Menggunakan contoh kami sebelumnya, kami dapat memiliki daftar kamus di bawah

- host:semua  vars:  siswa:         - Tandai:           kota:Melbourne           alamat:0045-0987-8642 - Angela:           kota:Sydney      alamat:    7685 

Untuk mengakses kamus, cukup tambahkan tugas di bawah

  tugas:   - debug:       var:siswa

Variabel dalam file Inventaris

Jika Anda memiliki sistem host berbeda yang memiliki atribut atau nilai yang sama, Anda dapat menentukan apa yang kami sebut variabel grup. Ini digunakan untuk menetapkan atribut yang umum untuk semua host.

Misalnya:

Mari kita asumsikan kita memiliki 2 server web:webserver_1 dan server web_2 yang keduanya mendengarkan port 443 dan server ntp-nya adalah us.pool.ntp.org. File inventaris akan muncul seperti yang ditunjukkan:

[web_servers]webserver_1webserver_2[web_servers:vars]http_port=443ntp_server=us.pool.ntp.org

Dalam file buku pedoman YAML, ini akan direpresentasikan seperti yang ditunjukkan

   web_servers:    hosts:       web_server_1:       web_server_2:         vars:          http_port=80           ntp_server=us.pool.ntp.org

Bagian pertama mendefinisikan host jarak jauh yaitu webserver_1 dan server web_1 , sedangkan bagian kedua mengelompokkan atribut umum antara dua server. Ini hadir sebagai metode yang sangat nyaman untuk menerapkan variabel yang umum untuk beberapa sistem host.

Variabel Host dan Grup

Meskipun Anda dapat menentukan variabel dalam file inventaris, praktik standar tidak menyarankan penyimpanan variabel dalam file inventaris. Di sinilah file variabel host dan grup masuk.

Dalam file variabel host, variabel hanya berlaku untuk satu sistem host dalam file inventaris. File variabel host biasanya disimpan di host_vars direktori yang biasanya ditentukan dalam /etc/ansible/ jalan.

Pertimbangkan file inventaris di bawah ini di mana kami memiliki 2 server masing-masing menggunakan server ntp yang berbeda

[web_servers]webserver_1  ntp_server=uk.pool.ntp.orgwebserver_2  ntp_server=de.pool.ntp.org

Daripada  menentukan variabel ntp_server di file inventaris, buat 2 file variabel host di direktori host_vars dengan nama file yang cocok dengan setiap nama host sistem host:

# vim /etc/ansible/host_vars/webserver_1---ntp_server=uk.pool.ntp.org# vim /etc/ansible/host_vars/webserver_2---ntp_server=de.pool.ntp.org

Jika sistem host memiliki nilai yang sama, buat file variabel grup di  group_vars direktori. Nama file variabel grup harus cocok dengan grup host

Perhatikan file inventaris di bawah ini

[web_servers]webserver_1webserver_2[web_servers:vars]ansible_user=rootansible_port=22

Bagian kedua dapat didefinisikan sebagai file di direktori group_vars seperti yang ditunjukkan. Ini harus berada di direktori /etc/ansible. Ingat bahwa nama file harus sama dengan nama grup.

# vim /etc/ansible/group_vars/web_servers---ansible_user=rootansible_port=22

Di sini, variabel akan dapat diakses oleh semua host grup yang disebut  server_web.

Variabel khusus di Ansible Playbook

Kategori variabel lainnya adalah variabel khusus. Ini adalah variabel bawaan yang tidak dapat disetel oleh pengguna dan yang akan selalu diganti oleh Ansible. Untuk mendapatkan daftar nama variabel sistem yang unik, jalankan perintah

# memungkinkan -m menyiapkan nama host

Contoh variabel khusus tersebut meliputi:

  • ansible_all_ipv4_addresses
  • ansible_architecture ,
  • ansible_bios_version ,
  • ansible_os_family ,
  • distribusi_mungkin,

Ini akan menampilkan  keluaran dalam format JSON

# memungkinkan -m setup localhost

Dengan fleksibilitas dan kemudahan penggunaan, variabel melayani tujuan klasik dalam buku pedoman dan file inventaris. Mereka menghindari pengulangan yang tidak perlu dan membuat kehidupan administrator sistem menjadi lebih mudah.

Baca Juga: Cara Menggunakan Loop di Ansible Playbook

Baca Juga :Cara Menggunakan Ansible Vault untuk Mengamankan Data Sensitif


Linux
  1. Bagaimana saya menggunakan Ansible dan anacron untuk otomatisasi

  2. Cara menggunakan Ansible untuk mengatur pemantauan sistem dengan Prometheus

  3. Bagaimana cara meneruskan variabel tambahan ke buku pedoman Ansible

  1. Cara Menginstal dan Menggunakan Ansible di Debian 11

  2. Cara membuat Playbook yang Mungkin

  3. Cara menginstal paket perangkat lunak dengan playbook Ansible

  1. Cara Menggunakan Tag di Ansible Playbook (Contoh)

  2. Cara Mengunduh dan Menggunakan Ansible Galaxy Roles di Ansible Playbook

  3. Bagaimana cara menggunakan variabel atom di C?