Как установить и настроить 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" }