Spec-Zone.ru › Ansible 2.6

copy — Копирование файлов в удалённые расположения

  • Описание
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения
  • Статус
  • Техническое обслуживание
    • Поддержка
    • Автор

Описание

  • Модуль copy копирует файл с локального или удалённого компьютера в местоположение на удалённом компьютере. Для копирования файлов из удалённых расположений на локальный компьютер используйте модуль fetch. Если вам нужна интерполяция переменных в копируемых файлах, используйте модуль template.
  • Для целевых систем Windows используйте модуль win_copy.

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
attributes
(добавлен в 2.3)
Атрибуты файла или каталога. Для получения поддерживаемых флагов см. страницу справки для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и в выводе lsattr.

псевдонимы: attr
backup
bool
    Варианты:
  • no ←
  • yes
Создать резервную копию файла, включая информацию о времени, чтобы можно было восстановить исходный файл, если его каким-то образом повредить.
checksum
(добавлен в 2.5)
Контрольная сумма SHA1 копируемого файла. Используется для проверки успешности копирования файла.
Если этот параметр не указан, Ansible будет использовать вычисленную на локальной машине контрольную сумму исходного файла.
content
При использовании вместо src, устанавливает содержимое файла напрямую в указанное значение. Для более сложных задач или задач с форматированием также можно использовать модуль template.
decrypt
bool

(добавлен в 2.4)
    Варианты:
  • no
  • yes
Значение по умолчанию:
"Да"
Этот параметр управляет автоматическим расшифрованием исходных файлов с использованием vault.
dest
обязательно
Абсолютный удалённый путь, куда нужно скопировать файл. Если src является каталогом, то и dest должен быть каталогом. Если dest — несуществующий путь и dest заканчивается на «/» или src является каталогом, то dest будет создан. Если src и dest — файлы, то родительский каталог dest не создаётся: задача завершается неудачно, если он не существует.
directory_mode
(добавлен в 1.5)
При рекурсивном копировании устанавливает режим для каталогов. Если этот параметр не задан, будут использованы системные значения по умолчанию. Режим устанавливается только для вновь созданных каталогов, на уже существующие он не повлияет.
follow
bool

(добавлен в 1.8)
    Варианты:
  • no ←
  • yes
Этот флаг указывает, что при копировании необходимо следовать ссылкам на файлы в пункте назначения, если они существуют.
force
bool
    Варианты:
  • no
  • yes ←
Значение по умолчанию — yes, что приведет к замене удалённого файла при различии содержимого от исходного. Если no, файл будет скопирован только в том случае, если файла назначения не существует.

псевдонимы: thirsty
group
Имя группы, которая должна владеть файлом/каталогом, как это передаётся в chown.
local_follow
bool

(добавлен в 2.4)
    Варианты:
  • no
  • yes ←
Этот флаг указывает, что при копировании необходимо следовать ссылкам на файлы в исходном дереве, если они существуют.
mode
Режим файла или каталога. Для тех, кто знаком с /usr/bin/chmod, помните, что режимы — это фактически восьмеричные числа. Вы должны либо указать ведущую цифру 0, чтобы Ansible распознал восьмеричное число (например, 0644 или 01777) или заключить его в кавычки (например, '644' или '0644'), чтобы Ansible получил строку и смог преобразовать её в число. Если вы передадите Ansible число без соблюдения одного из этих правил, получится десятичное число, что приведёт к неожиданным результатам. Начиная с версии 1.8, режим можно указать в символическом формате (например, u+rwx или u=rw,g=r,o=r). Начиная с версии 2.3, режим также может быть специальной строкой preserve. preserve означает, что файлу будут назначены такие же разрешения, как и исходному файлу.
owner
Имя пользователя, который должен владеть файлом/каталогом, как это передаётся в chown.
remote_src
bool

(добавлен в 2.0)
    Варианты:
  • no ←
  • yes
Если 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
bool

(добавлен в 2.2)
    Варианты:
  • no ←
  • yes
Обычно этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения из целевых файлов. Иногда системы настроены или просто неисправны таким образом, что это не возможно. Одним из примеров являются файлы, смонтированные в Docker, их нельзя обновлять атомарно, и это можно сделать только небезопасным способом.
Этот логический параметр позволяет 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
строка
успех
состояние целевого объекта после выполнения

Пример:
файл
uid
целое число
успех
идентификатор владельца файла после выполнения

Пример:
100


Статус

Этот модуль помечен как stableinterface, что означает, что поддерживающие его специалисты гарантируют отсутствие несовместимых изменений интерфейса.

Техническое обслуживание

Этот модуль помечен как core, что означает, что он поддерживается Командой по Ansible Core. Подробнее см. Техническое обслуживание и поддержка модулей.

Список других модулей, также поддерживаемых командой Ansible Core Team, см. здесь.

Поддержка

Дополнительную информацию о поддержке этого модуля компанией Red Hat см. в этой статье базы знаний

Автор

  • Команда Ansible Core
  • Майкл ДеХан

Подсказка

Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.6/modules/copy_module.html

Spec-Zone.ru

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