Spec-Zone.ru › Ansible 2.10

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, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую нуль, чтобы парсер YAML 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.
owner
строка
Имя пользователя, которому должен принадлежать файл/каталог, как это передаётся в chown.
remote_src
логическое значение
добавлено в версии 2.0 ansible.builtin
    Варианты:
  • нет ←
  • да
Влияет на то, необходимо ли передавать src или он уже присутствует на удалённом сервере.
Если no, будет поиск src на исходной/главной машине.
Если yes, будет доступ к удалённой/целевой машине для src.
remote_src поддерживает рекурсивное копирование начиная с версии 2.8.
remote_src работает только с mode=preserve начиная с версии 2.6.
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 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.10/collections/ansible/builtin/copy_module.html

Spec-Zone.ru

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