# Установка и настройка Ansible на VPS под управлением Ubuntu
Ansible — универсальный инструмент для удалённого управления сервером. Он позволяет выполнять на удалённом сервере не только отдельные команды, но и целые последовательности действий, записанные в плейбук.
В этой инструкции мы рассмотрим установку Ansible на VPS под управлением Ubuntu и подключение к одному из удалённых серверов.
Для начала работы нам понадобится только предварительно настроенный сервер с Ubuntu.
# Установка Ansible
Устанавливается Ansible с помощью стандартного менеджера apt:
sudo apt update
sudo apt install ansible
Сам процесс установки происходит автоматически и не должен вызывать проблем или ошибок в работе.
После установки Ansible установим дополнительный пакет, который поможет подключаться к хостам по SSH:
sudo apt install sshpass
# Настройка Ansible
Основной управляющей частью Ansible является файл содержания, в котором хранится информация обо всех хостах, которыми можно управлять при помощи Ansible. Откроем его, чтобы подключить к Ansible несколько внешних хостов.
sudo vim /etc/ansible/hosts
В открывшемся текстовом файле будут закомментированы все строки. В этих строках представлены примеры оформления блоков для работы с хостами. Их можно использовать в качестве референсов для дальнейшей работы с файлом.
Добавим в этот файл один из наших серверов, чтобы протестировать работу Ansible. Для этого добавим в конец файла текстовый блок:
[servers]
server1 ansible_host=123.456.123.456
Здесь мы добавили один хост с IP-адресом 123,456,123,456. Чтобы проверить правильность указания и посмотреть весь список хостов с указанными адресами, можно выполнить следующую команду:
ansible-inventory --list -y
Результат выдачи в нашем случае будет следующим:
#Output
all:
children:
servers:
hosts:
server2:
ansible_connection: ssh
ansible_host: 123.456.123.456
Теперь добавим ещё один блок в файл с содержимым. Этот блок будет отвечать за подключение к хостам по SSH. Его нужно добавить после блока [servers]:
[all:vars]
ansible_connection=ssh
ansible_user=user
ansible_ssh_pass=password
Здесь в строке ansible_user мы указываем пользователя, от чьего имени подключаемся к серверу, а в строке ansible_ssh_pass — пароль этого пользователя.
После этого можно произвести стандартную проверку — запустить пинг всех серверов, указанных в блоке [servers]:
ansible all -m ping -u user
Если всё правильно и доступ по SSH разрешён, то вывод в нашем случае будет следующим:
#Output
server1 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
Это блок, указывающий на состояние сервера и на состояние связи с ним. Строка ”ping” : “pong” означает, что связь установлена, и сервер готов к удалённому выполнению команд или запуску плейбука.
Попробуем выполнить несколько простых команд на сервере:
ansible all -a "df -h" -u user
Эта команда выведет доступное дисковое пространство на всех подключённых к Ansible хостах:
#Ouput
server1 | CHANGED | rc=0 >>
Filesystem Size Used Avail Use% Mounted on
/dev/ploop21245p1 59G 3.2G 54G 6% /
none 4.0G 0 4.0G 0% /sys/fs/cgroup
none 4.0G 0 4.0G 0% /dev
tmpfs 4.0G 0 4.0G 0% /dev/shm
tmpfs 820M 344K 819M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
none 4.0G 0 4.0G 0% /run/shm
tmpfs 820M 0 820M 0% /run/user/1000
А следующая команда выведет в консоль аптайм серверов:
ansible servers -a "uptime" -u user
Готово — мы установили и настроили Ansible, приложение для удалённого управления серверами. В следующей инструкции рассмотрим работу плейбуков в Ansible.