Задача: есть кучка серверов, на которых нужно поддерживать в актуальном состоянии все скрипты.
Решение: используем ansible
1) Создаем файл конфигурации ansible.cfg
|
[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
|
[cdvol] 13.27.142.21 ansible_ssh_user=pavel 21.147.18.11 ansible_ssh_user=pavel |
, где создали группу и перечислили хосты этой группы
4) Создадим playbooks
|
--- - 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) Ну и запустим наши потуги:
|
ansible-playbook -i /home/pavel/ansible/inventory/inventory /home/pavel/ansible/playbooks/start_update.yml |