Синхронизация папок удаленных серверов с локальной машиной посредством ansible
Задача: есть кучка серверов, на которых нужно поддерживать в актуальном состоянии все скрипты.
Решение: используем ansible
1) Создаем файл конфигурации ansible.cfg
1 2 3 4 5 6 7 |
[defaults] hostfile = /home/pavel/ansible/inventory/inventory sudo_user = root user=pavel remote_user = root control_path_dir = /home/pavel/.ansible/cp log_path = /home/pavel/logs/ansible.log |
, куда занесем некоторые основные значения, чтобы каждый раз не вставлять в параметры
2) Сделаем доступ по ssh без ввода пароля
3) Создадим файл inventory
1 2 3 |
[cdvol] 13.27.142.21 ansible_ssh_user=pavel 21.147.18.11 ansible_ssh_user=pavel |
, где создали группу и перечислили хосты этой группы
4) Создадим playbooks
1 2 3 4 5 6 7 8 9 |
--- - hosts: cdvol tasks: - name: remove folder shell: "rm -R -r -f /home/pavel/cd_service" - name: create folder shell: "mkdir /home/pavel/cd_service" - name: sync synchronize: src=/home/pavel/ansible/files/ dest=/home/pavel/cd_service/ mode=push |
5) Ну и запустим наши потуги:
1 |
ansible-playbook -i /home/pavel/ansible/inventory/inventory /home/pavel/ansible/playbooks/start_update.yml |