mungkin

Memanipulasi Data yang Mungkin Menggunakan Filter Jinja

Memanipulasi Data yang Mungkin Menggunakan Filter Jinja

Pada beberapa kesempatan, saat Anda menggunakan Ansible untuk mengotomatisasi berbagai tugas, Anda mungkin perlu mengubah dan memanipulasi data. Di Ansible, Anda dapat menggunakan serangkaian filter bawaan atau membuat filter khusus untuk memanipulasi, memproses, dan mengonversi data. Ansible menggunakan filter template jinja2 di latar belakang untuk memungkinkan pengguna membuat filter untuk data tertentu.

Penting untuk dicatat bahwa templating filter dilakukan pada pengontrol Ansible, dan bukan pada host jarak jauh yang ditentukan. Ini membantu mengurangi jumlah data yang ditransfer ke host jarak jauh setelah pemrosesan lokal. Jika Anda tidak terbiasa dengan templating jinja, Jinja adalah bahasa templating yang sederhana, intuitif, cepat, dan aman untuk bahasa pemrograman Python yang dikembangkan setelah kerangka kerja Python populer templat Django.

Kami tidak akan membahas cara kerja templating jinja, meskipun ini bisa menjadi keuntungan tambahan untuk memahami cara kerjanya dengan templat.

Lihat sumber daya yang disediakan di bawah ini untuk mempelajari lebih lanjut tentang Jinja.

https://linkfy.ke/jinjaDocs

Cara Kerja Filter yang Mungkin

Seperti disebutkan, mesin pemfilteran Ansible dibangun di atas model templating Jinja. Ini memungkinkan pengguna untuk menggunakan templat ini untuk memasukkan data, memprosesnya, dan memberikan output berdasarkan filter yang ditentukan.

Setelah data diubah dan difilter menggunakan template yang ditentukan, Anda dapat menggunakannya untuk melakukan tugas lain di Ansible. Anda dapat mempelajari lebih lanjut tentang filter di Ansible di situs web berikut:

https://linkfy.ke/AnsibleFilter

Ansible memiliki banyak filter yang semuanya sangat berguna dan dapat diterapkan ke banyak skenario berbeda. Setelah Anda memiliki output filter, Anda dapat menggunakannya untuk melakukan tugas lain, seperti debugging.

Sintaks umum untuk memfilter data adalah sebagai berikut:

|

Menggunakan Filter yang Mungkin

Sekarang kita akan melihat contoh filter Ansible yang dapat kita gunakan untuk melakukan berbagai tugas.

CATATAN: Seperti yang disebutkan sebelumnya, Ansible memiliki banyak filter, jadi kami tidak dapat membahas semuanya dalam artikel ini. Sebagai gantinya, tutorial ini berusaha memberi Anda dasar-dasar menggunakan berbagai filter yang memungkinkan.

Contoh 1: Filter Data Format yang Mungkin

Filter data format Ansible mengambil struktur data keluaran dalam template dan menggunakan filter yang ditentukan untuk merendernya dalam format yang disebut dalam filter.

Di bawah ini adalah contoh filter untuk mengonversi ke JSON dan YAML:

variabel | to_json
variabel | to_yaml

Sebagai contoh, perhatikan buku pedoman berikut:

- host: semua tugas:
- shell: cat /tmp/all.json
daftar: hasil
- debug:
pesan: "hasil.stdout | to_nice_yaml"

Menjalankan playbook di atas akan menghasilkan output untuk data JSON yang dikonversi ke YAML. Berikut ini adalah contoh keluaran:

Anda juga dapat menentukan filter lain seperti to_nice_yaml, untuk mendapatkan output dalam format yang dapat dibaca manusia.

variabel | to_nice_json
variabel | to_nice_yaml

Dengan menggunakan filter data pemformatan, Anda dapat mengubah data ke dalam berbagai format dan menggunakannya untuk berbagai tugas.

Misalnya, Anda dapat melewatkan string YAML multi-dokumen parse, seperti dalam buku pedoman di bawah ini:

- host: semua tugas:
- shell: cat /tmp/all.json
daftar: hasil
- debug:
pesan: "hasil.stdout | to_yaml | daftar"

Contoh 2: Filter Default yang Mungkin

Filter default Ansible membantu nilai default ke variabel yang tidak ditentukan. Konfigurasi Ansible default gagal variabel yang tidak ditentukan. Misalnya, jika Anda memiliki variabel yang tidak ditentukan, Anda dapat memberi tahu Ansible untuk default ke nilai alih-alih meningkatkan kesalahan.

Sintaks umum untuk filter default adalah sebagai berikut:

| default(nilai)

Sebagai contoh:

- tuan rumah: semua
vars:
tugas:
set_fakta:
undef_var: "0_var | default(5)"

Playbook di atas akan menetapkan nilai variabel '0_var' ke 5 jika tidak didefinisikan secara eksplisit, alih-alih membuat kesalahan.

Untuk menentukan variabel, Anda dapat menggunakan filter wajib. Yang perlu Anda lakukan adalah merujuk pada contoh di atas dan mengganti default dengan yang wajib:

0_var | wajib

Contoh 3: Filter Debug yang Mungkin

Saat men-debug, Anda dapat menggunakan filter type_debug untuk mendapatkan informasi tentang tipe variabel. Jenis variabel akan menggunakan Python, karena mesinnya berbasis Python. Sintaks umum untuk filter adalah sebagai berikut:

variabel | type_debug

Contoh 4: Filter Matematika

Filter matematika Ansible memungkinkan Anda melakukan kueri terkait matematika. Filter ini termasuk yang berikut:

  1. Filter logaritma - variabel | log - menentukan basis logaritma dalam tanda kurung sebagai variable | log (2)
  2. Filter daya - variabel | pow(3) - mengembalikan variabel yang dinaikkan ke kekuatan yang ditentukan
  3. Filter mutlak - variabel | abs - mengembalikan nilai absolut untuk variabel yang diteruskan
  4. Filter akar - variabel | root - ini mengembalikan akar kuadrat variabel. Untuk secara eksplisit menentukan root, berikan nilai dalam tanda kurung; misalnya, akar pangkat tiga variabel | akar(3)

Filter matematika ini bisa sangat berguna, terutama ketika berhadapan dengan sejumlah besar data dan operasi matematika instan.

Contoh 5: Filter Hash

Filter hash yang memungkinkan memungkinkan Anda mendapatkan hash dari string atau data yang diteruskan. Dalam kebanyakan kasus, Anda tidak memerlukan filter ini, tetapi filter ini tersedia untuk digunakan jika diperlukan. Filter ini termasuk yang berikut:

  1. Sha1 - var | hash("sha1")
  2. Sha256/sha512 - var | password_hash(“sha256/512”)
  3. Md5 - var | hash("md5")
  4. String checksum - var | ceksum

Filter Berguna Lainnya

Seperti yang mungkin Anda perhatikan, Ansible memiliki banyak filter. Beberapa filter Ansible yang mungkin berguna bagi Anda termasuk yang berikut:

  • Filter pemisahan URL - “ [dilindungi email]://linuxhint.com:8080/indeks.html?kueri=linux” | urlspilt(“nama host”), - mengembalikan “linuxhint.com”
  • Gabung daftar - daftar | join - digunakan untuk menambahkan daftar ke dalam string var
  • Jalur direktori - jalan | dirname
  • Perluas tilde - jalan | perluas pengguna

Kesimpulan

Filter yang memungkinkan berguna saat Anda melakukan tugas debugging atau membutuhkan informasi spesifik tanpa terlalu banyak mengetik. Karena Ansible mendukung filter khusus, filter ini dapat sangat berguna dalam kasus penggunaan tertentu.

Cara Mengubah Pengaturan Mouse dan Touchpad Menggunakan Xinput di Linux
Sebagian besar distribusi Linux dikirimkan dengan pustaka "libinput" secara default untuk menangani kejadian input pada sistem. Ini dapat memproses ke...
Petakan ulang tombol mouse Anda secara berbeda untuk perangkat lunak yang berbeda dengan Kontrol Tombol X-Mouse
Mungkin Anda membutuhkan alat yang dapat membuat kontrol mouse Anda berubah dengan setiap aplikasi yang Anda gunakan. Jika demikian, Anda dapat mencob...
Ulasan Mouse Nirkabel Microsoft Sculpt Touch
Saya baru-baru ini membaca tentang Microsoft Sculpt Touch mouse nirkabel dan memutuskan untuk membelinya. Setelah menggunakannya untuk sementara waktu...