Spec-Zone.ru › Ansible 2.7

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
boolean
Добавлен в 1.8
    Варианты:
  • no
  • да ←
Этот флаг указывает, что ссылки файловой системы, если они существуют, должны быть пройдены.
До версии Ansible 2.5, это было no по умолчанию.
force
boolean
    Варианты:
  • нет ←
  • да
вынужденное создание символических ссылок в двух случаях: исходный файл не существует (но появится позже); пункт назначения существует и является файлом (поэтому необходимо удалить файл "path" и создать символическую ссылку на файл "src" вместо него).
group
-
Имя группы, которая должна владеть файлом/каталогом, как это передается в chown.
mode
-
Режим, который должен иметь файл или каталог. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую ноль, чтобы Ansible's YAML-парсер знал, что это восьмеричное число (например, 0644 или 01777) или заключить его в кавычки (например, '644' или '1777') , чтобы 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
boolean
    Варианты:
  • нет ←
  • да
рекурсивно устанавливать указанные атрибуты файла (применимо только к каталогам)
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
-
    Варианты:
  • отсутствует
  • каталог
  • файл ←
  • жесткий
  • ссылка
  • touch
Если directory, все промежуточные подкаталоги будут созданы, если они не существуют. Начиная с Ansible 1.7, они будут созданы с указанными разрешениями. Если file, файл не будет создан, если он не существует; см. значение touch или модули copy или template, если нужно такое поведение. Если link, символическая ссылка будет создана или изменена. Используйте hard для жёстких ссылок. Если absent, каталоги будут рекурсивно удалены, а файлы или символические ссылки будут удалены. Обратите внимание, что absent не приведет к провалу file, если path не существует, так как состояние не изменилось. Если touch (новая функция с 1.4), пустой файл будет создан, если path не существует, а существующий файл или каталог получит обновлённые времена доступа и изменения (аналогично тому, как работает команда `touch` из командной строки).
unsafe_writes
boolean
Добавлен в 2.2
    Варианты:
  • нет ←
  • да
По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто неисправны таким образом, что это невозможно. Один пример — файлы, смонтированные в Docker, которые не могут обновляться атомарно изнутри контейнера и могут быть записаны только небезопасным способом.
Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов при сбое атомарных операций (однако, он не принуждает Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных.

Примечания

Примечание

  • Для целей Windows используйте модуль win_file.
  • См. также copy, template, assemble

Примеры

# change file ownership, group and mode
- file:
    path: /etc/foo.conf
    owner: foo
    group: foo
    # when specifying mode using octal numbers, add a leading 0
    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"

# touch again the same file, but dont change times
# this makes the task idempotents
- file:
    path: /etc/foo.conf
    state: touch
    mode: "u+rw,g-wx,o-rwx"
    modification_time: "preserve"
    access_time: "preserve"

# create a directory if it doesn't exist
- file:
    path: /etc/some_directory
    state: directory
    mode: 0755

# updates modification and access time of given file
- file:
    path: /etc/some_file
    state: file
    mode: 0755
    modification_time: now
    access_time: now

Статус

  • Гарантируется отсутствие несовместимых изменений интерфейса в обратном направлении. [stableinterface]
  • Этот модуль поддерживается командой Ansible Core. [core]

Поддержка Red Hat

Дополнительную информацию о поддержке этого модуля Red Hat можно найти в статье базы знаний Red Hat.

Авторы

  • Команда Ansible Core
  • 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.7/modules/file_module.html

Spec-Zone.ru

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