copy - Копирование файлов в удалённые расположения
Описание
- Модуль
copyкопирует файл с локального или удалённого компьютера в расположение на удалённом компьютере. Для копирования файлов из удалённых расположений на локальный компьютер используйте модуль fetch. Если вам требуется интерполяция переменных в копируемых файлах, используйте модуль template. - Для целевых систем Windows используйте модуль win_copy.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes (добавлен в 2.3) | Значение по умолчанию: None | Атрибуты, которые должен иметь файл или каталог. Чтобы получить поддерживаемые флаги, см. страницу руководства для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении lsattr. псевдонимы: attr |
| backup |
| Создаёт резервную копию файла, включая отметку времени, чтобы вы могли восстановить исходный файл в случае ошибки. |
| checksum (добавлен в 2.5) | Контрольная сумма SHA1 копируемого файла. Используется для проверки успешности копирования. Если не указано, Ansible использует вычисленную локальную контрольную сумму файла src. | |
| content | При использовании вместо src напрямую задаёт содержимое файла. Для сложных случаев с форматированием обратитесь к модулю template. | |
| decrypt (добавлен в 2.4) |
Yes | Этот параметр управляет автоматическим расшифрованием исходных файлов с помощью vault. |
| dest обязательно | Абсолютный удалённый путь, куда должен быть скопирован файл. Если src - каталог, то и dest должен быть каталогом. Если dest - несуществующий путь, и dest заканчивается на "/" или src - каталог, то dest будет создан. Если src и dest - файлы, родительский каталог dest не создаётся: задача завершается с ошибкой, если он не существует. | |
| directory_mode (добавлен в 1.5) | При рекурсивном копировании задаёт режим каталогов. Если не указано, используются системные значения по умолчанию. Режим устанавливается только для вновь созданных каталогов и не влияет на существующие. | |
| follow (добавлен в 1.8) |
| Этот флаг указывает, что символические ссылки в пункте назначения, если они существуют, должны быть прослежены. |
| force |
| Значение по умолчанию - yes, что заменит удалённый файл, когда содержимое отличается от исходного. Если no, файл будет скопирован только в случае, если пункт назначения не существует.псевдонимы: thirsty |
| group | Значение по умолчанию: None | Имя группы, которая должна владеть файлом/каталогом, как для команды chown. |
| local_follow (добавлен в 2.4) |
| Этот флаг указывает, что символические ссылки в исходном дереве, если они существуют, должны быть прослежены. |
| mode | Значение по умолчанию: None | Режим файла или каталога. Для тех, кто знаком с командой /usr/bin/chmod, помните, что режимы - это октальные числа (например, 0644 или 01777). Опускание ведущего нуля может привести к нежелательным результатам. С версии 1.8, режим может быть указан как символьный режим (например, u+rwx или u=rw,g=r,o=r). |
| owner | Значение по умолчанию: None | Имя пользователя, который должен владеть файлом/каталогом, как для команды chown. |
| remote_src (добавлен в 2.0) |
| Если no, поиск src будет произведён на исходном/главном компьютере.Если yes, поиск src будет произведён на удалённом/целевом компьютере. Значение по умолчанию - no.В настоящее время remote_src не поддерживает рекурсивное копирование. |
| selevel | Значение по умолчанию: s0 | Часть контекста файла SELinux. Это атрибут MLS/MCS, иногда известный как range. Функция _default работает аналогично seuser. |
| serole | Значение по умолчанию: None | Часть контекста файла SELinux. Функция _default работает аналогично seuser. |
| setype | Значение по умолчанию: None | Часть контекста файла SELinux. Функция _default работает аналогично seuser. |
| seuser | Значение по умолчанию: None | Пользовательская часть контекста файла SELinux. По умолчанию использует системную политику, если применимо. Если установлено значение _default, будет использоваться часть политики user. |
| src | Локальный путь к файлу, который нужно скопировать на удалённый сервер; может быть абсолютным или относительным. Если путь - каталог, он копируется рекурсивно. В этом случае, если путь заканчивается на "/", будут скопированы только содержимое каталога. Иначе, если он не заканчивается на "/", каталог со всем содержимым будет скопирован. Это поведение аналогично Rsync. | |
| unsafe_writes (добавлен в 2.2) |
| Обычно этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов. Иногда системы настроены или просто не работают должным образом, что препятствует этому. Примером могут служить файлы, смонтированные через docker; они не могут быть обновлены атомарно и могут быть обновлены только небезопасным способом. Этот логический параметр позволяет Ansible использовать небезопасные методы обновления файлов в тех случаях, когда нет другого выбора. Имейте в виду, что это может привести к гонкам и повреждению данных. |
| validate | Значение по умолчанию: None | Команда проверки, выполняемая перед копированием. Путь к файлу для проверки передаётся через '%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 строка | успех | состояние целевого объекта после выполнения Пример: файл |
| uid целое число | успех | идентификатор владельца файла после выполнения Пример: 100 |
Статус
Этот модуль помечен как stableinterface, что означает, что разработчики данного модуля гарантируют отсутствие несовместимых с предыдущими версиями изменений интерфейса.
Поддержка
Дополнительную информацию о поддержке данного модуля 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.5/modules/copy_module.html