file — Устанавливает атрибуты файлов
Обзор
- Устанавливает атрибуты файлов, символических ссылок и каталогов, или удаляет файлы/символические ссылки/каталоги. Многие другие модули поддерживают те же опции, что и модуль
file— включая copy, template и assemble. - Для целевых систем Windows используйте модуль win_file вместо этого.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes (добавлен в 2.3) | Атрибуты файла или каталога. Чтобы узнать поддерживаемые флаги, посмотрите страницу руководства для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и в выводе lsattr. псевдонимы: attr | |
| follow bool (добавлен в 1.8) |
| Этот флаг указывает, что должны быть прослежены ссылки на файловую систему, если они существуют. До Ansible 2.5, это было no по умолчанию. |
| force bool |
| принудительно создать символические ссылки в двух случаях: исходный файл не существует (но появится позже); целевой объект существует и является файлом (следовательно, необходимо удалить файл «путь» и создать символическую ссылку на файл «src» вместо него). |
| group | Имя группы, которой должен принадлежать файл/каталог, как и в команде chown. | |
| mode | Режим файла или каталога. Для тех, кто привык к /usr/bin/chmod, помните, что режимы на самом деле являются восьмеричными числами. Вы должны либо указать ведущую цифру 0, чтобы парсер YAML Ansible знал, что это восьмеричное число (например, 0644 или 01777), либо заключить в кавычки (например, '644' или '0644'), чтобы Ansible получил строку и мог выполнить преобразование из строки в число. Передача Ansible числа без соблюдения одного из этих правил приведет к десятичному числу, что приведет к нежелательным результатам. Начиная с версии 1.8, режим может быть указан в символическом формате (например, u+rwx или u=rw,g=r,o=r). | |
| owner | Имя пользователя, которому должен принадлежать файл/каталог, как и в команде chown. | |
| path обязательно | путь к управляемому файлу. Псевдонимы: dest, name
псевдонимы: dest, name | |
| recurse bool |
| рекурсивно установить указанные атрибуты файлов (применимо только к каталогам) |
| selevel | По умолчанию: "s0" | Уровень части контекста файла SELinux. Это атрибут MLS/MCS, иногда известный как range. Функция _default работает так же, как для seuser. |
| serole | Роль в контексте файла SELinux, _default функция работает аналогично seuser. | |
| setype | Тип в контексте файла SELinux, _default функция работает аналогично seuser. | |
| seuser | Пользователь в контексте файла SELinux. По умолчанию будет использоваться системная политика, если применимо. Если установлено _default, будет использоваться часть политики user, если она доступна. | |
| src | путь к файлу, на который нужно создать ссылку (применимо только к state=link и state=hard). Принимает абсолютные, относительные и несуществующие пути. Относительные пути относительны к создаваемому файлу (path), что соответствует тому, как команда UNIX ln -s SRC DEST обрабатывает относительные пути. | |
| state |
| Если directory, все промежуточные подкаталоги будут созданы, если они не существуют. Начиная с Ansible 1.7, они будут созданы с предоставленными разрешениями. Если file, файл не будет создан, если он не существует; см. значение touch или модули copy или template, если требуется такое поведение. Если link, символическая ссылка будет создана или изменена. Используйте hard для жёстких ссылок. Если absent, каталоги будут рекурсивно удалены, а файлы или символические ссылки будут удалены. Обратите внимание, что absent не приведет к file к ошибке, если path не существует, поскольку состояние не изменилось. Если touch (новая функция в 1.4), пустой файл будет создан, если path не существует, а существующий файл или каталог получит обновленные временные метки доступа и изменения файла (похоже на работу команды `touch` из командной строки). |
| unsafe_writes bool (добавлен в 2.2) |
| Обычно этот модуль использует атомарные операции, чтобы предотвратить повреждение данных или несогласованные чтения из целевых файлов; иногда системы настроены или просто неисправны таким образом, что это невозможно. Примером являются файлы, смонтированные в Docker; они не могут быть обновлены атомарно и могут быть обновлены только небезопасным способом. Этот параметр boolean позволяет Ansible перейти к небезопасным методам обновления файлов в тех случаях, когда у вас нет другого выбора. Имейте в виду, что это подвержено проблемам гонки и может привести к повреждению данных. |
Примечания
Примечание
Примеры
# change file ownership, group and mode. When specifying mode using octal numbers, first digit should always be 0.
- file:
path: /etc/foo.conf
owner: foo
group: foo
mode: 0644
- file:
path: /work
owner: root
group: root
mode: 01777
- file:
src: /file/to/link/to
dest: /path/to/symlink
owner: foo
group: foo
state: link
- file:
src: '/tmp/{{ item.src }}'
dest: '{{ item.dest }}'
state: link
with_items:
- { src: 'x', dest: 'y' }
- { src: 'z', dest: 'k' }
# touch a file, using symbolic modes to set the permissions (equivalent to 0644)
- file:
path: /etc/foo.conf
state: touch
mode: "u=rw,g=r,o=r"
# touch the same file, but add/remove some permissions
- file:
path: /etc/foo.conf
state: touch
mode: "u+rw,g-wx,o-rwx"
# create a directory if it doesn't exist
- file:
path: /etc/some_directory
state: directory
mode: 0755
Статус
Этот модуль помечен как stableinterface, что означает, что разработчики этого модуля гарантируют, что не будут вноситься несовместимые с предыдущими версиями изменения интерфейса.
Техническое обслуживание
Этот модуль помечен как core, что означает, что он поддерживается Командой по разработке Ansible. Дополнительную информацию см. в разделе Техническое обслуживание и поддержка модулей.
Список других модулей, поддерживаемых Командой по разработке Ansible, см. в этом документе.
Поддержка
Дополнительную информацию о поддержке данного модуля компанией Red Hat см. в этой статье базы знаний
Автор
- Команда разработчиков Ansible
- Michael DeHaan
Подсказка
Если вы обнаружите какие-либо проблемы в этом документе, вы можете отредактировать его, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.6/modules/file_module.html