Встановлення

Ansible - це потужний інструмент для автоматизації конфігурацій та управління інфраструктурою. Він дозволяє швидко та ефективно налаштовувати сервери, розгортати програмне забезпечення та здійснювати інші адміністративні завдання.

Для встановлення Ansible вам необхідно мати встановлену операційну систему на основі Linux (наприклад, Ubuntu) або MacOS. Також можливо встановити Ansible на Windows через WSL (Windows Subsystem for Linux).

Встановлення

  1. Встановіть Ansible через офіційний репозиторій:
     sudo apt update
     sudo apt install ansible
    
  2. Перевірте версію Ansible, щоб упевнитися в правильності встановлення:
     ansible --version
    

Архітектура

Components

Ansible використовує просту архітектуру без додаткових агентів чи серверів. Основні компоненти Ansible:

  • Control Node: Комп'ютер, на якому встановлено Ansible і з якого виконуються всі керуючі команди.
  • Managed Nodes: Сервери або пристрої, якими управляє Ansible.
  • Inventory: Файл, який містить список всіх Managed Nodes.
  • Playbook: YAML файл, який визначає набір завдань для виконання на Managed Nodes.

Демонстраційний проект

Створення першого Inventory файлу

Inventory файл визначає ваші Managed Nodes. За замовчуванням, Ansible шукає файл hosts в директорії /etc/ansible. Для нашого прикладу, ми створимо власний Inventory файл.

  1. Створіть новий файл hosts.ini:

     nano hosts.ini
    
  2. Додайте до нього наступні рядки з інформацією про ваш сервер:

     [webservers]
     server1 ansible_host=34.44.108.94 ansible_user=devops ansible_ssh_private_key_file=../terraform/id_rsa
    

Виконання базових команд

Після налаштування Inventory файлу можна почати виконання команд на ваших Managed Nodes. Для початку переконаємось, що Ansible може підключитися до наших серверів.

  1. Виконайте команду ping для перевірки підключення до Hosted Nodes:
     gitpod /workspace/deployment/ansible (main) $ ansible all -i hosts.ini -m ping
     server1 | SUCCESS => {
         "ansible_facts": {
             "discovered_interpreter_python": "/usr/bin/python3"
         },
         "changed": false,
         "ping": "pong"
     }
    

Ця команда виконує модуль ping на всіх серверах, зазначених у hosts.ini.

Створення простого Playbook

Playbook – це YAML файл, який визначає набір завдань для виконання на ваших серверах.

  1. Створіть новий файл site.yml:

     nano site.yml
    
  2. Додайте до нього наступні рядки:

     - name: Установити та налаштувати NGINX  # Назва Playbook
       hosts: webservers  # Група серверів, на яких будуть виконуватися завдання
       tasks:  # Список завдань
         - name: Встановити NGINX  # Назва завдання
           apt:  # Модуль apt для керування пакетами
             name: nginx  # Назва пакету
             state: present  # Стан пакету (присутній)
           become: true  # Виконати завдання з привілеями (sudo)
    
         - name: Запустити та активувати NGINX  # Назва завдання
           systemd:  # Модуль systemd для керування службами
             name: nginx  # Назва служби
             state: started  # Стан служби (запущена)
             enabled: true  # Служба включена при старті системи
           become: true  # Виконати завдання з привілеями (sudo)
    

    Цей Playbook встановлює та запускає NGINX на серверах з групи webservers.

Виконайте цей Playbook:

gitpod /workspace/deployment/ansible (main) $ ansible-playbook -i hosts.ini site.yml

PLAY [Установити та налаштувати NGINX] *********************************************************************************************************************************************************************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************************************************************************************************************************************************************************************************
ok: [server1]

TASK [Встановити NGINX] ************************************************************************************************************************************************************************************************************************************************************************************
changed: [server1]

TASK [Запустити та активувати NGINX] ***********************************************************************************************************************************************************************************************************************************************************************
ok: [server1]

PLAY RECAP *************************************************************************************************************************************************************************************************************************************************************************************************
server1                    : ok=3    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Ця команда використовує файл hosts.ini для визначення цільових серверів та виконує Playbook, встановлюючи та налаштовуючи NGINX на серверах зазначених в групі webservers.

Висновок

У цьому розділі ми вивчили основи встановлення та використання Ansible для автоматизації конфігурацій та управління інфраструктурою. Ми дізналися, як встановити Ansible на операційні системи Linux, MacOS та Windows. Також ми ознайомилися з основними концепціями Ansible, такими як Control Node, Managed Nodes, Inventory та Playbook.

Завдяки Ansible ми можемо швидко та ефективно налаштовувати сервери, розгортати програмне забезпечення та здійснювати інші адміністративні завдання. Використовуючи Inventory та Playbook, ми можемо автоматизувати виконання різних завдань на кількох серверах одночасно.

Цей розділ надав нам необхідні знання та навички для подальшого розширення нашої автоматизаційної інфраструктури та підвищення ефективності нашої роботи.

results matching ""

    No results matching ""