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

АМ
Александр Мельников
26 сентября 2019

Инструкция по установке Ansible на виртуальный сервер под управлением Ubuntu 18.04.

Что такое Ansible?

Ansible это один из главных трендов автоматизации технологических процессов и производств с помощью программных средств. Это инструмент с открытым исходным кодом для управления программным обеспечением, конфигурацией и развертыванием приложений на множестве хостов. Ansible довольно просто использовать, но при этом он достаточно мощный, чтобы автоматизировать сложные многоуровневые среды ИТ-приложений.

Установка и настройка Ansible на Ubuntu

Установка

Обновите локальную базу пакетов:

sudo apt update

Для начала установите пакет software-properties-common, который позволяет легко управлять дистрибутивами и источниками программного обеспечения от независимых поставщиков:

sudo apt install software-properties-common

С помощью этого инструмента можно управлять персональными архивами пакетов (PPA), которые позволяют распространять собственные пакеты и утилиты без лишних сложностей.

Затем добавьте репозиторий Ansible PPA с помощью следующей команды:

sudo apt-add-repository ppa:ansible/ansible

В процессе присоединения потребуется нажать клавишу Enter.

Еще раз обновите базу пакетов и выполните установку Ansible:

sudo apt update sudo apt install ansible

Теперь на виртуальном сервере установлено программное обеспечение Ansible, необходимое для администрирования ваших хостов.

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

Ansible в основном связывается с клиентскими компьютерами через SSH.

В нашей инструкции рассмотрено использование SSH-ключей, т.к. этот способ помогает упростить процесс подключения и является более безопасным, чем использование паролей.

Подробнее о том, что такое SSH-ключи и как с ними работать, можно прочитать в нашей инструкции.

С помощью следующей команды создайте SSH-ключ, который будет использоваться для подключения к хостам:

ssh-keygen -t rsa -b 4096

Скопируйте сгенерированный ключ на каждый хост, который будет обслуживаться Ansible:

ssh-copy-id user_name@ip-address

Например: ssh-copy-id root@123.122.123.122

С помощью текстового редактора откройте следующий файл конфигурации:

vi /etc/ansible/hosts

Используя следующий синтаксис, где group_name — удобное название группы серверов, а your_server_ip_1 и your_server_ip_2 — IP-адреса обслуживаемых серверов, добавьте строки в открытый файл hosts:

[group_name]
your_server_ip_1
your_server_ip_2

Например:

[servers_ubuntu]
123.122.123.122
46.122.123.20

Сохраните изменения и закройте файл.

Важно: на каждом хосте должен быть установлен язык python и пакет python-apt:

apt-get install python python-apt

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

По умолчанию Ansible выполняет подключение к удаленному хосту от имени пользователя root, если вы используете другого пользователя, то необходимо выполнить дополнительные настройки. Создайте каталог в структуре конфигурации, в котором будут находиться файлы в формате YAML для каждой группы:

sudo mkdir /etc/ansible/group_vars

Создайте подкаталог с названием вашей группы:

sudo nano /etc/ansible/group_vars/group_name

Например:

sudo nano /etc/ansible/group_vars/servers_ubuntu

Вставьте следующую строку, вместо user_name указав имя вашего пользователя:

---
ansible_user: user_name

Сохраните изменения.

Примечание: отдельные хосты можно настроить, создав алиасы и файлы с именами в соответствии с их псевдонимом в каталоге /etc/ansible/host_vars

Для проверки подключения выполните команду ping:

ansible -m ping all

Ожидаемый результат:

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

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

 

Остались вопросы? Задайте их нашему эксперту и получите квалифицированную помощь