Spec-Zone.ru › Ansible 2.4

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

  • Описание
  • Параметры
  • Примеры
  • Возвращаемые значения
  • Примечания
    • Статус
    • Информация о поддержке

Описание

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

Параметры

параметр обязательно по умолчанию выбор комментарии
attributes
(добавлен в 2.3)
нет None
Атрибуты, которые должен иметь файл или каталог. Для получения поддерживаемых флагов обратитесь к странице руководства для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении lsattr.
псевдонимы: attr
backup
нет no
  • yes
  • no
Создать резервную копию файла, включая информацию о времени, чтобы вы могли получить исходный файл, если каким-то образом неправильно его перезаписали.
content
нет
При использовании вместо src, устанавливает содержимое файла непосредственно в указанное значение. Для сложных задач или форматирования также обратитесь к модулю template.
decrypt
(добавлен в 2.4)
нет Да
  • yes
  • no
Этот параметр управляет автоматическим расшифрованием исходных файлов с помощью vault.
dest
да
Полный удалённый путь, куда должен быть скопирован файл. Если src — каталог, то и dest должен быть каталогом. Если dest — несуществующий путь и dest заканчивается на "/" или src — каталог, то dest будет создан. Если src и dest — файлы, родительский каталог dest не создаётся: задача завершается неудачно, если он не существует.
directory_mode
(добавлен в 1.5)
нет
При выполнении рекурсивной копии задайте режим для каталогов. Если не задано, будем использовать системные значения по умолчанию. Режим устанавливается только для вновь созданных каталогов и не повлияет на существующие.
follow
(добавлен в 1.8)
нет нет
  • yes
  • no
Этот флаг указывает, что должны быть следовать системным ссылкам в пункте назначения, если они существуют.
force
нет да
  • yes
  • no
по умолчанию yes, что будет перезаписывать удалённый файл, когда содержимое отличается от источника. Если no, файл будет скопирован только в том случае, если пункт назначения не существует.
псевдонимы: thirsty
group
нет
Имя группы, которая должна владеть файлом/каталогом, как при вызове chown.
local_follow
(добавлен в 2.4)
нет да
  • yes
  • no
Этот флаг указывает, что должны быть следовать системным ссылкам в исходном дереве, если они существуют.
mode
нет
Режим файла или каталога. Для тех, кто знаком с /usr/bin/chmod, помните, что режимы — это фактически восьмеричные числа (например, 0644). Опускание ведущей нули, вероятно, приведёт к непредвиденным результатам. С версии 1.8 режим можно указать в символической форме (например, u+rwx или u=rw,g=r,o=r).
owner
нет
Имя пользователя, который должен владеть файлом/каталогом, как при вызове chown.
remote_src
(добавлен в 2.0)
нет нет
  • yes
  • no
Если 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)
нет
  • yes
  • no
Обычно этот модуль использует атомарные операции, чтобы предотвратить повреждение данных или несовместимые чтения из целевых файлов, иногда системы настроены или просто работают не так, что предотвращает это. Один пример — файлы, монтированные в 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

Spec-Zone.ru

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