Spec-Zone.ru › Ansible 2.8

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
строка
добавлен в 2.3
Атрибуты, которые должен иметь результирующий файл или директория.
Для получения поддерживаемых флагов обратитесь к странице руководства для chattr на целевой системе.
Эта строка должна содержать атрибуты в том же порядке, что и отображаемый lsattr.
Оператор = предполагается по умолчанию, в противном случае операторы + или - должны быть включены в строку.

псевдонимы: attr
follow
логический тип
    Варианты:
  • 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).
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=hard.
Относительные пути относительны к создаваемому файлу (path), что соответствует тому, как команда Unix ln -s SRC DEST обрабатывает относительные пути.
state
строка
    Варианты:
  • absent
  • directory
  • file ←
  • hard
  • link
  • touch
Если absent, директории будут рекурсивно удалены, а файлы или символьные ссылки будут удалены. Обратите внимание, что absent не вызовет ошибки file, если path не существует, так как состояние не изменилось.
Если directory, все промежуточные поддиректории будут созданы, если они не существуют. Начиная с Ansible 1.7, они будут созданы с заданными разрешениями.
Если file, без других параметров это работает в основном как 'stat' и вернёт текущее состояние path. Даже с другими параметрами (например, mode), файл будет изменён, но НЕ будет создан, если он не существует; см. значение touch, или модули copy или template, если нужно это поведение.
Если hard, жёсткая ссылка будет создана или изменена.
Если link, символьная ссылка будет создана или изменена.
Если touch (новое в 1.4), пустой файл будет создан, если path не существует, в то время как существующий файл или директория получат обновлённые времена доступа и изменения файлов (аналогично тому, как работает touch из командной строки).
unsafe_writes
логический тип
добавлен в 2.2
    Варианты:
  • нет ←
  • да
Влияет на использование атомарных операций для предотвращения повреждения данных или несогласованного чтения из целевого файла.
По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения из целевых файлов, но иногда системы настроены или просто сломаны таким образом, что это предотвращает. Одним примером являются файлы, смонтированные в 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: Create an insecure 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: link
  with_items:
    - { 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

Статус

  • Гарантируется отсутствие несовместимых изменений интерфейса в будущем. [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.8/modules/file_module.html

Spec-Zone.ru

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