Spec-Zone.ru › Ansible 2.7

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API