ansible.builtin.copy – Копирование файлов на удаленные расположения
Примечание
Этот модуль является частью ansible-base и включён во все установки Ansible. В большинстве случаев можно использовать короткое имя модуля copy даже без указания ключевого слова collections:. Несмотря на это, рекомендуется использовать FQCN для лёгкой ссылки на документацию модуля и для избежания конфликтов с другими коллекциями, которые могут иметь то же имя модуля.
Описание
- Модуль
copyкопирует файл с локального или удалённого компьютера на расположение на удалённом компьютере. - Используйте модуль ansible.builtin.fetch для копирования файлов с удалённых расположений на локальный компьютер.
- Если вам нужна интерполяция переменных в копируемых файлах, используйте модуль ansible.builtin.template. Использование переменной в поле
contentприведёт к непредсказуемым результатам. - Для целевых систем Windows используйте модуль ansible.windows.win_copy.
Примечание
Этот модуль имеет соответствующий плагин действий.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes строка добавлено в версии 2.3 ansible.builtin | Атрибуты, которые должны быть у результирующего файла или каталога. Чтобы узнать о поддерживаемых флагах, см. страницу руководства для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении командой lsattr. Оператор = предполагается по умолчанию, в противном случае необходимо включить операторы + или - в строку.псевдонимы: attr | |
| backup логическое значение добавлено в версии 0.7 ansible.builtin |
| Создаёт резервную копию файла, включая информацию о времени, чтобы вы могли восстановить исходный файл, если вы случайно его повредили. |
| checksum строка добавлено в версии 2.5 ansible.builtin | SHA1 контрольная сумма передаваемого файла. Используется для проверки успешности копирования файла. Если это не указано, Ansible будет использовать вычисленную локальную контрольную сумму файла src. | |
| content строка добавлено в версии 1.1 ansible.builtin | Когда используется вместо src, непосредственно устанавливает содержимое файла в указанное значение.Работает только когда dest является файлом. Создаёт файл, если он не существует.Для расширенной форматирования или если content содержит переменную, используйте модуль ansible.builtin.template. | |
| decrypt логическое значение добавлено в версии 2.4 ansible.builtin |
| Этот параметр контролирует автоматическое расшифрование исходных файлов с помощью vault. |
| dest путь / обязательно | Удаленный абсолютный путь, куда должен быть скопирован файл. Если src является каталогом, то и это должно быть каталог.Если dest — не существующий путь, и если dest заканчивается на "/" или src — каталог, то dest создаётся.Если dest — относительный путь, начальный каталог определяется удалённым хостом. Если src и dest являются файлами, родительский каталог dest не создаётся, и задача завершается неудачно, если он не существует. | |
| directory_mode сырой добавлено в версии 1.5 ansible.builtin | При рекурсивном копировании установите режим для каталогов. Если не установлено, мы будем использовать системные значения по умолчанию. Режим устанавливается только для вновь созданных каталогов и не повлияет на те, которые уже существовали. | |
| follow логическое значение добавлено в версии 1.8 ansible.builtin |
| Этот флаг указывает, что системные ссылки в пункте назначения, если они существуют, должны быть прослежены. |
| force логическое значение добавлено в версии 1.1 ansible.builtin |
| Влияет на то, должен ли удалённый файл всегда заменяться. Если yes, удалённый файл будет заменён, когда содержимое отличается от исходного.Если no, файл будет скопирован только в том случае, если пункт назначения не существует.Псевдоним thirsty устарел и будет удален в версии 2.13.псевдонимы: thirsty |
| group строка | Имя группы, которой должен принадлежать файл/каталог, как это передаётся в chown. | |
| local_follow логическое значение добавлено в версии 2.4 ansible.builtin |
| Этот флаг указывает, что системные ссылки в исходном дереве, если они существуют, должны быть прослежены. |
| mode путь | Права доступа к целевому файлу или каталогу. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую нуль, чтобы парсер YAML Ansible знал, что это восьмеричное число (например, 0644 или 01777) , либо заключить его в кавычки (например, '644' или '1777' ), чтобы Ansible получил строку и мог выполнить преобразование из строки в число. Передача Ansible числа без выполнения одного из этих правил приведёт к десятичному числу, что приведёт к непредвиденным результатам.Начиная с Ansible 1.8, режим может быть задан как символический режим (например, u+rwx или u=rw,g=r,o=r).Начиная с Ansible 2.3, режим также может быть специальной строкой preserve.preserve означает, что файлу будут предоставлены те же права, что и исходному файлу.При рекурсивном копировании также см. directory_mode. | |
| owner строка | Имя пользователя, которому должен принадлежать файл/каталог, как это передаётся в chown. | |
| remote_src логическое значение добавлено в версии 2.0 ansible.builtin |
| Влияет на то, необходимо ли передавать src или он уже присутствует на удалённом сервере.Если no, будет поиск src на исходной/главной машине.Если yes, будет доступ к удалённой/целевой машине для src.remote_src поддерживает рекурсивное копирование начиная с версии 2.8.remote_src работает только с mode=preserve начиная с версии 2.6. |
| selevel строка | Часть контекста файла 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 ansible.builtin |
| Влияет на то, когда использовать атомарную операцию, чтобы предотвратить повреждение данных или несогласованные чтения из целевого файла. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто сломаны таким образом, что это предотвращается. Один пример - файлы с монтированием docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только неатомарным образом. Этот параметр позволяет Ansible переходить к небезопасным методам обновления файлов, когда атомарные операции завершаются неудачей (однако он не принуждает Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных. |
| validate строка | Команда валидации, которую нужно выполнить перед копированием на место. Путь к файлу для проверки передаётся через '%s', который должен быть присутствовать, как в примерах ниже. Команда передаётся безопасно, так что такие возможности оболочки, как расширение и конвейеры, не будут работать. |
Примечания
Примечание
- Модуль ansible.builtin.copy не масштабируется при копировании большого количества файлов (> сотен).
- Поддерживает
check_mode.
См. также
См. также
- ansible.builtin.assemble
-
Официальная документация по модулю ansible.builtin.assemble.
- ansible.builtin.fetch
-
Официальная документация по модулю ansible.builtin.fetch.
- ansible.builtin.file
-
Официальная документация по модулю ansible.builtin.file.
- ansible.builtin.template
-
Официальная документация по модулю ansible.builtin.template.
- ansible.posix.synchronize
-
Официальная документация по модулю ansible.posix.synchronize.
- ansible.windows.win_copy
-
Официальная документация по модулю ansible.windows.win_copy.
Примеры
- name: Copy file with owner and permissions
ansible.builtin.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
ansible.builtin.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
ansible.builtin.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
ansible.builtin.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
ansible.builtin.copy:
src: /mine/sudoers
dest: /etc/sudoers
validate: /usr/sbin/visudo -csf %s
- name: Copy a "sudoers" file on the remote machine for editing
ansible.builtin.copy:
src: /etc/sudoers
dest: /etc/sudoers.edit
remote_src: yes
validate: /usr/sbin/visudo -csf %s
- name: Copy using inline content
ansible.builtin.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
ansible.builtin.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
ansible.builtin.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 строка | успех | Состояние целевого объекта после выполнения. Пример: файл |
| uid целое число | успех | Идентификатор владельца файла после выполнения. Пример: 100 |
Авторы
- Команда 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.10/collections/ansible/builtin/copy_module.html