Отображение информации о файлах в Ansible-плейбуках
После получения метаданных файла с помощью модуля Ansible Stat вы можете отображать эту информацию в своих плейбуках различными способами, чтобы соответствовать вашим потребностям.
Отображение информации о файле с помощью модуля Debug
Самый распространенный способ отображения информации о файле - использовать модуль Ansible Debug. Этот модуль позволяет выводить содержимое переменных, в том числе метаданные файла, полученные с помощью модуля Stat.
Вот пример:
- name: Get file information
ansible.builtin.stat:
path: /path/to/file.txt
register: file_info
- name: Display file information
debug:
msg:
- "File path: {{ file_info.stat.path }}"
- "File exists: {{ file_info.stat.exists }}"
- "File type: {{ 'directory' if file_info.stat.isdir else 'file' }}"
- "File size: {{ file_info.stat.size }} bytes"
- "File owner: {{ file_info.stat.owner }}"
- "File permissions: {{ file_info.stat.mode }}"
- "File modification time: {{ file_info.stat.mtime }}"
В этом примере метаданные файла сохраняются в переменной file_info, а модуль debug используется для отображения информации в отформатированном сообщении.
Условные проверки с использованием метаданных файла
Вы также можете использовать метаданные файла для выполнения условных проверок в своих плейбуках. Это может быть полезно для автоматизации задач на основе состояния файлов и каталогов.
Например, вы можете проверить, существует ли файл, прежде чем пытаться скопировать или изменить его:
- name: Check if file exists
ansible.builtin.stat:
path: /path/to/file.txt
register: file_info
- name: Copy file
ansible.builtin.copy:
src: /path/to/source.txt
dest: /path/to/file.txt
when: file_info.stat.exists
В этом примере модуль Stat используется для проверки существования файла по пути /path/to/file.txt. Задача copy выполняется только в том случае, если файл существует, как определено условием file_info.stat.exists.
Сохранение информации о файле для последующего использования
Вы также можете сохранить метаданные файла, полученные с помощью модуля Stat, для последующего использования в своих плейбуках. Это может быть полезно для генерации отчетов, сравнения состояний файлов на нескольких хостах или автоматизации других задач.
Например, вы можете сохранить метаданные файла в переменной и использовать ее в последующей задаче:
- name: Get file information
ansible.builtin.stat:
path: /path/to/file.txt
register: file_info
- name: Print file modification time
debug:
msg: "File modification time: {{ file_info.stat.mtime }}"
В этом примере метаданные файла сохраняются в переменной file_info, к которой затем можно обращаться в последующих задачах, например, в задаче debug, которая выводит время последнего изменения файла.