Вопрос: "Как использовать вывод команды внутри значения Ansible ini_file?"
A: Зарегистрируйте результат команды и используйте его в качестве значения, например.
- хосты: test_24
сбор_фактов: ложь
задачи:
- оболочка: 'дата | md5sum | вырезать -d" " -f1'
регистрация: результат
check_mode: ложь
- отладка:
переменная: результат
- имя: заменить HardwareID на новый MD5
ini_файл:
путь: etc/app/config.ini
раздел: ПО УМОЛЧАНИЮ
опция: hardware_token
значение: "{{результат.stdout }}"
дает (работает с --check --diff)
ЗАДАЧА [Заменить HardwareID новым MD5] **************************************
--- до: etc/app/config.ini (содержимое)
+++ после: etc/app/config.ini (содержимое)
@@ -0,0 +1,3 @@
+
+[ПО УМОЛЧАНИЮ]
+ hardware_token = ba3f11c4f1ecfe9d1e805dc8c8c8b149
изменено: [test_24]
Факты Ansible проще использовать, если вы хотите использовать данные и время в качестве входных данных. Например, словарь ansible_date_time сохраняет дату и время, если вы собираете факты. В плейбуке мы установили сбор_фактов: ложь
. Поэтому словарь не определен
- отладка:
переменная: ansible_date_time.iso8601
дает
хорошо: [test_24] =>
ansible_date_time.iso8601: ПЕРЕМЕННАЯ НЕ ОПРЕДЕЛЕНА!
Вам придется либо собрать факты собрать_факты: правда
когда вы начинаете играть или бежать настраивать
, например
- настраивать:
collect_subset: мин.
- отладка:
переменная: ansible_date_time.iso8601
дает
хорошо: [test_24] =>
ansible_date_time.iso8601: '2021-07-29T21:32:26Z'
Это не очень практично, потому что для получения текущего времени вам нужно запустить настраивать
. Вместо этого фильтр strftime дает вам всегда текущее время, например.
- отладка:
msg: "{{ '%Y-%m-%d %H:%M:%S' | strftime }}"
- имя: заменить HardwareID на новый MD5
ini_файл:
путь: etc/app/config.ini
раздел: ПО УМОЛЧАНИЮ
опция: hardware_token
значение: "{{'%Y-%m-%d' | strftime | hash('md5') }}"
дает
ЗАДАЧА [отладка] **************************************************** *****************
хорошо: [test_24] =>
сообщение: '2021-07-29'
ЗАДАЧА [Заменить HardwareID на новый MD5] ****************************************
--- до: etc/app/config.ini (содержимое)
+++ после: etc/app/config.ini (содержимое)
@@ -0,0 +1,3 @@
+
+[ПО УМОЛЧАНИЮ]
+hardware_token = 5847924805aa614957022ed73d517e7e
В качестве примечания: использование этого хеша может быть очень быстрым поиском, если дата-время (с точностью до секунд) является индексом.