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

12 set 2022 3 min di lettura
Как установить и настроить Ansible на Ubuntu 18.04
Indice dei contenuti

Введение

Ansible — это система управления, позволяющая упростить управление большим количеством серверов одновременно. Этот инструмент позволяет автоматически управлять многими различными системами из одного центрального места.

В этом руководстве мы увидим, как установить и настроить Ansible в Ubuntu 18.04 LTS.

С помощью Ansible вы можете одновременно подключаться через SSH к нескольким удаленным серверам и выполнять все операции, обычно используемые для управления сервером. Любой сервер, которым вы можете управлять через SSH, вы также можете администрировать через Ansible.

Предпосылки

Прежде чем приступить к работе с этим руководством, у вас должно быть:

Пользователь без полномочий root с установленными на вашем сервере привилегиями sudo. Следуйте этому руководству: Первоначальная настройка в Ubuntu 18.04 LTS.

Ключи SSH, сгенерированные для пользователя без полномочий root на вашем сервере Ansible. Выполните первый шаг этого руководства: Как настроить ключи SSH в Ubuntu 18.04.

Два или более серверов Ubuntu 18.04. Один из них будет использоваться как сервер Ansible, а остальные — как хост Ansible. У каждого должен быть пользователь без полномочий root с привилегиями sudo и настроенным базовым брандмауэром.

Установить Ansible

Установите Ansible на компьютер, который вы будете использовать для подключения к своим серверам.

Обновите список пакетов Ubuntu из терминала:

sudo apt update

Установите следующий пакет, чтобы упростить настройку некоторых программ:

sudo apt install software-properties-common

Добавьте репозиторий Ansible:

sudo apt-add-repository ppa:ansible/ansible

Нажмите ENTER при появлении запроса.

Снова обновите список пакетов (в Ubuntu 18.04 они уже должны были обновиться):

sudo apt update

Установите Ansible:

sudo apt install ansible

Настроить SSH-доступ

На сервере Ansible (обычно это локальный компьютер) используйте команду cat, чтобы распечатать содержимое файла открытого ключа SSH пользователя:

cat ~/.ssh/id_rsa.pub

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

ssh utente@indirizzo_ip

После подключения к серверу создайте каталог ~/.ssh, эта команда создаст каталог, если это необходимо, или ничего не сделает, если он уже существует:

mkdir -p ~/.ssh

Выполните следующую команду, заменив public_key выходным сообщением, полученным от приведенной выше команды cat ~/.ssh/id_rsa.pub:

echo chiave_pubblica >> ~/.ssh/authorized_keys

ПРИМЕР (не используйте этот открытый ключ):

echo AAAAB3NzaC1yc2EAAAADAQABAAABAQDdTV41d4YIf0EqISOryVM4zF2Ucv8ekGtOg6t3RjSJqKfW/XS6n7bzI5yZd3QlvI0M8P+xdUnKxIQpDSkBJaySOmVq1QmmE74iRFvWygsqB3jlEyagnH8h3SKjh5FLTxxUZQxwU351BRCUSxoqLdA30KgrXKOWM/C9lm7dx3DsucV/iGdsv8m2ojwdwwRUFTfWo4PsjJOZ8XX+JciqdTVIbKnPklsosu+8+WvVKiuZYqaq4EMmQXX/wHXAo77FqWg+czDFwexYkFSIC6Lt5p3eS0RVNp4HyU36MmXvHsfIXhkaAJp5Myxd6FdFLcM/5zm52SqAZDnMwIXDr71aArId user@nome >> ~/.ssh/authorized_keys

Обновите индекс пакета сервера:

sudo apt update

Установите Python, необходимый для связи с Ansible:

sudo apt install python

Закройте соединение с сервером, которым вы хотите управлять через Ansible:

exit

Повторите эти шаги для каждого сервера, которым вы хотите управлять с помощью Ansible со своего компьютера.

Настроить Ansible

Откройте файл hosts для настройки Ansible с вашего основного компьютера, чтобы он мог подключаться к ранее настроенным серверам:

sudo nano /etc/ansible/hosts

Задайте имя группы, псевдоним и IP-адрес сервера. Имя группы и псевдоним не имеют ограничений, вы можете ввести все, что предпочитаете.

В этом примере мы вставляем два сервера, которыми мы будем управлять с помощью Ansible.


[primo_gruppo]
 Primo ansible_ssh_host=ip_primo
 Secondo ansible_ssh_host=ip_secondo

Эти два сервера доступны из Ansible по SSH. Пароль не требуется, если открытый ключ был установлен правильно.

Если вы вошли в систему как пользователь без полномочий root и попытаетесь подключиться к своим серверам с помощью Ansible сейчас, вы получите сообщение об ошибке, так как ключ SSH встроен для пользователя root в удаленных системах, а Ansible по умолчанию попытается подключиться как текущий пользователь, т.е. с пользователем, с которым вы связаны.

На вашем компьютере, на котором у вас установлен Ansible, вы используете пользователя с именем, например, «XXX». Ansible попытается подключиться к каждому серверу с помощью ssh XXX @ip_address. Эта команда не сработает, если на сервере, к которому вы пытаетесь подключиться, нет пользователя с таким именем, в нашем случае «XXX».

Чтобы решить эту проблему, мы можем создать файл для каждой группы, который указывает всем серверам в одной группе подключаться как root.

Создайте папку для групп:

sudo mkdir /etc/ansible/miei_gruppi

Создайте файл для первой группы:

sudo nano /etc/ansible/miei_gruppi/primo_gruppo

Файлы YAML начинаются с ---, поэтому убедитесь, что вы вводите эти символы правильно.

Вставьте следующие строки:


---
 ansible_ssh_user: root

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

Используйте Ansible

Теперь вы можете использовать Ansible, базовая настройка выполнена.

Несколько примеров использования Ansible.

Пропингуйте все настроенные серверы, набрав:

ansible -m ping all

Вы должны получить выходное сообщение, подобное следующему:


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

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

Параметр -m означает «модуль», поэтому в данном случае команда запросила модуль «ping». Параметр all позволяет выбрать все серверы и группы одновременно.

Чтобы указать только одну группу:

ansible -m ping primo_gruppo

Или указать один сервер:

ansible -m ping Primo

Чтобы указать несколько серверов:

ansible -m ping Primo:Secondo

В качестве второго примера использования Ansible мы можем увидеть дисковое пространство на наших серверах:

ansible -m shell -a 'df -h' Primo:Secondo

Установка и настройка Ansible на Ubuntu 18.04 LTS завершена.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.