Ansible Copy: Automate File Transfers with Ease
Ansible copy - это модуль Ansible, который позволяет копировать файлы или директории между узлами инфраструктуры.
Пример использования модуля copy для копирования файла с локального хоста на удаленный хост:
yaml
- name: Копирование файла на удаленный хост
hosts: remote_host
tasks:
- name: Копирование файла
copy:
src: /path/to/local/file.txt
dest: /path/to/remote/file.txt
В данном примере файл file.txt, расположенный на локальном хосте в директории /path/to/local, будет скопирован на удаленный хост в директорию /path/to/remote с сохранением имени файла.
Если нужно скопировать целую директорию, то использование атрибута recursive может быть полезным:
yaml
- name: Копирование директории на удаленный хост
hosts: remote_host
tasks:
- name: Копирование директории
copy:
src: /path/to/local/directory
dest: /path/to/remote/
remote_src: yes
recursive: yes
Параметр remote_src указывает, что исходные файлы находятся на удаленном хосте. Параметр recursive указывает, что нужно скопировать целую директорию рекурсивно вместе с содержимым.
Ansible copy также позволяет копировать файлы в зависимости от условий. Например, можно копировать файл только если он отличается от версии, которая уже присутствует на удаленном хосте:
yaml
- name: Копирование файла на удаленный хост
hosts: remote_host
tasks:
- name: Копирование файла только если он изменился
copy:
src: /path/to/local/file.txt
dest: /path/to/remote/file.txt
remote_src: yes
check_mode: yes
В данном примере параметр check_mode указывает, что нужно проверить, отличается ли локальная версия файла от версии, которая уже есть на удаленном хосте, но не копировать файл, если они одинаковы.
В целом, модуль Ansible copy позволяет быстро и безопасно копировать файлы или директории между узлами инфраструктуры, что делает его очень полезным инструментом для проектов, использующих Ansible.