Spec-Zone.ru › Ansible 2.9

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

  • Описание
  • Параметры
  • См. также
  • Примеры
  • Статус

Описание

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

Параметры

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

псевдонимы: attr
follow
логическое значение
    Варианты:
  • нет
  • да ←
Этот флаг указывает, что ссылки на файловую систему, если они существуют, должны быть пройдены.
До 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).
modification_time
строка
добавлен в 2.7
Этот параметр указывает время, к которому должно быть установлено время изменения файла.
Должно быть preserve при отсутствии изменений, YYYYMMDDHHMM.SS при использовании формата времени по умолчанию или now.
Значение по умолчанию — None, что означает, что preserve является значением по умолчанию для state=[file,directory,link,hard], а now — значением по умолчанию для state=touch.
modification_time_format
строка
добавлен в 2.7
Значение по умолчанию:
"%Y%m%d%H%M.%S"
При использовании с modification_time, указывает формат времени, который должен быть использован.
Основано на формате Python по умолчанию (см. документацию к time.strftime).
owner
строка
Имя пользователя, который должен владеть файлом/каталогом, как передается в chown.
path
путь / обязательно
Путь к файлу, который управляется.

псевдонимы: dest, name
recurse
логическое значение
    Варианты:
  • нет ←
  • да
Рекурсивно установить указанные атрибуты файла на содержимое каталога.
Это применимо только когда state установлено в directory.
selevel
строка
Значение по умолчанию:
"s0"
Часть уровня 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 или модули copy или template, если вам нужно такое поведение.
Если hard, жёсткая ссылка будет создана или изменена.
Если link, символическая ссылка будет создана или изменена.
Если touch (новая функция в 1.4), будет создан пустой файл, если path не существует, в то время как существующий файл или каталог получат обновлённые времена доступа и изменения файлов (аналогично тому, как работает touch из командной строки).
unsafe_writes
логическое значение
    Варианты:
  • нет ←
  • да
Влияет на то, когда использовать атомарную операцию для предотвращения повреждения данных или несогласованных чтений из целевого файла.
По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто неисправны таким образом, что это предотвращается. Примером является Docker-монтированные файлы, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только неатомарным способом.
Эта опция позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции терпят неудачу (однако она не заставляет Ansible выполнять небезопасные записи).
ВАЖНО! Небезопасные записи подвержены проблемам гонки и могут привести к повреждению данных.

См. также

См. также

assemble – Сборка конфигурационных файлов из фрагментов
Официальная документация по модулю assemble.
copy – Копирование файлов в удаленные места
Официальная документация по модулю copy.
stat – Получение статуса файла или файловой системы
Официальная документация по модулю stat.
template – Шаблонизация файла на удаленном сервере
Официальная документация по модулю template.
win_file – Создание, изменение времени последнего изменения или удаление файлов или каталогов
Официальная документация по модулю win_file.

Примеры

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

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

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

- name: Create two hard links
  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)
  file:
    path: /etc/foo.conf
    state: touch
    mode: u=rw,g=r,o=r

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

- name: Touch again the same file, but dont change times this makes the task idempotent
  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
  file:
    path: /etc/some_directory
    state: directory
    mode: '0755'

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

- name: Set access time based on seconds from epoch value
  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
  file:
    path: /etc/foo
    state: directory
    recurse: yes
    owner: foo
    group: foo

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

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

Статус

  • Данный модуль гарантирует обратную совместимость будущих изменений интерфейса. [stableinterface]
  • Данный модуль поддерживается командой разработчиков Ansible. [core]

Поддержка Red Hat

Дополнительную информацию о поддержке этого модуля компанией Red Hat можно найти в этой статье базы знаний 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.9/modules/file_module.html

Spec-Zone.ru

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