copy – Копирование файлов на удалённые расположения
Описание
- Модуль
copyкопирует файл с локального или удалённого компьютера на удалённое расположение. Используйте модуль fetch для копирования файлов с удалённых расположений на локальный компьютер. Если вам нужна интерполяция переменных в копируемых файлах, используйте модуль template. - Для целевых систем Windows используйте модуль win_copy.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes - добавлен в 2.3 | Атрибуты файла или каталога. Для получения поддерживаемых флагов посмотрите страницу руководства для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении lsattr. = оператор используется по умолчанию, в противном случае необходимо включить операторы + или - в строку.псевдонимы: attr | |
| backup boolean |
| Создать резервную копию файла, включая информацию о времени создания, чтобы можно было восстановить исходный файл в случае неправильного изменения. |
| checksum - добавлен в 2.5 | Контрольная сумма SHA1 файла, передаваемого. Используется для проверки успешности копирования файла. Если это значение не указано, Ansible будет использовать вычисленную локальную контрольную сумму файла src. | |
| content - | При использовании вместо src, устанавливает содержимое файла непосредственно в указанное значение. Для сложных случаев или форматирования также обратитесь к модулю template. | |
| decrypt boolean добавлен в 2.4 |
| Этот параметр управляет автоматическим расшифрованием исходных файлов с использованием vault. |
| dest - / обязательно | Абсолютный удалённый путь, куда должен быть скопирован файл. Если src является каталогом, то dest также должен быть каталогом. Если dest является несуществующим путём, и если dest заканчивается на "/" или src является каталогом, то dest будет создан. Если src и dest являются файлами, родительский каталог dest не создаётся: задача завершается неудачей, если он не существует. | |
| directory_mode - добавлен в 1.5 | При рекурсивном копировании устанавливает режим для каталогов. Если это не установлено, будут использоваться системные значения по умолчанию. Режим устанавливается только для вновь созданных каталогов и не влияет на уже существующие. | |
| follow boolean добавлен в 1.8 |
| Этот флаг указывает, что должны быть пройдены ссылки на файлы в системе в конечном пункте назначения, если они существуют. |
| force boolean |
| по умолчанию yes, что замещает удалённый файл, когда содержимое отличается от исходного. Если no, файл будет передан только в том случае, если файла назначения не существует.псевдонимы: thirsty |
| group - | Имя группы, которой должен принадлежать файл/каталог, как это передаётся в chown. | |
| local_follow boolean добавлен в 2.4 |
| Этот флаг указывает, что ссылки на файлы в исходном дереве, если они существуют, должны быть пройдены. |
| mode - | Режим файла или каталога. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны добавить ведущую ноль, чтобы Ansible знал, что это восьмеричное число (например, 0644 или 01777) или заключить его в кавычки (например, '644' или '1777') для того, чтобы Ansible принял строку и выполнил преобразование из строки в число. Передача Ansible числа без этих правил приведёт к десятичному числу, что даст непредвиденный результат. С версии 1.8 режим может быть указан в символическом виде (например, u+rwx или u=rw,g=r,o=r). С версии 2.3 режим также может быть специальной строкой preserve. preserve означает, что файлу будут предоставлены те же разрешения, что и исходному файлу. | |
| owner - | Имя пользователя, которому должен принадлежать файл/каталог, как оно передаётся в chown. | |
| remote_src boolean добавлен в 2.0 |
| Если no, он будет искать src на исходной/главной машине.Если yes, он будет искать src на удалённой/целевой машине. Значение по умолчанию no.В настоящее время remote_src не поддерживает рекурсивное копирование.
remote_src работает только с mode=preserve начиная с версии 2.6. |
| selevel - | Значение по умолчанию: "s0" | Часть контекста файла SELinux. Это атрибут MLS/MCS, иногда известный как range. _default функция работает аналогично seuser. |
| serole - | Часть контекста файла SELinux, роль. _default функция работает аналогично seuser. | |
| setype - | Часть контекста файла SELinux, тип. _default функция работает аналогично seuser. | |
| seuser - | Часть контекста файла SELinux, пользователь. Будет использовать системную политику по умолчанию, если применимо. Если установлено значение _default, будет использоваться часть политики user, если она доступна. | |
| src - | Локальный путь к файлу для копирования на удалённый сервер; может быть абсолютным или относительным. Если путь является каталогом, он копируется рекурсивно. В этом случае, если путь заканчивается на "/", будут скопированы только содержимое этого каталога в назначение. В противном случае, если он не заканчивается "/", сам каталог с содержимым будет скопирован. Это поведение аналогично Rsync. | |
| unsafe_writes boolean добавлен в 2.2 |
| По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения из целевых файлов, но иногда системы настроены или просто повреждены таким образом, что это предотвращает. Одним из примеров являются файлы, смонтированные через docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным способом. Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции завершаются неудачей (однако, он не заставляет Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных. |
| validate - | Команда проверки, которую необходимо выполнить перед копированием в место назначения. Путь к файлу для проверки передаётся через '%s', который должен присутствовать, как показано в примере ниже. Команда передаётся безопасно, поэтому такие функции оболочки, как расширение и конвейеры, не будут работать. |
Примечания
Примечание
- Модуль copy для рекурсивного копирования не масштабируется для большого количества файлов (> сотен). В качестве альтернативы см. модуль synchronize, который является оболочкой вокруг
rsync. - Для целей Windows используйте модуль win_copy.
Примеры
- name: example copying file with owner and permissions
copy:
src: /srv/myfiles/foo.conf
dest: /etc/foo.conf
owner: foo
group: foo
mode: 0644
- name: The same example as above, but using a symbolic mode equivalent to 0644
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 the 'content' for inline data
copy:
content: '# This file was moved to /etc/other.conf'
dest: /etc/mine.conf'
Значения возврата
Общие значения возврата документированы здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| 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]
Поддержка Red Hat
Дополнительную информацию о поддержке этого модуля Red Hat можно найти в статье базы знаний Red Hat по этой ссылке.
Авторы
- Команда разработчиков Ansible
- 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.7/modules/copy_module.html