Ansible это инструмент для автоматизации управления серверами. Он позволяет централизованно управлять конфигурацией, установкой ПО, обновлениями и деплоем.
Управление происходит через SSH
Установим Ansible на локальной машине или VDS, откуда вы будете управлять другими серверами:
sudo apt update
sudo apt install -y ansible
Проверка, что всё установилось:
ansible --version
Создадим файл /etc/ansible/hosts или свой кастомный, например ~/ansible/hosts:
[web]
192.168.1.10
192.168.1.11
[db]
192.168.1.12
Если используется кастомный файл, нужно будет указать его в командах через флаг -i.
Ansible подключается по SSH, так что требуется авторизацию по ключу:
ssh-keygen -t ed25519
ssh-copy-id user@192.168.1.10
Убедитесь, что можно зайти на все сервера без пароля по SSH.
Попробуем пинг всех серверов из группы:
ansible all -i ~/ansible/hosts -m ping
Результат должен быть pong от каждого сервера.
Создайте файл setup.yml с примером установки пакета:
- hosts: web
become: yes
tasks:
- name: Обновление apt
apt:
update_cache: yes
- name: Установка Nginx
apt:
name: nginx
state: present
Запустите плейбук:
ansible-playbook -i ~/ansible/hosts setup.yml
Разделите роли, шаблоны, переменные. Структура проекта:
project/
├── hosts
├── site.yml
└── roles/
└── nginx/
├── tasks/
│ └── main.yml
└── templates/
└── nginx.conf.j2
Такой подход масштабируется и легко поддерживается, особенно если серверов становится больше.
Ansible это простой, но мощный инструмент для управления инфраструктурой. Его можно настроить один раз и потом использовать для работы с большим количеством серверов, избегая рутинного выполнения команд на каждом сервере