Автоматизация настройки 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. Он особенно полезен, если вы часто разворачиваете окружения, работаете с несколькими серверами или просто не хотите всё делать вручную. Один раз настроили — и потом только запускаете скрипт.