copy - Копирует файлы на удалённые расположения
Описание
- Модуль
copyкопирует файл с локального или удалённого компьютера на удалённое расположение. Используйте модуль fetch для копирования файлов с удалённых расположений на локальный компьютер. Если вам нужны переменные интерполяции в копируемых файлах, используйте модуль template. - Для целей Windows используйте модуль win_copy.
Параметры
| параметр | обязательно | по умолчанию | выбор | комментарии |
|---|---|---|---|---|
| attributes (добавлен в 2.3)
| нет | None | Атрибуты, которые должен иметь файл или каталог. Для получения поддерживаемых флагов обратитесь к странице руководства для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении lsattr. псевдонимы: attr | |
| backup | нет | no |
| Создать резервную копию файла, включая информацию о времени, чтобы вы могли получить исходный файл, если каким-то образом неправильно его перезаписали. |
| content | нет | При использовании вместо src, устанавливает содержимое файла непосредственно в указанное значение. Для сложных задач или форматирования также обратитесь к модулю template. | ||
| decrypt (добавлен в 2.4)
| нет | Да |
| Этот параметр управляет автоматическим расшифрованием исходных файлов с помощью vault. |
| dest | да | Полный удалённый путь, куда должен быть скопирован файл. Если src — каталог, то и dest должен быть каталогом. Если dest — несуществующий путь и dest заканчивается на "/" или src — каталог, то dest будет создан. Если src и dest — файлы, родительский каталог dest не создаётся: задача завершается неудачно, если он не существует. | ||
| directory_mode (добавлен в 1.5)
| нет | При выполнении рекурсивной копии задайте режим для каталогов. Если не задано, будем использовать системные значения по умолчанию. Режим устанавливается только для вновь созданных каталогов и не повлияет на существующие. | ||
| follow (добавлен в 1.8)
| нет | нет |
| Этот флаг указывает, что должны быть следовать системным ссылкам в пункте назначения, если они существуют. |
| force | нет | да |
| по умолчанию yes, что будет перезаписывать удалённый файл, когда содержимое отличается от источника. Если no, файл будет скопирован только в том случае, если пункт назначения не существует.псевдонимы: thirsty |
| group | нет | Имя группы, которая должна владеть файлом/каталогом, как при вызове chown. | ||
| local_follow (добавлен в 2.4)
| нет | да |
| Этот флаг указывает, что должны быть следовать системным ссылкам в исходном дереве, если они существуют. |
| mode | нет | Режим файла или каталога. Для тех, кто знаком с /usr/bin/chmod, помните, что режимы — это фактически восьмеричные числа (например, 0644). Опускание ведущей нули, вероятно, приведёт к непредвиденным результатам. С версии 1.8 режим можно указать в символической форме (например, u+rwx или u=rw,g=r,o=r). | ||
| owner | нет | Имя пользователя, который должен владеть файлом/каталогом, как при вызове chown. | ||
| remote_src (добавлен в 2.0)
| нет | нет |
| Если no, поиск src будет происходить на исходной/главной машине.Если yes поиск src будет происходить на удалённой/целевой машине. Значение по умолчанию no.В настоящее время remote_src не поддерживает рекурсивное копирование. |
| selevel | нет | s0 | Часть контекста файла SELinux. Это атрибут MLS/MCS, иногда известный как range. Функциональность _default работает так же, как для seuser. | |
| serole | нет | Часть контекста файла SELinux, _default функциональность работает так же, как для seuser. | ||
| setype | нет | Часть контекста файла SELinux, _default функциональность работает так же, как для seuser. | ||
| seuser | нет | Часть контекста файла SELinux. По умолчанию используется системная политика, если применимо. Если установлено _default, будет использоваться часть политики user, если она доступна. | ||
| src | нет | Локальный путь к файлу, который нужно скопировать на удалённый сервер; может быть абсолютным или относительным. Если путь — каталог, он копируется рекурсивно. В этом случае, если путь заканчивается на "/", копируются только содержимое каталога в пункт назначения. В противном случае, если путь не заканчивается на "/", копируется сам каталог со всем содержимым. Это поведение аналогично Rsync. | ||
| unsafe_writes (добавлен в 2.2)
| нет |
| Обычно этот модуль использует атомарные операции, чтобы предотвратить повреждение данных или несовместимые чтения из целевых файлов, иногда системы настроены или просто работают не так, что предотвращает это. Один пример — файлы, монтированные в Docker, они не могут быть обновлены атомарно и могут быть обновлены только ненадёжным способом. Этот булевый параметр позволяет Ansible перейти к небезопасным методам обновления файлов в тех случаях, когда у вас нет другого выбора. Имейте в виду, что это подвержено гонкам и может привести к повреждению данных. | |
| validate | нет | None | Команда проверки, которая должна быть выполнена перед копированием. Путь к файлу для проверки передаётся через '%s', который должен присутствовать, как в примере ниже. Команда передаётся безопасно, так что такие возможности оболочки, как расширение и каналы, не сработают. |
Примеры
# Example from Ansible Playbooks
- copy:
src: /srv/myfiles/foo.conf
dest: /etc/foo.conf
owner: foo
group: foo
mode: 0644
# 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
# 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
# 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
# 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
# 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
# Create a CSV file from your complete inventory using an inline template
- hosts: all
tasks:
- copy:
content: |
HOSTNAME;IPADDRESS;FQDN;OSNAME;OSVERSION;PROCESSOR;ARCHITECTURE;MEMORY;
{% for host in hostvars %}
{% set vars = hostvars[host|string] %}
{{ vars.ansible_hostname }};{{ vars.remote_host }};{{ vars.ansible_fqdn }};{{ vars.ansible_distribution }};{{ vars.ansible_distribution_version }};{{ vars.ansible_processor[1] }};{{ vars.ansible_architecture }};{{ (vars.ansible_memtotal_mb/1024)|round|int }}; # NOQA
{% endfor %}
dest: /some/path/systems.csv
backup: yes
run_once: yes
delegate_to: localhost
Возвращаемые значения
Общие возвращаемые значения документированы здесь Возвращаемые значения, следующие являются уникальными для данного модуля:
| имя | описание | возвращается | тип | пример |
|---|---|---|---|---|
| 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 |
Примечания
Примечание
- Утилита рекурсивного копирования модуля copy не масштабируется для большого количества файлов (>сотен). Для альтернативы см. модуль synchronize, который является обёрткой вокруг
rsync. - Для целей Windows используйте модуль win_copy.
Статус
Этот модуль помечен как stableinterface, что означает, что разработчики этого модуля гарантируют, что не будет вноситься обратной совместимости.
Информация о техническом обслуживании
Для получения дополнительной информации о поддержке этого модуля компанией Red Hat, пожалуйста, обратитесь к этому knowledge base article<https://access.redhat.com/articles/rhel-top-support-policies>
Для получения помощи в разработке модулей, если у вас есть такое желание, пожалуйста, прочтите Информация о сообществе и участие, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/copy_module.html