Когда я только начала работать с VPS, каждая настройка казалась отдельным квестом. Установить Nginx, настроить firewall, создать пользователей — всё вручную. В какой-то момент мне просто надоело повторять одни и те же команды, и я решила попробовать Ansible. Оказалось, что это не только удобно, но и экономит часы работы. В этой статье поделюсь, как автоматизировать настройку VPS с помощью Ansible — простыми словами и с конкретными примерами.
Что такое Ansible и зачем он нужен
Ansible — это система управления конфигурациями, которая позволяет описать нужное состояние сервера в виде сценариев (playbook’ов). Он не требует установки клиента на VPS, достаточно SSH-доступа. Всё, что нужно — установить Ansible на локальной машине и настроить подключение.
Преимущества Ansible:
- Без агентов: не нужно ставить лишнее на сервер.
- Язык YAML: читается как документ, а не код.
- Простота: понятен даже без опыта DevOps.
- Повторяемость: можно настроить 1 VPS или 10 — одинаково.
Подготовка: установка Ansible и настройка доступа
Устанавливаем Ansible (на Ubuntu):
sudo apt update sudo apt install ansible -y
Создаём файл
hosts.ini
[vps] 192.0.2.1 ansible_user=root
Проверим доступ:
ansible -i hosts.ini vps -m ping
Если всё ок, получим
pong
Пример playbook’а: установка Nginx и настройка firewall
Создаём файл
setup.yml
- hosts: vps become: true tasks: - name: Установка Nginx apt: name: nginx state: present update_cache: yes - name: Запуск и включение Nginx service: name: nginx state: started enabled: true - name: Разрешить HTTP в ufw ufw: rule: allow name: 'Nginx Full'
Запускаем:
ansible-playbook -i hosts.ini setup.yml
Через пару минут у вас готов сервер с веб-сервером и открытым портом 80.
Советы для продвинутой автоматизации
- Используйте роли. Если проектов много — разбейте на роли (,
nginx
,users
).firewall
- Храните переменные отдельно. Например, пути, пароли, версии.
- Добавьте handlers. Чтобы Nginx перезапускался только при изменении конфига.
- Документируйте. Даже если playbook простой, добавляйте к каждому шагу.
name:
- Git + Ansible = ❤. Храните конфигурации в git и используйте тегирование.
Пример из практики: настройка VPS за 5 минут
Недавно мне нужно было настроить VPS под небольшой Django-проект. Я просто взяла свой старый playbook с установкой Python, Nginx, UFW и PostgreSQL, поменяла IP — и всё. Через 5 минут сервер был готов, с развернутым приложением. Без копипасты, без ssh, без ошибок.
Поэтому, Ansible — это незаменимый инструмент, если вы хотите упростить себе жизнь при работе с VPS. Он особенно полезен, если вы часто разворачиваете окружения, работаете с несколькими серверами или просто не хотите всё делать вручную. Один раз настроили — и потом только запускаете скрипт.