rsync до сих пор остается самым простым и быстрым инструментом для резервного копирования с нескольких и более серверов. А если обернуть его в ansible, можно получить полностью автоматизированную и воспроизводимую систему бэкапов, без ручных скриптов и кронов вразнобой.Ansible будет отвечать за логику: какие хосты, какие директории, куда складывать.
rsync за быструю передачу файлов.
▪️ Пример структуры проекта
backup/
├── inventory
├── playbook.yml
└── vars.yml
▪️
vars.yml
backup_src: "/var/www"
backup_dest: "/backups/{{ inventory_hostname }}/"
▪️
playbook.yml
- hosts: all
become: yes
vars_files:
- vars.yml
tasks:
- name: Создать директорию для бэкапов
file:
path: "{{ backup_dest }}"
state: directory
recurse: yes
- name: Rsync данных
synchronize:
src: "{{ backup_src }}/"
dest: "{{ backup_dest }}"
archive: yes
compress: yes
delete: no
synchronize - это модуль ansible, который под капотом использует rsync.▪️ Планировщик на контроллере. Бэкапы можно запускать с машины-контроллера ansible через cron:
0 3 * * * ansible-playbook /opt/backup/playbook.yml
Теперь в 03:00 ночи ansible пройдет по инвентарю и снимет инкрементальные копии со всех серверов.
➕ Плюсы такого подхода
единая логика бэкапов;
легко масштабировать на новые сервера;
rsync быстро переносит только измененные файлы.
#ansible #backup
🧑💻 NetworkAdmin