Ansible для Ubuntu 24.04

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

file

Ansible — это система управления конфигурациями, написанная на Python. Она позволяет автоматизировать настройку и развертывание программного обеспечения на VPS и выделенных серверах. С помощью Ansible можно управлять приложениями, конфигурациями и инфраструктурой без необходимости вручную выполнять действия на каждом хосте.

Ansible — инструмент с открытым исходным кодом, используемый для управления программным обеспечением, конфигурациями и развертыванием приложений на множестве хостов.

Установка

Сначала обновите индекс пакетов:

sudo apt update

Установите пакет software-properties-common, который упрощает управление сторонними репозиториями:

sudo apt install software-properties-common

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

sudo apt-add-repository ppa:ansible/ansible

Для подтверждения нажмите Enter.

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

sudo apt update
sudo apt install ansible

После этого на сервере будет установлено необходимое программное обеспечение для администрирования ваших хостов.


Настройка доступа к хостам по SSH

Создайте SSH-ключ для подключения к хостам:

ssh-keygen -t rsa -b 4096

Отобразите открытый ключ SSH на сервере Ansible:

cat ~/.ssh/id_rsa.pub

Пример вывода:

root@kvmde67:~# ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Zvr1I9IfDK3wCK9K5h5KtWBtC0R2ppUtgQOB/fikhNE root@kvmde67.fornex.org
The key's randomart image is:
+---[RSA 4096]----+
|+=o.=+           |
|ooE=o .          |
| oo+ .           |
|..o.o      .     |
| .+++ . S . .    |
| ..=.o * + +     |
|  . * . o.+ o    |
| . = . o..o...   |
|  ..+.. .. oo.   |
+----[SHA256]-----+
root@kvmde67:~# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQClTC6YhDZdHhiTj2UjDdOv5gpJufT0YKF6tnE1YwIFRrROBH8+hG7hyNlRtc7c5NGTp7fXXoVhnFRFe+thN/4ZDJ/1A44Pe91NldOBVovMlulk9RsRQqvLX8sZXLzY17i+2DINVF3aoOh6o3QEHrk3Axh+qz5DUYvJ70wM6GM40szUBf0wpA1GwoUaOmT4oZVDN6xRT05k++DGcik/EgwWy8hWK8hW8fmg5kXiWSvslLM8i/URaFFtTiFrna1NB75Rbl9brMLc3xMwUzqXRnohRBGbP/M7Js7HoaiS3yHqxIeo2JPVfdmxwpdCB2y14FTG0GU7gTeEOg6BUYNsSlU6IKv593RIGZ9hyPGnDiTZd3jgaOdOoYTKiHWj23zlrqqwSWbNQ== root@kvmde67.fornex.org

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

ssh-copy-id user_name@ip-address

Пример:

ssh-copy-id root@5.187.2.32

Откройте файл конфигурации Ansible:

sudo nano /etc/ansible/hosts

Определите группу [group_name] с серверами:

[group_name] 
server1 ansible_host=your_server_ip_1
server2 ansible_host=your_server_ip_2

[group_name:vars]
ansible_python_interpreter=/usr/bin/python3

Примечание

Замените IP-адреса на реальные IP ваших хостов.

Примечание

Подгруппа [group_name:vars] задаёт параметр ansible_python_interpreter для всех хостов группы, чтобы использовать Python 3 (/usr/bin/python3) вместо Python 2.7 (/usr/bin/python).

Пример:

[servers]
server1 ansible_host=5.187.2.32
server2 ansible_host=5.187.5.236

[servers:vars]
ansible_python_interpreter=/usr/bin/python3

Сохраните изменения и закройте файл (CTRL + X, Y, Enter).

Внимание

На каждом хосте должен быть установлен 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

Укажите имя пользователя для подключения:

---
ansible_user: user_name

Сохраните изменения.

Примечание

Можно настроить отдельные хосты, создав файлы с их псевдонимами в каталоге /etc/ansible/host_vars.

Для проверки подключения выполните команду ping:

ansible -m ping all

Пример результата:

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

file

Нужна помощь?Наши инженеры бесплатно помогут с любым вопросом за считанные минутыНаписать нам