Питання та відповіді

Встановлення та налаштування Ansible в Linux

Встановлення та налаштування Ansible в Linux

Безглуздий Популярна система управління конфігурацією, яка дозволяє віддалено керувати багатьма серверами. Ansbile використовується для автоматизації налаштування та розгортання програмного забезпечення. Основна перевага Ansible - вона не вимагає встановлення агентів на контрольованих хостах (як шеф -кухар або лялька). Досить встановити сервер Python та SSH на хостів. У цій статті ми розглянемо, як встановити та налаштувати сервер Ansible на Linux та як використовувати Ansible для управління іншими хостами Linux.


Зміст:

Ansible Installation в Linux

Для Ansible вам потрібно встановити на керуванні та контрольованих хостах SSH та Python. Сам Ansible потрібно встановити лише на сервері управління.

OpenSsh -сервер зазвичай встановлюється за замовчуванням у всіх версіях Linux, тому він залишається встановити Python 3+ та Ansible.

Команди для ubuntu/debian:

Встановіть Python:

$ Sudo apt install python3

Перевірте версію:

$ python3 -Вверсія

Python 3.8.10

Встановіть Ansible:

$ Sudo apt Встановіть Ansible

$ Ansible -Вверсія

Ansible 2.дев'ять.6
Установка в Centos, Rocky Linux, Rhel, Oracle:

$ DNF Встановити Epel-Relase
$ Dnf makecache
$ DNF Встановити python3
$ DNF Встановіть Ansible

Починається Ansible Work

Під час встановлення пакету буде створено каталог /etc /ansible за допомогою таких файлів конфігурації:

У файлі/etc/ansible/hosts ви можете створити кілька окремих груп хостів. Наприклад, усі хости з Nginx, з базами Mariadb тощо.D. У цьому прикладі ми створимо одну групу під назвою Servers_all.

$ Sudo nano/etc/ansible/hosts

[Servers_all] srvubunt1 ansible_host = 192.168.Чотирнадцять.144 ansible_user = sysops srvubunt2 ansible_host = 192.168.Чотирнадцять.142 ansible_user = sysops srv-db01 ansible_host = 192.168.Чотирнадцять.151 ansible_user = sysops 

Ви можете вказати хости за допомогою DNS або IP. Ansible_user вказує користувача, який буде використовуватися для підключення SSH.

Ті ж параметри групи хостів можна взяти до розділу з додаванням : VARS, наприклад:

[Сервери] srvubunt1 ansible_host = 192.168.Чотирнадцять.144 srvubunt2 ansible_host = 192.168.Чотирнадцять.142 [servers_all: vars] ansible_port = 22 ansible_user = sysops

Щоб отримати вміст інвентаризації у вигляді дерева, виконайте:

$ Ansible-Inventory-Граф

За замовчуванням SSH використовується для підключення до віддалених хостів. Щоб автоматично взяти відбитки пальців SSH і не вводити так з початковим доступом до хоста, потрібно додати параметр у файл/etc/ansible/ansible.CFG:

"Host_key_checking = false"

Тепер за допомогою вбудованого модуля Пінга Ви можете перевірити з'єднання. Пінг -модуль перевіряє:

Давайте перевіримо наявність усіх хостів у файлі інвентаризації:

$ Ansible all -m ping -ask -pass

Усі господарі доступні.

Для того, щоб Ansible був автентифікований SSH за допомогою пароля, вам потрібно встановити пакет SSHPASS:

$ Sudo apt Установіть sshpass

В іншому випадку при використанні параметра --Запитувати З'явиться помилка:

Щоб отримати тип з'єднання "SSH" з паролями, потрібно встановити програму SSHPASS.

У попередньому прикладі, щоб підключитися до віддалених хостів, потрібно вводити пароль користувача кожного разу. Так що, виконуючи команди та Ansible PLA, пароль не запитується, вам потрібно налаштувати автентифікацію SSH за допомогою клавіш.

Генерувати клавіші RSA на сервері управління:

$ Ssh -keygen -t rsa

Не визначте пароль для захисту ключа SSH.

Тепер вам потрібно скопіювати ключ у кожен вузол за допомогою SSH-Copy-Ine:

$ ssh-copy-isy [email protected].Чотирнадцять.144

Віддалені сервери повинні бути ввімкненими автентифікацією SSH за допомогою клавіш:

# nano/etc/ssh/sshd_config

PubKeyAuthentication Так AuthrizedKeysFile .Ssh/avollized_keys

# Сервіс SSHD перезапуск

Тепер ви можете виконати команду через Ansible, не вводячи пароля. Давайте перевіримо час роботи на всіх серверах у групі серверів_all:

$ Ansible servers_all -a 'puttime'

Ось кілька прикладів інтерактивної ефективності команд для хостів у файлі інвентаризації.

Ми виконаємо інвентаризацію стану господарів. У цьому прикладі нам потрібна лише інформація про оперативну пам’ять на серверах:

$ Ansible -m налаштування -a 'фільтр = ansible_memtotal_mb'

Використовуючи модуль оболонки, перевірте час роботи на всіх хостах:

$ Ansible -m shell -a 'puttime' all

Ansible Playbooks

Ви можете надсилати команди на керовані сервери через консоль (ad-hoc) або за допомогою спеціального файлу Playbook у форматі YAML. У ігровій книзі ви можете описати необхідний стан системи. Ansible при запуску перевірить, чи відповідає конфігурація контрольованого хоста опису в ігровому книзі.

Розглянемо приклад простої ігрової книги, що Midnight Commander (MC) повинен встановити на хостів.

Створіть каталог для ігрових книжок:

$ Sudo mkdir -p/etc/ansible/playbooks

Тепер створіть файл YML:

$ Sudo nano/etc/ansible/playbooks/mc-розгортання.yml

- Хости: Servers_All Stae: Так Стати_метд: Судо Завдання: - Ім'я: Оновлення apt: update_cache = Так - Ім'я: Встановити mc apt: name = mc state = останній 

Якщо контрольовані хости працюють над Centos-як версією Linux, вам потрібно замінити останній рядок yum: name = mc state = останній .

Синтаксис файлів YAML використовує сувору систему відступу, як у Python. Використовуйте пробіли, а не вкладки.

Для виконання ігрової книги про хостів у групі:

$ Ansible-playbook/etc/ansible/playbooks/mc-розгортання.Yml -ask-become-pass

У цьому випадку, щоб виконати APT, вам потрібно ввести пароль, щоб збільшити привілеї за допомогою sudo.

Щоб вимкнути пароль за допомогою sudo в Ubuntu, вам потрібно виконати команду на керованих хостах:

$ echo "sysops all = (all) nopasswd: all" | Sudo tee /etc /sudoers.D/Sysops

Після цього ви можете запустити ігрову книжку без параметра --Запитати .

Результати шоу ігрової книги, на яких серверах він успішно працював.

Як графічна оболонка, ви можете використовувати Ansible Tower (оплачується від Redhat) та Ansible awx (безкоштовно). Використання Ви можете керувати не лише серверами Linux, але й системами Windows (вам знадобиться налаштований WinRM). Особливості управління Windows через Ansible ми розглянемо в наступній статті.

Використовуючи вбудовані можливості 1c Enterprise для усунення різних помилок
У 1С: Підприємство має власні діагностичні інструменти та усунення несправностей, які допоможуть користувачам повернути програму до робочого стану. По...
ABC -UPDATE - Альтернативний менеджер повстання Windows
Незважаючи на всі вдосконалення Центру оновлення Windows, багатьом користувачам все ще недостатньо комфортно. Важко не погодитися з цим твердженням, а...
Driftland Magic Revival - Magic врятує цей світ
Ігровий сюжет, пов'язаний із протистоянням розрізнених кланів, є досить типовим для стратегій у реальному часі, і для того, щоб уникнути докорів у шаб...