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