Автоматизация настройки VPS с Ansible

ГлавнаяАвтоматизация настройки VPS с Ansible

Содержание

Когда я только начала работать с 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.


Советы для продвинутой автоматизации

  1. Используйте роли. Если проектов много — разбейте на роли (
    nginx
    ,
    users
    ,
    firewall
    ).
  2. Храните переменные отдельно. Например, пути, пароли, версии.
  3. Добавьте handlers. Чтобы Nginx перезапускался только при изменении конфига.
  4. Документируйте. Даже если playbook простой, добавляйте
    name:
    к каждому шагу.
  5. Git + Ansible = ❤. Храните конфигурации в git и используйте тегирование.

Пример из практики: настройка VPS за 5 минут

Недавно мне нужно было настроить VPS под небольшой Django-проект. Я просто взяла свой старый playbook с установкой Python, Nginx, UFW и PostgreSQL, поменяла IP — и всё. Через 5 минут сервер был готов, с развернутым приложением. Без копипасты, без ssh, без ошибок.

Поэтому, Ansible — это незаменимый инструмент, если вы хотите упростить себе жизнь при работе с VPS. Он особенно полезен, если вы часто разворачиваете окружения, работаете с несколькими серверами или просто не хотите всё делать вручную. Один раз настроили — и потом только запускаете скрипт.