Tidak boleh difahami

Memanipulasikan Data yang Boleh Dibaca menggunakan Penapis Jinja

Memanipulasikan Data yang Boleh Dibaca menggunakan Penapis Jinja

Pada beberapa kesempatan, ketika anda menggunakan Ansible untuk mengotomatisasi pelbagai tugas, anda mungkin perlu mengubah dan memanipulasi data. Di Ansible, anda boleh menggunakan sekumpulan penapis terbina dalam atau membuat penapis tersuai untuk memanipulasi, memproses, dan menukar data. Ansible menggunakan penapis templat jinja2 di latar belakang untuk membolehkan pengguna membuat penapis untuk data yang ditentukan.

Penting untuk diperhatikan bahawa templat penapis dijalankan pada pengawal Ansible, dan bukan pada hos jauh yang ditentukan. Ini membantu mengurangkan jumlah data yang dipindahkan ke host jauh setelah pemprosesan tempatan. Sekiranya anda tidak terbiasa dengan templat jinja, Jinja adalah bahasa templat yang ringkas, intuitif, cepat, dan selamat untuk bahasa pengaturcaraan Python yang dikembangkan setelah templat Django rangka Python yang popular.

Kami tidak akan mengetahui bagaimana templat jinja berfungsi, walaupun dapat menjadi kelebihan tambahan untuk memahami cara kerjanya dengan templat.

Lihat sumber yang disediakan di bawah untuk mengetahui lebih lanjut mengenai Jinja.

https: // linkfy.ke / jinjaDocs

Bagaimana Penapis Boleh Dikendalikan

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

Setelah data diubah dan disaring menggunakan templat yang ditentukan, anda dapat menggunakannya untuk melakukan tugas lain di Ansible. Anda boleh mengetahui lebih lanjut mengenai penapis di Ansible di laman web berikut:

https: // linkfy.ke / AnsibleFilters

Ansible mempunyai banyak penapis yang semuanya sangat berguna dan boleh digunakan untuk pelbagai senario yang berbeza. Sebaik sahaja anda mempunyai output penapis, anda dapat menggunakannya untuk melakukan tugas lain, seperti debug.

Sintaks umum untuk menyaring data adalah seperti berikut:

|

Menggunakan Penapis Boleh Dengar

Kami sekarang akan melihat contoh penapis Ansible yang boleh kita gunakan untuk melakukan pelbagai tugas.

NOTA: Seperti yang disebutkan sebelumnya, Ansible mempunyai banyak penapis, jadi kami tidak dapat membahas semuanya dalam artikel ini. Sebaliknya, tutorial ini bertujuan untuk memberi anda asas menggunakan pelbagai penapis Ansible.

Contoh 1: Penapis Data Format Ansible

Penapis data format Ansible mengambil struktur data output dalam templat dan menggunakan penapis yang ditentukan untuk menjadikannya dalam format yang disebut dalam penapis.

Berikut adalah penapis contoh untuk menukar ke JSON dan YAML:

pemboleh ubah | kepada_json
pemboleh ubah | ke_yaml

Sebagai contoh, pertimbangkan buku main berikut:

- hos: semua tugas:
- shell: kucing / tmp / semua.json
daftar: hasil
- nyahpepijat:
msg: "hasil.stdout | ke_nice_yaml "

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

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

pemboleh ubah | kepada_nice_json
pemboleh ubah | ke_nice_yaml

Dengan menggunakan penapis data pemformatan, anda dapat mengubah data menjadi pelbagai format dan menggunakannya untuk pelbagai tugas.

Contohnya, anda boleh mengurai rentetan YAML berbilang dokumen, seperti dalam buku main di bawah:

- hos: semua tugas:
- shell: kucing / tmp / semua.json
daftar: hasil
- nyahpepijat:
msg: "hasil.stdout | ke_yaml | senarai "

Contoh 2: Penapis Lalai Ansible

Penapis lalai Ansible membantu nilai lalai ke pemboleh ubah tidak ditentukan. Konfigurasi Ansible lalai gagal pemboleh ubah yang tidak ditentukan. Sebagai contoh, jika anda mempunyai pemboleh ubah yang tidak ditentukan, anda boleh memberitahu Ansible secara default kepada nilai dan bukannya menimbulkan ralat.

Sintaks umum untuk penapis lalai adalah seperti berikut:

| nilai asal)

Sebagai contoh:

- tuan rumah: semua
vars:
tugas:
set_fact:
undef_var: "0_var | lalai (5)"

Buku permainan di atas akan menetapkan nilai pemboleh ubah '0_var' menjadi 5 jika tidak ditentukan secara jelas, bukannya membuang kesalahan.

Untuk menentukan pemboleh ubah, anda boleh menggunakan penapis wajib. Yang perlu anda lakukan adalah merujuk kepada contoh di atas dan ganti lalai dengan yang wajib:

0_var | wajib

Contoh 3: Penapis Debug Ansible

Semasa melakukan debug, anda boleh menggunakan filter type_debug untuk mendapatkan maklumat mengenai jenis pemboleh ubah. Jenis pemboleh ubah akan berada di Python, kerana enjinnya berasaskan Python. Sintaks umum untuk penapis adalah seperti berikut:

pemboleh ubah | taip_debug

Contoh 4: Penapis Matematik

Penapis matematik Ansible membolehkan anda melakukan pertanyaan berkaitan matematik. Penapis ini merangkumi yang berikut:

  1. Penapis logaritma - pemboleh ubah | log - menentukan asas logaritma dalam kurungan sebagai variabel | log (2)
  2. Penapis kuasa - pemboleh ubah | pow (3) - mengembalikan pemboleh ubah yang dinaikkan ke daya yang ditentukan
  3. Penapis mutlak - pemboleh ubah | abs - mengembalikan nilai mutlak untuk pemboleh ubah lulus
  4. Penapis akar - pemboleh ubah | root - ini mengembalikan punca kuasa dua pemboleh ubah. Untuk menyatakan akar secara jelas, berikan nilai dalam kurungan; sebagai contoh, akar kubus pemboleh ubah | akar (3)

Penapis matematik ini sangat berguna, terutamanya ketika berurusan dengan sejumlah besar data dan operasi matematik segera.

Contoh 5: Penapis Hash

Penapis hash Ansible membolehkan anda memperoleh hash rentetan atau data yang dilalui. Dalam kebanyakan kes, anda tidak memerlukan penapis ini, tetapi ia boleh digunakan jika diperlukan. Penapis ini merangkumi yang berikut:

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

Penapis Berguna Lain

Seperti yang anda perhatikan, Ansible mempunyai banyak penapis. Beberapa penapis Ansible yang mungkin berguna bagi anda termasuk yang berikut:

  • Penapis pemisah URL - “[Dilindungi e-mel]: // linuxhint.com: 8080 / indeks.html?pertanyaan = linux ”| urlspilt ("nama host"), - mengembalikan "linuxhint.com ”
  • Sertai senarai - senarai | join - digunakan untuk menambahkan senarai ke dalam rentetan var
  • Laluan direktori - jalan | nama panggilan
  • Kembangkan sedikit - jalan | pengembang

Kesimpulannya

Penapis yang boleh diterima sangat berguna semasa anda melakukan tugas penyahpepijatan atau memerlukan maklumat khusus tanpa terlalu banyak menaip. Oleh kerana Ansible menyokong penapis khas, penapis ini sangat berguna dalam kes penggunaan tertentu.

Cara Mengubah Tetapan Tetikus dan Pad Sentuh Menggunakan Xinput di Linux
Sebilangan besar pengedaran Linux dihantar dengan perpustakaan "libinput" secara lalai untuk menangani peristiwa input pada sistem. Ia dapat memproses...
Buat semula butang tetikus anda secara berbeza untuk perisian yang berbeza dengan X-Mouse Button Control
Mungkin anda memerlukan alat yang dapat mengubah kawalan tetikus anda dengan setiap aplikasi yang anda gunakan. Sekiranya ini berlaku, anda boleh menc...
Kajian Tetikus Tanpa Wayar Microsoft Sculpt Touch
Saya baru-baru ini membaca mengenai Sentuhan Microsoft Sculpt tetikus tanpa wayar dan memutuskan untuk membelinya. Setelah menggunakannya sebentar, sa...