|
|||||||
Как в модуле synchronize системы Ansible указывать каталоги, чтобы копировался именно каталог или только содержимое
Время создания: 10.03.2025 11:51
Текстовые метки: ansible, synchronize, модуль, директория, каталог, папка, слеш, "/", завершающий, содержимое, копирование, синхронизация
Раздел: Компьютер - Linux - Оркестрация - Ansible
Запись: xintrea/mytetra_syncro/master/base/1741596703uztpnfiy44/text.html на raw.github.com
|
|||||||
|
|||||||
Вопрос Как в модуле syncronize системы оркестрации Ansible указать исходную директорию и директорию назначения так, чтобы скопировалось только содержимое директории, без создания новой директории на управляемом хосте? Есть ли какие-то тонкости с указанием звершающего слеша в конце пути к директории в параметрах src и dest? Ответ В модуле synchronize в Ansible, если вы хотите скопировать только содержимое директории, без создания новой директории на управляемом хосте, вам нужно обратить внимание на использование завершающего слеша (/) в параметрах src и dest. Как указать исходную и целевую директории Исходная директория (src): Если вы хотите скопировать только содержимое директории, добавьте завершающий слеш (/) к пути исходной директории. Например: src: /path/to/source/ Этот параметр указывает модулю synchronize, что нужно копировать только содержимое директории, а не саму директорию. Целевая директория (dest): Убедитесь, что вы не добавляете завершающий слеш к пути целевой директории. Например: dest: /path/to/destination Этот параметр гарантирует, что содержимое будет скопировано непосредственно в указанную директорию, без создания дополнительной поддиректории. Полный пример задачи - name: Синхронизация содержимого исходной директории с директорией назначения synchronize: src: /path/to/source/ dest: /path/to/destination Тонкости с завершающим слешем (другими словами) Параметр src: Если добавить завершающий слеш (/), то будет скопировано только содержимое директории. Если не добавить, то будет скопирована сама директория вместе с её содержимым. Параметр dest: Если добавить завершающий слеш (/), это может привести к неожиданному поведению, так как модуль может интерпретировать это как указание на создание новой поддиректории. Поэтому лучше не добавлять завершающий слеш к dest. Правильное использование завершающего слеша в src и dest позволяет контролировать, будет ли скопирована сама директория или только её содержимое. Дополнительные параметры Если требуется, чтобы модуль synchronize работал в режиме "mirror" (удаляя файлы в целевой директории, которых нет в исходной), можно добавить параметр delete: yes: - name: Synchronize contents with mirroring synchronize: src: /path/to/source/ dest: /path/to/destination delete: yes Полезно знать, что модуль synchronize у себя под капотом использует Linux-утилиту rsync. Если нужно использовать rsync с определёнными опциями, то их следует указать их через параметр rsync_opts: - name: Synchronize with custom rsync options synchronize: src: /path/to/source/ dest: /path/to/destination rsync_opts: - "--exclude=*.tmp" - "--archive" Эти опции будут добавляться в командную строку при конструировании итоговой команды синхронизации. |
|||||||
Так же в этом разделе:
|
|||||||
![]() |
|||||||
|
|||||||
|