Spec-Zone.ru › Ansible 2.10

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 of ansible.builtin
Значение по умолчанию:
"%Y%m%d%H%M.%S"
При использовании с access_time, указывает формат времени, который необходимо использовать.
Основано на формате Python по умолчанию (см. документацию к time.strftime).
attributes
строка
добавлено в 2.3 of ansible.builtin
Атрибуты, которые должен иметь результирующий файл или директория.
Чтобы получить поддерживаемые флаги, обратитесь к справке man для chattr на целевой системе.
Эта строка должна содержать атрибуты в том же порядке, что и при отображении командой lsattr.
Оператор = предполагается по умолчанию, в противном случае операторы + или - должны быть включены в строку.

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

псевдонимы: dest, name
recurse
булево
добавлено в 1.1 of 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 of 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
string
state=touch, state=hard, state=link
Путь/путь к целевому файлу, равный значению, переданному в path.

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

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


Авторы

  • Команда разработчиков Ansible
  • Майкл ДеХан

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

Spec-Zone.ru

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