Предварительные требования
Для данного руководства требуется следующее:
* Один узел управления Ansible: узел управления Ansible — это система, которую мы будем использовать для подключения к хостам Ansible через SSH и управления этими хостами. В качестве узла управления Ansible может выступать локальный компьютер или специально выделенный для Ansible сервер.
* Один или несколько хостов Ansible: хост Ansible — это любой компьютер, для автоматизации которого настроен узел управления Ansible.
Убедитесь, что каждый хост Ansible соответствует следующим требованиям:
* Открытый ключ SSH узла управления Ansible добавлен в файл authorized_keys пользователя системы. Это может быть пользователь root или обычный пользователь с привилегиями sudo.
Step 1 — Установка Ansible
$ sudo apt update
$ sudo apt install ansible
Step 2 — Настройка файла инвентаризации
В следующем примере определяется группа [servers] с тремя разными серверами, каждый из которых имеет собственный индентификатор: server1, server2 и server3. Обязательно замените выделенные IP-адреса IP-адресами ваших хостов Ansible.
$ sudo vim /etc/ansible/hosts
[servers]
server1 ansible_host=192.168.1.10
server2 ansible_host=192.168.1.11
server3 ansible_host=192.168.1.12
[all:vars]
ansible_python_interpreter=/usr/bin/python3
Если вы захотите проверить файл инвентаризации, то вы можете запустить команду:
$ ansible-inventory --list -y
Результат будет выглядеть примерно так, только в нем будет показана ваша серверная инфраструктура, определенная в файле инвентаризации:
Output
all:
children:
servers:
hosts:
server1:
ansible_host: 192.168.1.10
ansible_python_interpreter: /usr/bin/python3
server2:
ansible_host: 192.168.1.11
ansible_python_interpreter: /usr/bin/python3
server3:
ansible_host: 192.168.1.12
ansible_python_interpreter: /usr/bin/python3
ungrouped: {}
Step 3 — Тестирование подключения
После настройки файла инвентаризации для вашего сервера, вы можете проверить способность Ansible подключаться к этим серверам и запускать команды через SSH.
Запустите на локальном компьютере или узле управления Ansible следующую команду:
$ ansible all -m ping -u <user_name>
Результаты должны выглядеть примерно следующим образом:
Output
server1 | SUCCESS => {
"changed": false,
"ping": "pong"
}
server2 | SUCCESS => {
"changed": false,
"ping": "pong"
}
server3 | SUCCESS => {
"changed": false,
"ping": "pong"
}
Step 4 — Запуск ситуативных команд (опционально)
Например, вы можете проверить время uptime каждого хоста в группе servers с помощью следующей команды:
$ ansible servers -a "uptime" -u <user_name>
Можно указать несколько хостов, разделив их имена двоеточиями:
$ ansible server1:server2 -m ping -u <user_name>