Відповідальний

Маніпулюйте відповідальними даними за допомогою фільтрів Jinja

Маніпулюйте відповідальними даними за допомогою фільтрів Jinja

Іноді, коли ви використовуєте Ansible для автоматизації різних завдань, можливо, вам доведеться перетворити дані та маніпулювати ними. У Ansible ви можете використовувати набір вбудованих фільтрів або створювати власні фільтри для обробки, обробки та перетворення даних. Ansible використовує фільтри шаблонів jinja2 у фоновому режимі, щоб дозволити користувачам створювати фільтри для вказаних даних.

Важливо зазначити, що шаблонування фільтрів здійснюється на контролері Ansible, а не на вказаних віддалених хостах. Це допомагає зменшити обсяг даних, переданих віддаленому хосту після локальної обробки. Якщо ви не знайомі з шаблонуванням jinja, Jinja - це проста, інтуїтивно зрозуміла, швидка та безпечна мова шаблонів для мови програмування Python, розроблена за популярними шаблонами Django framework Python.

Ми не будемо вивчати, як працює шаблонування jinja, хоча це може бути додатковою перевагою, щоб зрозуміти, як це працює з шаблонами.

Перегляньте поданий нижче ресурс, щоб дізнатись більше про Jinja.

https: // linkfy.до / jinjaDocs

Як працюють відповідні фільтри

Як вже згадувалося, механізм фільтрації Ansible базується на шаблонній моделі Jinja. Це дозволяє користувачам використовувати ці шаблони для введення даних, їх обробки та надання результатів на основі визначених фільтрів.

Після того, як дані трансформуються та фільтруються за допомогою визначеного шаблону, ви можете використовувати їх для виконання інших завдань у Ansible. Ви можете дізнатись більше про фільтри в Ansible на веб-сайті:

https: // linkfy.до / AnsibleFilters

Ansible має безліч фільтрів, які є дуже корисними та застосовними до багатьох різних сценаріїв. Отримавши вихід фільтра, ви можете використовувати його для виконання інших завдань, таких як налагодження.

Загальний синтаксис для фільтрації даних такий:

|

Використання Ansible фільтрів

Зараз ми розглянемо приклади фільтрів Ansible, які ми можемо використовувати для виконання різних завдань.

ПРИМІТКА: Як зазначалося раніше, Ansible має безліч фільтрів, тому ми не можемо охопити всі з них у цій статті. Натомість цей посібник має на меті надати вам основи використання різних фільтрів Ansible.

Приклад 1: Фільтри даних формату Ansible

Фільтри даних формату Ansible беруть структуру вихідних даних у шаблоні та використовують вказаний фільтр для візуалізації у форматі, викликаному у фільтрі.

Нижче наведено приклад фільтра для перетворення в JSON та YAML:

змінна | to_json
змінна | to_yaml

Наприклад, розглянемо наступний посібник:

- господарі: всі завдання:
- оболонка: cat / tmp / all.json
реєстр: результат
- налагоджувати:
msg: "результат.stdout | to_nice_yaml "

Запуск вищезазначеного посібника дасть результат для даних JSON, перетворених у YAML. Нижче наведено приклад виводу:

Ви також можете вказати інші фільтри, такі як to_nice_yaml, щоб отримати вихідні дані у зручному для читання форматі.

змінна | to_nice_json
змінна | to_nice_yaml

Використовуючи фільтри форматування даних, ви можете перетворити дані у різні формати та використовувати їх для різних завдань.

Наприклад, ви можете передавати синтаксичний аналіз рядків YAML з декількох документів, як у наведеному нижче посібнику:

- господарі: всі завдання:
- оболонка: cat / tmp / all.json
реєстр: результат
- налагоджувати:
msg: "результат.stdout | to_yaml | список "

Приклад 2: Ansible фільтр за замовчуванням

Фільтр за замовчуванням Ansible допомагає встановити значення за замовчуванням для невизначених змінних. Конфігурація Ansible за замовчуванням не відповідає невизначеним змінним. Наприклад, якщо у вас невизначена змінна, ви можете сказати Ansible за замовчуванням значення, замість того, щоб викликати помилку.

Загальний синтаксис фільтра за замовчуванням такий:

| значення за замовчуванням)

Наприклад:

- господарі: всі
варіюється:
завдання:
set_fact:
undef_var: "0_var | за замовчуванням (5)"

У наведеному вище посібнику буде встановлено значення змінної '0_var' до 5, якщо це не визначено явно, замість того, щоб викликати помилку.

Для визначення змінної можна використовувати обов’язковий фільтр. Все, що вам потрібно зробити, це звернутися до прикладу вище та замінити за замовчуванням на обов’язковий:

0_var | обов'язково

Приклад 3: Ansible Налагоджувальні фільтри

Під час налагодження ви можете використовувати фільтр type_debug, щоб отримати інформацію про тип змінної. Тип змінної буде в Python, оскільки движок заснований на Python. Загальний синтаксис фільтра такий:

змінна | type_debug

Приклад 4: Математичні фільтри

Математичні фільтри Ansible дозволяють виконувати математичні запити. Ці фільтри включають наступне:

  1. Логарифмовий фільтр - змінна | log - визначає основу логарифму в дужках як змінну | журнал (2)
  2. Фільтр живлення - змінна | pow (3) - повертає підняту змінну до заданої потужності
  3. Абсолютний фільтр - змінна | abs - повертає абсолютне значення для переданої змінної
  4. Кореневий фільтр - змінна | корінь - повертає квадратний корінь змінної. Щоб явно вказати корінь, передайте значення в дужки; наприклад, куб корінь змінна | корінь (3)

Ці математичні фільтри можуть бути дуже корисними, особливо коли йдеться про великі обсяги даних та миттєві математичні операції.

Приклад 5: Хеш-фільтри

Хеш-фільтри Ansible дозволяють отримати хеш рядка або переданих даних. У більшості випадків ці фільтри вам не знадобляться, але вони доступні для використання у разі потреби. Ці фільтри включають наступне:

  1. Ша1 - var | хеш (“sha1”)
  2. Sha256 / sha512 - var | password_hash (“sha256 / 512”)
  3. Md5 - var | хеш (“md5”)
  4. Рядок контрольної суми - var | контрольна сума

Інші корисні фільтри

Як ви могли помітити, Ansible має безліч фільтрів. Деякі фільтри Ansible, які можуть вам виявитися корисними, включають наступне:

  • Фільтр розділення URL-адрес - “[Електронна пошта захищена]: // linuxhint.com: 8080 / index.html?запит = linux ”| urlspilt (“ім’я хосту”), - повертає “linuxhint.com ”
  • Приєднатися до списку - список | join - використовується для додавання списку у рядок var
  • Шлях до каталогу - шлях | ім'я
  • Розгорніть тильду - шлях | розгорнути користувач

Висновок

Ансибельні фільтри стають у пригоді, коли ви виконуєте завдання налагодження або коли вам потрібна конкретна інформація, не надто вводячи текст. Оскільки Ansible підтримує власні фільтри, ці фільтри можуть бути особливо корисними в конкретних випадках використання.

HD Remastered Games для Linux, які раніше ніколи не випускали Linux
Багато розробників і видавців ігор випускають HD-ремастер старих ігор, щоб продовжити життя франшизи. Будь ласка, шанувальники просять сумісність із с...
Як використовувати AutoKey для автоматизації ігор Linux
AutoKey - це утиліта автоматизації робочого столу для Linux та X11, запрограмована на Python 3, GTK та Qt. Використовуючи його сценарії та функціональ...
How to Show FPS Counter in Linux Games
Linux gaming got a major push when Valve announced Linux support for Steam client and their games in 2012. Since then, many AAA and indie games have m...