Spec-Zone.ru › Ansible 2.11

ansible.builtin.copy – Копирование файлов на удалённые узлы

Примечание

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

  • Обзор
  • Параметры
  • Примечания
  • См. также
  • Примеры
  • Значения возврата

Обзор

  • Модуль copy копирует файл с локального или удалённого компьютера на удалённый компьютер.
  • Для копирования файлов с удалённых узлов на локальный компьютер используйте модуль ansible.builtin.fetch.
  • Если вам необходима интерполяция переменных в копируемых файлах, используйте модуль ansible.builtin.template. Использование переменной в поле content приведёт к непредсказуемым результатам.
  • Для целевых узлов Windows используйте модуль ansible.windows.win_copy.

Примечание

У этого модуля есть соответствующий плагин действий.

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
attributes
строка
добавлен в 2.3 в ansible.builtin
Атрибуты, которые должны иметь результирующий файл или директория.
Для получения поддерживаемых флагов обратитесь к странице руководства для chattr на целевой системе.
Эта строка должна содержать атрибуты в том же порядке, что и отображается командой lsattr.
Оператор = предполагается по умолчанию, в противном случае операторы + или - должны быть включены в строку.

псевдонимы: attr
backup
логический
добавлен в 0.7 в ansible.builtin
    Варианты:
  • нет ←
  • да
Создать резервную копию файла, включая информацию о времени, чтобы вы могли восстановить исходный файл в случае неправильного перезаписи.
checksum
строка
добавлен в 2.5 в ansible.builtin
Контрольная сумма SHA1 копируемого файла.
Используется для проверки успешного копирования файла.
Если это значение не указано, Ansible будет использовать локальную вычисленную контрольную сумму файла src.
content
строка
добавлен в 1.1 в ansible.builtin
Когда используется вместо src, задаёт содержимое файла непосредственно указанным значением.
Работает только когда dest является файлом. Создаёт файл, если он не существует.
Для форматирования или если content содержит переменную, используйте модуль ansible.builtin.template.
decrypt
логический
добавлен в 2.4 в ansible.builtin
    Варианты:
  • нет
  • да ←
Этот параметр управляет автоматическим расшифрованием исходных файлов с помощью vault.
dest
путь / обязательно
Удаленный абсолютный путь, куда нужно скопировать файл.
Если src является директорией, то это тоже должна быть директория.
Если dest - несуществующий путь, и если dest заканчивается на "/" или src - это директория, то dest будет создана.
Если dest - относительный путь, начальная директория определяется удалённым хостом.
Если src и dest являются файлами, родительская директория dest не создаётся, и задача завершится неудачей, если она не существует.
directory_mode
сырой
добавлен в 1.5 в ansible.builtin
При рекурсивном копировании устанавливает режим для директорий.
Если это не задано, будут использоваться системные значения по умолчанию.
Режим устанавливается только для вновь созданных директорий и не повлияет на те, которые уже существовали.
follow
логический
добавлен в 1.8 в ansible.builtin
    Варианты:
  • нет ←
  • да
Этот флаг указывает, что системные ссылки в пункте назначения, если они существуют, должны быть прослежены.
force
логический
добавлен в 1.1 в ansible.builtin
    Варианты:
  • нет
  • да ←
Влияет на то, должен ли удалённый файл всегда заменяться.
Если yes, удалённый файл будет заменён, если содержимое отличается от исходного.
Если no, файл будет скопирован только в случае, если пункт назначения не существует.
Псевдоним thirsty устарел и будет удалён в версии 2.13.

псевдонимы: thirsty
group
строка
Имя группы, которой должен принадлежать файл/директория, как это будет передано команде chown.
local_follow
логический
добавлен в 2.4 в ansible.builtin
    Варианты:
  • нет
  • да ←
Этот флаг указывает, что системные ссылки в исходном дереве, если они существуют, должны быть прослежены.
mode
сырой
Разрешения целевого файла или директории.
Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую нуль, чтобы Ansible знал, что это восьмеричное число (например, 0644 или 01777), либо заключить его в кавычки (например, '644' или '1777'), чтобы Ansible получил строку и выполнил своё преобразование из строки в число. Если вы передадите Ansible число без одного из этих правил, оно будет интерпретировано как десятичное число, что приведёт к неожиданным результатам.
Начиная с Ansible 1.8, режим может быть указан в символическом формате (например, u+rwx или u=rw,g=r,o=r).
Начиная с Ansible 2.3, режим также может быть специальной строкой preserve.
preserve означает, что файлу будут заданы те же разрешения, что и исходному файлу.
При рекурсивном копировании также см. directory_mode.
Если mode не задано и целевой файл не существует, будет использоваться системное значение по умолчанию umask при установке режима для вновь созданного файла.
Если mode не задано и целевой файл существует, будет использован режим существующего файла.
Указание mode - лучший способ гарантировать, что файлы создаются с правильными разрешениями. См. CVE-2020-1736 для получения дополнительных сведений.
owner
строка
Имя пользователя, которому должен принадлежать файл/директория, как это будет передано команде chown.
remote_src
логический
добавлен в 2.0 в ansible.builtin
    Варианты:
  • нет ←
  • да
Влияет на то, нужно ли передавать src или он уже существует удаленно.
Если no, Ansible будет искать src на контроллере.
Если yes, Ansible будет искать src на управляемом (удаленном) узле.
remote_src поддерживает рекурсивное копирование начиная с версии 2.8.
remote_src работает только с mode=preserve начиная с версии 2.6.
Автоматическое расшифрование файлов не работает, когда remote_src=yes.
selevel
строка
Часть уровня SELinux контекста файла.
Это атрибут MLS/MCS, иногда известный как range.
Когда установлено значение _default, будет использоваться часть политики level, если она доступна.
serole
строка
Часть роли SELinux контекста файла.
Если установлено значение _default, будет использоваться часть политики role, если она доступна.
setype
строка
Часть типа SELinux контекста файла.
Если установлено значение _default, будет использоваться часть политики type, если она доступна.
seuser
строка
Часть пользователя SELinux контекста файла.
По умолчанию используется политика system, где это применимо.
Если установлено значение _default, будет использоваться часть политики user, если она доступна.
src
путь
Локальный путь к файлу, который нужно скопировать на удаленный сервер.
Может быть абсолютным или относительным.
Если путь является директорией, она копируется рекурсивно. В этом случае, если путь заканчивается на "/", копируются только файлы внутри этой директории. В противном случае, если путь не заканчивается на "/", копируется сама директория со всем содержимым. Это поведение аналогично инструменту командной строки rsync.
unsafe_writes
логический
добавлен в 2.2 в ansible.builtin
    Варианты:
  • нет ←
  • да
Влияет на то, когда использовать атомарную операцию для предотвращения повреждения данных или несогласованных чтений из целевого файла.
По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто сломаны так, что это невозможно. Один пример - это файлы, смонтированные в Docker, которые не могут быть обновлены атомарно внутри контейнера и могут быть записаны только небезопасным способом.
Этот параметр позволяет Ansible переходить к небезопасным методам обновления файлов, когда атомарные операции завершаются неудачно (хотя он не принуждает Ansible выполнять небезопасные записи).
ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных.
validate
строка
Команда валидации, которую нужно выполнить перед копированием.
Путь к файлу для проверки передаётся через '%s', который должен быть присутствовать, как в примерах ниже.
Команда передаётся безопасно, поэтому такие функции оболочки, как расширение и конвейеры, не будут работать.

Примечания

Примечание

  • Модуль ansible.builtin.copy не масштабируется при большом количестве файлов (> сотен).
  • Поддерживает check_mode.

См. также

См. также

ansible.builtin.assemble

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

ansible.builtin.fetch

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

ansible.builtin.file

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

ansible.builtin.template

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

ansible.posix.synchronize

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

ansible.windows.win_copy

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

Примеры

- name: Copy file with owner and permissions
  ansible.builtin.copy:
    src: /srv/myfiles/foo.conf
    dest: /etc/foo.conf
    owner: foo
    group: foo
    mode: '0644'

- name: Copy file with owner and permission, using symbolic representation
  ansible.builtin.copy:
    src: /srv/myfiles/foo.conf
    dest: /etc/foo.conf
    owner: foo
    group: foo
    mode: u=rw,g=r,o=r

- name: Another symbolic mode example, adding some permissions and removing others
  ansible.builtin.copy:
    src: /srv/myfiles/foo.conf
    dest: /etc/foo.conf
    owner: foo
    group: foo
    mode: u+rw,g-wx,o-rwx

- name: Copy a new "ntp.conf" file into place, backing up the original if it differs from the copied version
  ansible.builtin.copy:
    src: /mine/ntp.conf
    dest: /etc/ntp.conf
    owner: root
    group: root
    mode: '0644'
    backup: yes

- name: Copy a new "sudoers" file into place, after passing validation with visudo
  ansible.builtin.copy:
    src: /mine/sudoers
    dest: /etc/sudoers
    validate: /usr/sbin/visudo -csf %s

- name: Copy a "sudoers" file on the remote machine for editing
  ansible.builtin.copy:
    src: /etc/sudoers
    dest: /etc/sudoers.edit
    remote_src: yes
    validate: /usr/sbin/visudo -csf %s

- name: Copy using inline content
  ansible.builtin.copy:
    content: '# This file was moved to /etc/other.conf'
    dest: /etc/mine.conf

- name: If follow=yes, /path/to/file will be overwritten by contents of foo.conf
  ansible.builtin.copy:
    src: /etc/foo.conf
    dest: /path/to/link  # link to /path/to/file
    follow: yes

- name: If follow=no, /path/to/link will become a file and be overwritten by contents of foo.conf
  ansible.builtin.copy:
    src: /etc/foo.conf
    dest: /path/to/link  # link to /path/to/file
    follow: no

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

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

Ключ Возвращаемое значение Описание
backup_file
строка
изменённое и если backup=yes
Имя созданного резервной копии файла.

Пример:
/path/to/file.txt.2015-02-12@22:09~
checksum
строка
успех
SHA1 контрольная сумма файла после выполнения копирования.

Пример:
6e642bb8dd5c2e027bf21dd923337cbb4214f827
dest
строка
успех
Файл/путь назначения.

Пример:
/path/to/file.txt
gid
целое число
успех
Идентификатор группы файла после выполнения.

Пример:
100
group
строка
успех
Группа файла после выполнения.

Пример:
httpd
md5sum
строка
если поддерживается
MD5 контрольная сумма файла после выполнения копирования.

Пример:
2a5aeecc61dc98c4d780b14b330e3282
mode
строка
успех
Разрешения целевого объекта после выполнения.

Пример:
420
owner
строка
успех
Владелец файла после выполнения.

Пример:
httpd
size
целое число
успех
Размер целевого объекта после выполнения.

Пример:
1220
src
строка
изменённое
Исходный файл, используемый для копирования на целевом компьютере.

Пример:
/home/httpd/.ansible/tmp/ansible-tmp-1423796390.97-147729857856000/source
state
строка
успех
Состояние целевого объекта после выполнения.

Пример:
файл
uid
целое число
успех
Идентификатор владельца файла после выполнения.

Пример:
100


Авторы

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

© 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/copy_module.html

Spec-Zone.ru

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