file - Настройка атрибутов файлов
Обзор
- Настройка атрибутов файлов, символических ссылок и каталогов, или удаление файлов/символических ссылок/каталогов. Многие другие модули поддерживают те же параметры, что и модуль
file— включая copy, template и assemble. - Для целевых систем Windows используйте модуль win_file.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes (добавлен в 2.3) | Значение по умолчанию: None | Атрибуты файла или каталога. Для получения поддерживаемых флагов см. страницу руководства для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении lsattr. псевдонимы: attr |
| follow (добавлен в 1.8) |
| Этот флаг указывает, что должны быть следовать файловым ссылкам, если они существуют. В версиях Ansible до 2.5, по умолчанию было значение no. |
| force |
| Вынудительное создание символических ссылок в двух случаях: исходный файл не существует (но появится позже); пункт назначения существует и является файлом (то есть необходимо удалить файл "путь" и создать символическую ссылку на файл "src" вместо него). |
| group | Значение по умолчанию: None | Имя группы, которая должна владеть файлом/каталогом, как и при вызове chown. |
| mode | Значение по умолчанию: None | Режим файла или каталога. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами (например, 0644 или 01777). Пропуск ведущей нули, скорее всего, приведет к непредвиденным результатам. Начиная с версии 1.8, режим может быть указан в символической форме (например, u+rwx или u=rw,g=r,o=r). |
| owner | Значение по умолчанию: None | Имя пользователя, который должен владеть файлом/каталогом, как и при вызове chown. |
| path обязательно | путь к управляемому файлу. Псевдонимы: dest, name
псевдонимы: dest, name | |
| recurse |
| рекурсивно задает указанные атрибуты файла (применяется только к каталогам) |
| selevel | Значение по умолчанию: s0 | Уровень контекста файла SELinux. Это атрибут MLS/MCS, иногда известный как range. _default функция работает так же, как для seuser. |
| serole | Значение по умолчанию: None | Роль в контексте файла SELinux, _default функция работает так же, как для seuser. |
| setype | Значение по умолчанию: None | Тип в контексте файла SELinux, _default функция работает так же, как для seuser. |
| seuser | Значение по умолчанию: None | Пользователь в контексте файла SELinux. Будет по умолчанию использовать системную политику, если применимо. Если установлено _default, будет использоваться часть политики user, если она доступна. |
| src | путь к файлу, на который нужно создать ссылку (применимо только к state=link и state=hard). Принимает абсолютные, относительные и несуществующие пути. Относительные пути не расширяются. | |
| state |
| Если directory, все промежуточные подкаталоги будут созданы, если они не существуют. Начиная с Ansible 1.7, они будут созданы с указанными разрешениями. Если file, файл НЕ будет создан, если он не существует; см. значение touch или модули copy или template, если вам нужно такое поведение. Если link, символическая ссылка будет создана или изменена. Используйте hard для жёстких ссылок. Если absent, каталоги будут рекурсивно удалены, а файлы или символические ссылки будут удалены. Обратите внимание, что absent не приведет к отказу file, если path не существует, так как состояние не изменилось. Если touch (ново в 1.4), пустой файл будет создан, если path не существует, а существующий файл или каталог получат обновленные время доступа и изменения (аналогично работе `touch` из командной строки). |
| unsafe_writes (добавлен в 2.2) |
| Обычно этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто неисправны таким образом, что это невозможно. Один пример — файлы, смонтированные через docker; их нельзя обновлять атомарно, и это можно сделать только небезопасным способом. Этот логический параметр позволяет Ansible перейти к небезопасным методам обновления файлов в тех случаях, когда нет другого выбора. Помните, что это подвержено гонкам и может привести к повреждению данных. |
Примечания
Примечание
- Для целевых систем Windows используйте модуль win_file.
- См. также copy, template, assemble
Примеры
# 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, что означает, что авторы модуля гарантируют, что не будут вноситься несовместимые изменения в интерфейс.
Поддержка
Дополнительную информацию о поддержке этого модуля 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.5/modules/file_module.html