Ansible  •  5 мая 2025 • 10 мин чтения

Как установить Ansible на Ubuntu

Ansible — незаменимый помощник для тех, кто автоматизирует серверы и предпочитает настраивать инфраструктуру без лишней рутины. Его выбирают DevOps-инженеры, системные администраторы и разработчики, которым важна стабильность, скорость и контроль над множеством машин. У Ansible простой синтаксис, высокая скорость внедрения и никаких агентов — только SSH.

Если вы ещё не работали с этим инструментом, сейчас — лучшее время начать. За 4 недели можно получить ключевые знания и навыки по работе с Ansible. Узнать принципы и подходы к Infrastructure as Code (IaC). Начать курс можно бесплатно взяв демо-доступ.

В этой статье вы получите пошаговую инструкцию, как установить Ansible на Ubuntu, разработанную на базе Linux: от подготовки системы до первого рабочего playbook. Всё — наглядно, без перегрузки терминами и с примерами.

Установка Ansible

Убедитесь, что ваша система обновлена и готова к установке новых пакетов, до того, как установить Ansible на Ubuntu. Рабочая версия Ubuntu — от 20.04 и выше.

Подготовка системы

Обновляем список пакетов и саму систему:

sudo apt update && sudo apt upgrade -y

Устанавливаем нужные утилиты:

sudo apt install software-properties-common -y

Установка через APT

Самый простой способ — установка через официальный пакетный менеджер Ubuntu:

sudo apt-add-repository --yes --update ppa:ansible/ansible
sudo apt install ansible -y

Проверка версии:

ansible --version

Этот способ подходит для запуска стабильной версии Ansible с минимальными усилиями.

Установка через pip

Если вы работаете в изолированной среде или хотите контролировать версию, поставьте Ansible через pip:

sudo apt install python3-pip -y
pip3 install --user ansible

Данный способ не устанавливает зависимости, такие как paramiko, jinja2 и другие, если их нет в системе. Лучше использовать pip3 install --user «ansible[standard]»‎ или ansible-core + ansible отдельно, особенно в продакшене.

Возможно, потребуется добавить путь к бинарным файлам pip в переменную среды PATH. Для этого откройте файл ~/.bashrc или ~/.zshrc и добавьте строку:

export PATH=$PATH:~/.local/bin

После чего выполните:

source ~/.bashrc

Проверка установки

Убедитесь, что установка прошла корректно. Введите:

ansible --version

В выводе должна отобразиться информация о версии и путях к установленным компонентам.

На этом установка завершена. Дальше — как другим машинам подключиться к Ansible по SSH.
Приглашаем в наше телеграм-сообщество, где делимся лучшими статьями с Хабра по рекомендациям и практикам работы с Ansible.
Все полезные материалы по Ansible в одном месте

Настройка SSH для Ansible

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

Генерация SSH-ключей

Если у вас ещё нет SSH-ключей — создайте их. На локальной машине выполните:

ssh-keygen -t rsa -b 4096 -C «your_email@example.com»

Нажимайте Enter при каждом запросе — по умолчанию ключи сохранятся в ~/.ssh/id_rsa и ~/.ssh/id_rsa.pub.

Установка ключей на удалённые машины

Скопируйте публичный ключ на удалённый сервер. Самый удобный способ — с помощью команды ssh-copy-id:

ssh-copy-id user@remote-server-ip

После этого Ansible сможет подключаться к серверу без запроса пароля.

Альтернатива — вручную вставить содержимое id_rsa.pub в файл ~/.ssh/authorized_keys на сервере.

Важно проверить права владельца на ~/.ssh и authorized_keys:

chown -R user:user ~/.ssh

Проверьте права на этот файл:

chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

Проверка подключения

Тестируем SSH-доступ:

ssh user@remote-server-ip

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

Для явного указания пути к ключу (если используется нестандартный), можно настроить ansible.cfg или передавать флаг --private-key при запуске.

Готово! Теперь можно подключать хосты через inventory и запускать команды удалённо.

Инвентарь Ansible

Inventory — список машин, к которым Ansible будет подключаться. Без него Ansible не знает, с какими серверами работать. Inventory может быть в формате INI, YAML или динамическим (например, с AWS или Docker).

Что такое inventory

В simplest-режиме это обычный текстовый файл с IP-адресами или доменными именами. Ansible читает его, чтобы понять, куда отправлять команды.
По умолчанию Ansible ищет файл hosts в /etc/ansible/hosts, но можно указать свой путь через флаг -i.

Примеры INI и YAML

Формат INI:

[web]
192.168.1.10
192.168.1.11

[db]
192.168.1.20 ansible_user=root

В этом примере две группы: web и db. Можно задавать пользователя, порты, пути к SSH-ключам и другие параметры прямо в строке.

Формат YAML (с ansible-inventory plugin):

all:
children:
web:
hosts:
192.168.1.10:
192.168.1.11:
db:
hosts:
192.168.1.20:
ansible_user: root

Формат YAML более структурирован, особенно удобен при сложных конфигурациях.

Создание простого inventory-файла

Для начала создайте файл hosts.ini рядом со своими playbook’ами:

[servers]
192.168.56.101 ansible_user=ubuntu ansible_ssh_private_key_file=~/.ssh/id_rsa

Теперь вы можете использовать этот файл при запуске:

ansible all -i hosts.ini -m ping

Если получите в ответ pong — соединение с сервером установлено. Всё работает!

На следующем шаге создадим свой первый playbook и протестируем конфигурацию.

Получите ключевые знания и навыки по Ansible!
Дарим демодоступ к обучению на 3 дня, чтобы вы познакомились с материалами и спикерами курса.

Тестовый запуск Ansible

Когда inventory готов и подключение по SSH настроено — можно переходить к автоматизации. Начнем с базового playbook, который создаст тестовый файл на удалённой машине.

Пример простого playbook

Создайте файл test-playbook.yml со следующим содержанием:

- name: Тестовый запуск Ansible
hosts: all
become: true
tasks:
- name: Создать файл test.txt
file:
path: /tmp/test.txt
state: touch

Этот playbook обращается ко всем хостам из inventory, получает права root и создаёт пустой файл /tmp/test.txt.

Команда для запуска

Чтобы запустить playbook, используйте:

ansible-playbook -i hosts.ini test-playbook.yml

Если всё настроено правильно — увидите подробный вывод со статусами задач. Ansible укажет, что файл был создан или уже существовал.

Разбор результата

Ansible использует цветовую кодировку:

  • green (ok) — задача уже выполнена, изменений не было.
  • yellow (changed) — задача что-то изменила на сервере.
  • red (failed) — возникла ошибка.

После запуска можно подключиться к серверу и проверить наличие файла:

ssh user@192.168.56.101
ls -l /tmp/test.txt

Если файл есть — вы всё сделали правильно. Поздравляем! Вы только что автоматизировали первую задачу с помощью Ansible.

Теперь пора закрепить знания и перейти на новый уровень — через практику.

Заключение

Теперь вы знаете, как установить Ansible на Ubuntu, настроить подключение по SSH и выполнить первый запуск. Давайте кратко повторим шаги:

  1. Обновили систему и установили Ansible через APT или pip.
  2. Сгенерировали SSH-ключи и настроили подключение к удалённым серверам.
  3. Создали inventory-файл для управления хостами.
  4. Запустили тестовый playbook и проверили результат.

Это была базовая, но полноценная автоматизация — и первый шаг в сторону профессионального DevOps.

Хотите больше? Прокачайте Linux и сетевое администрирование на курсах от Slurm:


Каждый курс — это практика, поддержка, реальные кейсы и уверенность в своих действиях. Начните обучение и управляйте инфраструктурой как профи.

Статью подготовили

Редакция Слёрма
Понравилась статья? Будем рады вашему лайку и репосту — вдруг кому-то тоже пригодится:)
Оцените статью

Читайте также: