Spec-Zone.ru › Ansible 2.8

copy – Копирование файлов на удаленные места

  • Краткое описание
  • Параметры
  • Примечания
  • См. также
  • Примеры
  • Возвращаемые значения
  • Статус

Краткое описание

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

Параметры

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

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

псевдонимы: thirsty
group
строка
Имя группы, которая должна владеть файлом/каталогом, как это подается в chown.
local_follow
булево
добавлено в 2.4
    Варианты:
  • нет
  • да ←
Этот флаг указывает, что ссылки на файлы в исходном дереве, если они существуют, должны быть пройдены.
mode
путь
Разрешения целевого файла или каталога.
Для тех, кто знаком с /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую цифру 0, чтобы парсер YAML Ansible понял, что это восьмеричное число (например, 0644 или 01777), либо заключить его в кавычки (например, '644' или '1777'), чтобы Ansible получил строку и мог самостоятельно преобразовать ее из строки в число. Передача Ansible числа без выполнения одного из этих правил приведет к десятичному числу, которое даст непредвиденные результаты.
Начиная с Ansible 1.8, режим может быть указан как символьный режим (например, u+rwx или u=rw,g=r,o=r).
Начиная с Ansible 2.3, режим также может быть специальной строкой preserve.
preserve означает, что файлу будут предоставлены те же разрешения, что и исходному файлу.
owner
строка
Имя пользователя, который должен владеть файлом/каталогом, как это подается в chown.
remote_src
булево
добавлено в 2.0
    Варианты:
  • нет ←
  • да
Влияет на необходимость передачи src или его наличия на удаленном сервере.
Если no, поиск src будет выполняться на исходной/главной машине.
Если yes, поиск src будет выполняться на удаленной/целевой машине.
remote_src поддерживает рекурсивное копирование начиная с версии 2.8.
remote_src работает только с mode=preserve начиная с версии 2.6.
selevel
строка
По умолчанию:
"s0"
Часть уровня контекста файла 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
    Варианты:
  • нет ←
  • да
Влияет на использование атомарной операции для предотвращения повреждения данных или несогласованных чтений из целевого файла.
По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто неисправны таким образом, что это не возможно. Одним примером являются файлы, подключенные через docker, которые не могут обновляться атомарно изнутри контейнера и могут быть записаны только неатомарным способом.
Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции завершаются неудачей (однако это не принуждает Ansible выполнять небезопасные записи).
ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных.
validate
строка
Команда проверки, которую нужно запустить перед копированием.
Путь к файлу для проверки передается через '%s', что должно присутствовать, как показано в примерах ниже.
Команда передается безопасно, поэтому такие функции оболочки, как расширение и конвейеры, не будут работать.

Примечания

Примечание

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

См. также

См. также

assemble – Сборка конфигурационных файлов из фрагментов
Официальная документация по модулю assemble.
fetch – Загрузка файлов с удаленных узлов
Официальная документация по модулю fetch.
file – Управление файлами и свойствами файлов
Официальная документация по модулю file.
synchronize – Обёртка вокруг rsync для ускорения общих задач в ваших playbooks
Официальная документация по модулю synchronize.
template – Шаблонизация файла на удаленном сервере
Официальная документация по модулю template.
win_copy – Копирование файлов на удалённые места на хостах Windows
Официальная документация по модулю win_copy.

Примеры

- name: Copy file with owner and permissions
  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
  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
  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
  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
  copy:
    src: /mine/sudoers
    dest: /etc/sudoers
    validate: /usr/sbin/visudo -cf %s

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

- name: Copy using inline content
  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
  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
  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
строка
успешно
Состояние целевого объекта после выполнения

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

Пример:
100


Статус

  • Этот модуль гарантирует отсутствие обратной несовместимости в будущих изменениях. [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.8/modules/copy_module.html

Spec-Zone.ru

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