17.06.2020

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

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

Что такое Ansible?

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

Установка

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

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"
}