Как проще всего создать пустой файл с помощью Ansible? Я знаю, что могу сохранить пустой файл в files
каталог, а затем скопировать его на удаленный хост, но я считаю это несколько неудовлетворительным.
Другой способ - прикоснуться к файлу на удаленном хосте:
- name: create fake 'nologin' shell
file: path=/etc/nologin state=touch owner=root group=sys mode=0555
Но затем к файлу каждый раз прикасаются, что отображается в журнале как желтая линия, что тоже неудовлетворительно ...
Есть ли лучшее решение этой простой проблемы?
force: no
.Что-то вроде этого (
stat
сначала используя модуль для сбора данных о нем, а затем фильтруя его с помощью условного выражения) должно работать:В качестве альтернативы вы можете использовать эту
changed_when
функциональность.источник
Другой вариант, используя командный модуль:
Аргумент «создает» гарантирует, что это действие не будет выполнено, если файл существует.
источник
Основываясь на принятом ответе, если вы хотите, чтобы файл проверялся на наличие разрешений при каждом запуске, и они соответственно менялись, если файл существует, или просто создайте файл, если он не существует, вы можете использовать следующее:
источник
file: path=/etc/nologin state=touch
Полный эквивалент касания (новое в 1.4+) - используйте stat, если вы не хотите изменять временную метку файла.
источник
file: path=/etc/nologin state=touch modification_time=preserve access_time=preserve
.файловый модуль предоставляет возможность прикоснуться к файлу без изменения его времени.
Ссылка: https://docs.ansible.com/ansible/latest/modules/file_module.html
источник
Оказывается, у меня недостаточно репутации, чтобы поместить это в качестве комментария, которое было бы более подходящим местом для этого:
Число рейнольдса Ответ AllBlackt, если вы предпочитаете многострочный формат Ansible, вам нужно настроить цитирование
state
(я потратил несколько минут на разработку этого, так что, надеюсь, это ускорит кого-то другого),источник
Чтобы создать файл на удаленном компьютере с помощью специальной команды
Пожалуйста, поправьте меня, если я ошибаюсь
источник
Изменяется, если файл не существует. Создать пустой файл.
источник
Комбинация двух ответов с изюминкой. Код будет определен как измененный при создании файла или обновлении разрешений.
и версия, которая также исправляет владельца и группу и определяет их как измененные, когда это исправляет:
источник