Spec-Zone.ru › Ansible 2.11

ansible.builtin.file – Управление файлами и свойствами файлов

Примечание

Этот модуль входит в состав ansible-base и включён во все установки Ansible. В большинстве случаев вы можете использовать короткое имя модуля file, даже не указывая ключевое слово collections:. Несмотря на это, мы рекомендуем использовать полное имя модуля (FQCN) для лёгкой ссылки на документацию модуля и для избежания конфликтов с другими коллекциями, которые могут иметь то же имя модуля.

  • Описание
  • Параметры
  • Примечания
  • См. также
  • Примеры
  • Возвращаемые значения

Описание

  • Устанавливает атрибуты файлов, символических ссылок или каталогов.
  • В качестве альтернативы можно удалять файлы, символические ссылки или каталоги.
  • Многие другие модули поддерживают те же опции, что и модуль file — включая ansible.builtin.copy, ansible.builtin.template и ansible.builtin.assemble.
  • Для целевых систем Windows используйте модуль ansible.windows.win_file.

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
access_time
строка
добавлен в 2.7 ansible.builtin
Этот параметр указывает время, к которому следует установить время доступа к файлу.
Должно быть preserve, если изменения не требуются, YYYYMMDDHHMM.SS, если используется формат времени по умолчанию, или now.
Значение по умолчанию None, означающее, что preserve является значением по умолчанию для state=[file,directory,link,hard], а now является значением по умолчанию для state=touch.
access_time_format
строка
добавлен в 2.7 ansible.builtin
По умолчанию:
"%Y%m%d%H%M.%S"
При использовании с access_time, указывает формат времени, который необходимо использовать.
Основан на формате Python по умолчанию (см. документацию time.strftime).
attributes
строка
добавлен в 2.3 ansible.builtin
Атрибуты, которые должен иметь результирующий файл или директория.
Для получения поддерживаемых флагов ознакомьтесь со страницей руководства chattr на целевой системе.
Эта строка должна содержать атрибуты в том же порядке, что и при отображении lsattr.
Оператор = предполагается по умолчанию, в противном случае операторы + или - необходимо включить в строку.

псевдонимы: attr
follow
логическое
добавлен в 1.8 ansible.builtin
    Варианты:
  • no
  • да ←
Этот флаг указывает, что ссылки файловой системы, если они существуют, должны быть пройдены.
До Ansible 2.5 это было no по умолчанию.
force
логическое
    Варианты:
  • нет ←
  • да
Принудительно создать символьные ссылки в двух случаях: исходный файл не существует (но появится позже); конечный пункт назначения существует и является файлом (следовательно, нам нужно удалить path файл и создать символьную ссылку на src файл вместо него).
group
строка
Имя группы, которая должна владеть файлом/каталогом, как это подается в chown.
mode
необработанный
Разрешения, которые должен иметь результирующий файл или директория.
Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущий ноль, чтобы парсер YAML Ansible понял, что это восьмеричное число (например, 0644 или 01777) или заключить его в кавычки (например, '644' или '1777'), чтобы Ansible получил строку и смог выполнить преобразование из строки в число.
Передача Ansible числа без соблюдения одного из этих правил приведет к десятичному числу, что приведет к непредсказуемым результатам.
Начиная с Ansible 1.8, режим может быть указан как символьный режим (например, u+rwx или u=rw,g=r,o=r).
Если mode не указан и целевой файл не существует, будет использовано значение по умолчанию umask в системе при установке режима для вновь созданного файла.
Если mode не указан и целевой файл существует, будет использован режим существующего файла.
Указание mode — лучший способ гарантировать, что файлы будут созданы с правильными разрешениями. См. CVE-2020-1736 для получения дополнительной информации.
modification_time
строка
добавлен в 2.7 ansible.builtin
Этот параметр указывает время, к которому следует установить время изменения файла.
Должно быть preserve если изменения не требуются, YYYYMMDDHHMM.SS если используется формат времени по умолчанию или now.
Значение по умолчанию None, означающее, что preserve является значением по умолчанию для state=[file,directory,link,hard], а now — значением по умолчанию для state=touch.
modification_time_format
строка
добавлен в 2.7 ansible.builtin
По умолчанию:
"%Y%m%d%H%M.%S"
При использовании с modification_time, указывает формат времени, который необходимо использовать.
Основан на формате Python по умолчанию (см. документацию time.strftime).
owner
строка
Имя пользователя, который должен владеть файлом/каталогом, как это подается в chown.
path
путь / обязательно
Путь к файлу, который управляется.

псевдонимы: dest, имя
recurse
логическое
добавлен в 1.1 ansible.builtin
    Варианты:
  • нет ←
  • да
Рекурсивно устанавливает указанные атрибуты файла для содержимого каталога.
Это применяется только тогда, когда state установлено в значение directory.
selevel
строка
Часть уровня контекста файла SELinux.
Это атрибут MLS/MCS, иногда известный как range.
Если установлено в значение _default, будет использоваться часть политики level, если она доступна.
serole
строка
Часть роли контекста файла SELinux.
Если установлено в значение _default, будет использоваться часть политики role, если она доступна.
setype
строка
Часть типа контекста файла SELinux.
Если установлено в значение _default, будет использоваться часть политики type, если она доступна.
seuser
строка
Часть пользователя контекста файла SELinux.
По умолчанию используется политика system, где это возможно.
Если установлено в значение _default, будет использоваться часть политики user, если она доступна.
src
путь
Путь к файлу, на который следует установить ссылку.
Это относится только к state=link и state=hard.
Для state=link, этот параметр также будет принимать несуществующий путь.
Относительные пути относительны к создаваемому файлу (path), что соответствует тому, как команда Unix ln -s SRC DEST обрабатывает относительные пути.
state
строка
    Варианты:
  • отсутствует
  • каталог
  • файл ←
  • жесткая ссылка
  • символьная ссылка
  • коснуться
Если absent, каталоги будут рекурсивно удалены, а файлы или символьные ссылки будут удалены. В случае каталога, если diff указан, удаленные файлы и папки будут перечислены в path_contents. Обратите внимание, что absent не приведет к отказу file если path не существует, так как состояние не изменилось.
Если directory, все промежуточные подкаталоги будут созданы, если они не существуют. С Ansible 1.7 они будут созданы с указанными правами.
Если file, без каких-либо дополнительных опций, это работает в основном как 'stat' и вернет текущее состояние path. Даже с другими опциями (например, mode)., файл будет изменен, но не будет создан, если он не существует; см. значение touch или модули ansible.builtin.copy или ansible.builtin.template, если вам нужно такое поведение.
Если hard, жесткая ссылка будет создана или изменена.
Если link, символьная ссылка будет создана или изменена.
Если touch (введено в 1.4), пустой файл будет создан, если path не существует, в то время как существующий файл или директория получат обновленные времена доступа и изменения файла (аналогично тому, как работает команда touch из командной строки).
unsafe_writes
логическое
добавлен в 2.2 ansible.builtin
    Варианты:
  • нет ←
  • да
Влияет на то, когда использовать атомарную операцию, чтобы предотвратить повреждение данных или несогласованные чтения из целевого файла.
По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настраиваются или просто выходят из строя так, что это невозможно. Одним из примеров являются файлы, смонтированные в Docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным способом.
Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции завершаются неудачно (хотя он не заставляет Ansible выполнять небезопасные записи).
ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных.

Примечания

Примечание

  • Поддерживает check_mode.

См. также

См. также

ansible.builtin.assemble

Официальная документация по модулю ansible.builtin.assemble.

ansible.builtin.copy

Официальная документация по модулю ansible.builtin.copy.

ansible.builtin.stat

Официальная документация по модулю ansible.builtin.stat.

ansible.builtin.template

Официальная документация по модулю ansible.builtin.template.

ansible.windows.win_file

Официальная документация по модулю ansible.windows.win_file.

Примеры

- name: Change file ownership, group and permissions
  ansible.builtin.file:
    path: /etc/foo.conf
    owner: foo
    group: foo
    mode: '0644'

- name: Give insecure permissions to an existing file
  ansible.builtin.file:
    path: /work
    owner: root
    group: root
    mode: '1777'

- name: Create a symbolic link
  ansible.builtin.file:
    src: /file/to/link/to
    dest: /path/to/symlink
    owner: foo
    group: foo
    state: link

- name: Create two hard links
  ansible.builtin.file:
    src: '/tmp/{{ item.src }}'
    dest: '{{ item.dest }}'
    state: hard
  loop:
    - { src: x, dest: y }
    - { src: z, dest: k }

- name: Touch a file, using symbolic modes to set the permissions (equivalent to 0644)
  ansible.builtin.file:
    path: /etc/foo.conf
    state: touch
    mode: u=rw,g=r,o=r

- name: Touch the same file, but add/remove some permissions
  ansible.builtin.file:
    path: /etc/foo.conf
    state: touch
    mode: u+rw,g-wx,o-rwx

- name: Touch again the same file, but do not change times this makes the task idempotent
  ansible.builtin.file:
    path: /etc/foo.conf
    state: touch
    mode: u+rw,g-wx,o-rwx
    modification_time: preserve
    access_time: preserve

- name: Create a directory if it does not exist
  ansible.builtin.file:
    path: /etc/some_directory
    state: directory
    mode: '0755'

- name: Update modification and access time of given file
  ansible.builtin.file:
    path: /etc/some_file
    state: file
    modification_time: now
    access_time: now

- name: Set access time based on seconds from epoch value
  ansible.builtin.file:
    path: /etc/another_file
    state: file
    access_time: '{{ "%Y%m%d%H%M.%S" | strftime(stat_var.stat.atime) }}'

- name: Recursively change ownership of a directory
  ansible.builtin.file:
    path: /etc/foo
    state: directory
    recurse: yes
    owner: foo
    group: foo

- name: Remove file (delete file)
  ansible.builtin.file:
    path: /etc/foo.txt
    state: absent

- name: Recursively remove directory
  ansible.builtin.file:
    path: /etc/foo
    state: absent

Значения возврата

Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:

Ключ Возвращаемое значение Описание
dest
строка
state=touch, state=hard, state=link
Путь к целевому файлу/каталогу, совпадающий со значением, переданным в path.

Пример:
/path/to/file.txt
path
строка
state=absent, state=directory, state=file
Путь к целевому файлу/каталогу, совпадающий со значением, переданным в path.

Пример:
/path/to/file.txt


Авторы

  • Команда Ansible Core
  • Michael DeHaan

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ansible/builtin/file_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API