Установка Ansible на Ubuntu 24.04

Полное руководство по установке и базовой настройке Ansible.

file

Ansible — это инструмент для автоматизации задач администрирования серверов. Он позволяет управлять конфигурацией, развертывать приложения и выполнять команды на множестве хостов одновременно без агентов на удалённых машинах. Всё управление происходит через SSH с управляющего сервера (control node).

Ansible особенно удобен на VPS и выделенных серверах для автоматизации рутинных задач.

Установка Ansible

Ubuntu 24.04 имеет актуальную версию Ansible в официальных репозиториях — это наиболее простой и рекомендуемый способ.

  1. Обновите список пакетов:
   sudo apt update
   sudo apt upgrade -y
  1. Установите Ansible:
sudo apt install ansible -y
  1. Проверьте версию:
ansible --version

Пример вывода:

ansible [core 2.16.10]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3/dist-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible
python version = 3.12.3 (main, Nov  6 2024, 20:26:53) [GCC 13.2.0]
jinja version = 3.1.2
libyaml = True

Настройка доступа к хостам по SSH

Ansible работает по SSH, поэтому нужен беспарольный доступ с управляющего сервера на все целевые хосты.

  1. Сгенерируйте SSH-ключ (если ещё нет):
ssh-keygen -t ed25519 -C "ansible@your-server"
# или rsa, если ed25519 не поддерживается:
ssh-keygen -t rsa -b 4096 -C "ansible@your-server"

Нажмите Enter для всех вопросов (без пароля на ключ). 2. Скопируйте публичный ключ на каждый управляемый хост:

ssh-copy-id root@IP_ХОСТА

или для другого пользователя:

ssh-copy-id user@IP_ХОСТА

Введите пароль хоста один раз.

  1. Создайте файл инвентаря (список серверов):
sudo mkdir -p /etc/ansible
sudo nano /etc/ansible/hosts

Пример содержимого:

[webservers]
web1 ansible_host=192.168.1.10 ansible_user=root
web2 ansible_host=192.168.1.11 ansible_user=root

[dbservers]
db1 ansible_host=192.168.1.20 ansible_user=root

[all:vars]
ansible_python_interpreter=/usr/bin/python3
  • [webservers] — группа серверов
  • ansible_host — IP-адрес
  • ansible_user — пользователь для подключения
  • ansible_python_interpreter — указывает на Python 3 (важно для Ubuntu 24.04)

  1. Проверьте подключение:
ansible all -m ping

Успешный результат:

web1 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

file Успешный результат команды ansible ping

Полезные замечания

  • Ansible не требует установки агента на удалённых хостах — только SSH и Python (обычно уже есть в Ubuntu).
  • Рекомендуется использовать SSH-ключи без пароля для автоматизации.
  • Для большей безопасности создайте отдельного пользователя с sudo без пароля и используйте его вместо root.
  • Все конфигурации хранятся в простых YAML-файлах — легко версионировать в Git.

Помощь

Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через систему тикетов — мы обязательно вам поможем!

Обновлено:
Нужна помощь?Наши инженеры бесплатно помогут с любым вопросом за считанные минутыНаписать нам