GNU/Linux >> Belajar Linux >  >> Linux

Pengantar fakta yang mungkin

fakta yang memungkinkan adalah data yang dikumpulkan tentang node target (node ​​host yang akan dikonfigurasi) dan dikembalikan ke node pengontrol. Fakta yang mungkin disimpan dalam format JSON dan digunakan untuk membuat keputusan penting tentang tugas berdasarkan statistiknya. Fakta ada dalam fakta_mungkin variabel, yang dikelola oleh Ansible Engine. Fakta yang memungkinkan memainkan peran utama dalam menyinkronkan dengan host sesuai dengan data real-time .

[ Anda mungkin juga menyukai: Pengantar Menara Ansible ]

Apa sebenarnya fakta yang mungkin dan bagaimana menggunakannya?

Fakta yang mungkin adalah data dan properti sistem khusus host yang Anda sambungkan. Fakta dapat berupa alamat IP, informasi BIOS, informasi perangkat lunak sistem, dan bahkan informasi perangkat keras. Fakta yang mungkin membantu admin untuk mengelola host berdasarkan kondisi mereka saat ini daripada mengambil tindakan secara langsung tanpa memiliki info tentang kesehatan sistem.

Berikut skenarionya:Anda harus menginstal server web Apache di semua host Linux Anda. Anda tahu bahwa host berbasis Red Hat Enterprise Linux (RHEL) berfungsi dengan Red Hat Package Manager (RPM) dan yum/dnf . Distribusi Linux lainnya menggunakan manajer paket mereka sendiri sehingga tidak mungkin untuk melakukan tugas yang sama pada sistem yang berbeda tanpa modifikasi dan referensi pada perbedaan tersebut. Nama paket juga berbeda di antara distribusi. Misalnya, pada sistem RHEL, paket server web Apache adalah httpd, sedangkan di distribusi lain dinamai apache2.

Berikut adalah buku pedoman Ansible untuk mendemonstrasikan masalah ini:

- hosts: all
  tasks:
  - package:
      name: "httpd"
      state: present
    when ansible_facts["os_name"] == "RedHat"
  - package:
      name: "apache2"
      state: present
    when ansible_facts["os_name"] == "Ubuntu"

Di sini, skrip akan mengumpulkan informasi tentang sistem menggunakan fakta yang mungkin dan kemudian melakukan operasi yang sesuai. Saat menginstal pada sistem RHEL, secara otomatis melewatkan paket berbasis Ubuntu dan sebaliknya. Demikian pula, Anda dapat menggunakan fakta Ansible untuk melakukan operasi jika sistem memiliki jumlah sumber daya minimal yang tersedia.

Singkatnya, menggunakan fakta Ansible, admin sistem dapat membuat Ansible lebih pintar dengan menentukan parameter kapan harus melakukan tugas dan kapan tidak.

Mengakses fakta

Fakta yang mungkin menggunakan setup modul untuk mengumpulkan fakta setiap kali sebelum menjalankan buku pedoman.

Menggunakan perintah ad-hoc yang memungkinkan

1. Mengakses fakta yang mungkin menggunakan perintah ad-hoc

setup module mengambil semua detail dari host jarak jauh ke node pengontrol kami dan membuangnya langsung ke layar kami agar fakta dapat dilihat oleh pengguna.

ansible all -m setup

2. Memfilter nilai tertentu dari fakta yang mungkin

Di sini, setup modul digunakan untuk mengambil fakta tentang sistem, dan selanjutnya akan menggunakan filter argumen untuk menampilkan nilai dari fakta Ansible.

ansible all -m setup -a "filter=ansible_cmdline"

Catatan :Fakta yang mungkin diambil hanya saat bekerja dengan buku pedoman. Untuk mengakses fakta Ansible menggunakan perintah ad-hoc, gunakan setup modul.

Menggunakan pedoman yang memungkinkan

Untuk mengakses variabel dari fakta Ansible di buku pedoman Ansible, kita perlu menggunakan nama sebenarnya tanpa menggunakan ansible kata kunci.

ansible_facts["ansible_system"]

ansible_facts["system"] ️

gather_facts modul dari playbook Ansible menjalankan setup modul secara default di awal setiap buku pedoman untuk mengumpulkan fakta tentang host jarak jauh.

3. Mengakses fakta menggunakan buku pedoman Ansible

Ambil fakta yang mungkin dan tampilkan menggunakan buku pedoman.

    - hosts: all
      tasks:
      - debug:
          var: ansible_facts

4. Mengakses fakta tertentu menggunakan buku pedoman Ansible

Mengambil fakta yang mungkin, memfilternya, dan menampilkannya menggunakan buku pedoman.

    - hosts: all
      tasks:
      - debug:
          var: ansible_facts["cmdline"]

Fakta yang mungkin dan tipe datanya

Fakta yang mungkin disimpan dalam format JSON dan dapat ditempatkan ke dalam tiga kategori utama:

Daftar :Menyimpan daftar item dan informasi yang disimpan ditulis di dalam tanda kurung siku [] . Ini sebagian besar adalah fakta yang dapat memiliki banyak nilai, mis., system_capablities . Daftar diakses menggunakan tanda kurung siku dan menentukan indeks.

    ansible_facts["all_ipv6_addresses"][1]
    ansible_facts["all_ipv6_addresses"][2]

Kamus :Menyimpan data sebagai kumpulan pasangan nilai kunci, dan informasi disimpan di dalam kurung kurawal {} . Ini sebagian besar adalah fakta yang memiliki sub-fakta di dalamnya, mis., memory_mb . Kamus diakses menggunakan operator titik.

    ansible_facts.memory_mb.real

Teks Tidak Aman yang Mungkin :Jenis variabel ini tidak memiliki subbagian dan menyimpan data secara langsung, mis., machine . Ansible Unsafe Text dapat diakses langsung dengan menggunakan nama fakta.

    ansible_facts["machine"]

Gunakan type_debug filter untuk memeriksa tipe data untuk fakta-fakta yang mungkin.

- hosts: all
  tasks:
  - debug:
      var: ansible_facts["all_ipv6_addresses"]|type_debug
  - debug:
      var: ansible_facts["memory_mb"]|type_debug
  - debug:
      var: ansible_facts["machine"]|type_debug

type_debug filter meminta tipe data untuk fakta yang ditentukan tanpa mencetak nilai fakta.

[ Mencari lebih banyak tentang otomatisasi sistem? Mulailah dengan The Automated Enterprise, buku gratis dari Red Hat. ] 

Menutup

Fakta yang mungkin adalah data tentang sistem yang ingin Anda konfigurasikan. Fakta-fakta ini membuat sistem Ansible Anda cerdas dengan menyediakan kondisi kapan harus memproses beberapa tugas. Anda juga dapat memproses dengan tidak menentukan atau menggunakan fakta Ansible, tetapi itu akan membuat pekerjaan sebagai sysadmin lebih sibuk karena skrip mungkin gagal atau mengubah beberapa file yang tidak pernah dimaksudkan untuk dimodifikasi.

Untuk informasi lebih lanjut tentang fakta Ansible, silakan lihat dokumentasi resmi.


Linux
  1. Pengantar GNU Autotools

  2. Bahasa Pemrograman C - Pendahuluan

  3. Pengantar editor vi

  1. Mendekonstruksi buku pedoman Ansible

  2. Memahami YAML untuk Ansible

  3. Pengantar singkat tentang peran Ansible untuk administrasi sistem Linux

  1. Pengantar perintah diff

  2. Pengantar Docker

  3. RHCE Ansible Series #4:Variabel Ansible, Fakta dan Register