Spec-Zone.ru › Ansible 2.9

copy – Копирование файлов на удаленные места

  • Краткое описание
  • Параметры
  • Примечания
  • См. также
  • Примеры
  • Возвращаемые значения
  • Статус

Краткое описание

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

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
attributes
строка
Атрибуты, которые должны иметь результирующий файл или директория.
Чтобы получить поддерживаемые флаги, обратитесь к странице руководства для chattr на целевой системе.
Эта строка должна содержать атрибуты в том же порядке, что и при отображении lsattr.
Оператор = предполагается по умолчанию, в противном случае необходимо включить операторы + или - в строку.

псевдонимы: attr
backup
логическое значение
    Варианты:
  • нет ←
  • да
Создать резервную копию файла, включая информацию о времени создания, чтобы вы могли вернуть исходный файл в случае его неправильного изменения.
checksum
строка
добавлен в 2.5
Контрольная сумма SHA1 копируемого файла.
Используется для проверки успешного копирования файла.
Если это значение не задано, Ansible использует вычисленную локальную контрольную сумму файла src.
content
строка
При использовании вместо src, непосредственно задаёт содержимое файла указанным значением.
Работает только когда dest — это файл. Создаёт файл, если он не существует.
Для расширенного форматирования или если content содержит переменную, используйте модуль template.
decrypt
логическое значение
добавлен в 2.4
    Варианты:
  • нет
  • да ←
Этот параметр управляет автоматическим расшифрованием исходных файлов с помощью vault.
dest
путь / обязательно
Удаленный абсолютный путь, куда должен быть скопирован файл.
Если src — это директория, то и это значение должно быть директорией.
Если dest — это несуществующий путь, и dest заканчивается на "/" или src — это директория, то dest будет создана.
Если dest — это относительный путь, то начальная директория определяется на удалённом хосте.
Если src и dest — файлы, то родительская директория dest не создаётся, и задача завершается неудачно, если она не существует.
directory_mode
сырое значение
При рекурсивном копировании устанавливает режим для директорий.
Если это значение не задано, будут использоваться системные значения по умолчанию.
Режим устанавливается только для вновь созданных директорий и не влияет на существующие.
follow
логическое значение
    Варианты:
  • нет ←
  • да
Этот флаг указывает, что ссылки в файловой системе в пункте назначения, если они существуют, должны быть пройдены.
force
логическое значение
    Варианты:
  • нет
  • да ←
Влияет на то, должен ли удалённый файл всегда заменяться.
Если yes, удалённый файл будет заменён, если содержимое отличается от исходного.
Если no, файл будет скопирован только если файл назначения не существует.
Псевдоним thirsty устарел и будет удалён в версии 2.13.

псевдонимы: thirsty
group
строка
Имя группы, которая должна владеть файлом/директорией, как если бы это было передано в chown.
local_follow
логическое значение
добавлен в 2.4
    Варианты:
  • нет
  • да ←
Этот флаг указывает, что ссылки в файловой системе исходного дерева, если они существуют, должны быть пройдены.
mode
путь
Разрешения целевого файла или директории.
Для тех, кто знаком с /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущий ноль, чтобы парсер Ansible YAML понял, что это восьмеричное число (например, 0644 или 01777), либо заключить его в кавычки (например, '644' или '1777'), чтобы Ansible получил строку и выполнил собственное преобразование из строки в число. Передача Ansible чисел без выполнения одного из этих правил приведёт к десятичному числу, что может привести к непредвиденным результатам.
Начиная с Ansible 1.8, режим может быть задан как символический режим (например, u+rwx или u=rw,g=r,o=r).
Начиная с Ansible 2.3, режим может также быть специальной строкой preserve.
preserve означает, что файлу будут заданы те же права, что и исходному файлу.
owner
строка
Имя пользователя, который должен владеть файлом/директорией, как если бы это было передано в chown.
remote_src
логическое значение
    Варианты:
  • нет ←
  • да
Влияет на необходимость передачи src или его наличия на удалённом сервере.
Если no, будет выполняться поиск src на исходной/главной машине.
Если yes, будет выполняться поиск src на удалённом/целевом сервере.
remote_src поддерживает рекурсивное копирование с версии 2.8.
remote_src работает только с mode=preserve с версии 2.6.
selevel
строка
По умолчанию:
"s0"
Часть контекста файла SELinux.
Это атрибут MLS/MCS, иногда известный как range.
Если установлено _default, будет использоваться часть политики level, если она доступна.
serole
строка
Часть контекста файла SELinux.
Если установлено _default, будет использоваться часть политики role, если она доступна.
setype
строка
Часть контекста файла SELinux.
Если установлено _default, будет использоваться часть политики type, если она доступна.
seuser
строка
Часть контекста файла SELinux.
По умолчанию используется политика system, где это применимо.
Если установлено _default, будет использоваться часть политики user, если она доступна.
src
путь
Локальный путь к файлу для копирования на удалённый сервер.
Может быть абсолютным или относительным.
Если путь — это директория, она копируется рекурсивно. В этом случае, если путь заканчивается на "/", будут скопированы только файлы внутри этой директории. В противном случае, если путь не заканчивается на "/", будет скопирована сама директория со всеми содержимым. Это поведение аналогично команде rsync.
unsafe_writes
логическое значение
    Варианты:
  • нет ←
  • да
Влияет на то, когда использовать атомарную операцию для предотвращения повреждения данных или несогласованных чтений из целевого файла.
По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто неисправны так, что это не возможно. Одним из примеров являются смонтированные файлы docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным способом.
Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции не удаются (однако он не заставляет Ansible выполнять небезопасные записи).
ВАЖНО! Небезопасные записи подвержены проблемам гонок и могут привести к повреждению данных.
validate
строка
Команда проверки, которая должна быть выполнена перед копированием.
Путь к файлу, подлежащему проверке, передаётся через '%s', который должен присутствовать, как в примерах ниже.
Команда передаётся безопасно, поэтому такие возможности оболочки, как расширение и конвейеры, не будут работать.

Примечания

Примечание

  • Модуль copy не масштабируется для большого количества файлов (> сотни).

См. также

См. также

assemble – Сборка файлов конфигурации из фрагментов
Официальная документация по модулю assemble.
fetch – Загрузка файлов с удалённых узлов
Официальная документация по модулю fetch.
file – Управление файлами и свойствами файлов
Официальная документация по модулю file.
synchronize – Обёртка вокруг rsync для ускорения выполнения задач в playbooks
Официальная документация по модулю synchronize.
template – Шаблонизация файла на удалённом сервере
Официальная документация по модулю template.
win_copy – Копирование файлов на удалённые расположения на Windows-хостах
Официальная документация по модулю win_copy.

Примеры

- name: Copy file with owner and permissions
  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
  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 -csf %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 -csf %s

- name: Copy using inline content
  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
  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
  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
строка
при успехе
Состояние целевого объекта после выполнения

Пример:
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.9/modules/copy_module.html

Spec-Zone.ru

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