Стоит ли использовать Ansible для автоматизации?
Как бы вы себя чувствовали, если бы все, что вам нужно, – это нажать кнопку, и все ваши системы были бы обновлены, все необходимые пакеты были установлены и готовы к работе? Звучит фантастически, правда?
В современном мире ИТ инженеры DevOps воплощают эту мечту в реальность. Теперь у нас есть такие инструменты, как Ansible, которые делают процессы управления ИТ более управляемыми и быстрыми с помощью нескольких щелчков мышью, сокращая количество ошибок и ручного ввода со стороны человека.
Прочтите, чтобы узнать все, что вам нужно знать об Ansible, включая краткий обзор того, как его использовать.
Что такое Ansible?
Ansible – мощный движок автоматизации с открытым исходным кодом. Он кроссплатформенный, что позволяет разработчикам управлять устройствами из любой операционной системы, включая Windows, macOS и Linux.
Ansible предлагает ряд функций: управление конфигурацией, облачную подготовку для развертывания приложений, обновления системы, автоматизацию безопасности, непрерывную доставку и многое другое. Это легкий инструмент, не требующий для работы дополнительного программного обеспечения или пакетов, что упрощает развертывание.
Основные функции Ansible
Ниже приведены некоторые функции, предлагаемые Ansible в качестве инструмента автоматизации.
Развертывание приложений
Ansible позволяет разработчикам быстро и легко развертывать приложения на серверах. Это избавляет от необходимости писать собственный код или выполнять управление пакетами вручную. Вместо этого вы определяете задачи, необходимые для запуска приложения, и выполняете их удаленно в целевой системе вместо использования Ansible playbook. Вы можете отправить один Playbook на несколько устройств одновременно и запустить приложение на нескольких серверах.
Облачная подготовка
Облачное обеспечение – это метод, использующий установку, настройку и управление ресурсами облачных вычислений.
Ansible позволяет автоматизировать задачи выделения ресурсов облака, включая настройку инфраструктуры, настройку хостов, управление сетевыми интерфейсами, управление брандмауэрами и пользователями на удаленных хостах.
Управление конфигурацией
Управление конфигурацией – еще одна функция Ansible. Используя Ansible playbook или специальные команды, вы можете быстро настроить и запустить свои системы с помощью нескольких команд. Поскольку Ansible использует YAML в качестве языка конфигурации по умолчанию, легко создавать задачи в удобочитаемом формате и выполнять их на удаленных машинах.
Например, если у вас есть только что подготовленный сервер, вы можете использовать Ansible для обновления системы, установки необходимых пакетов и запуска служб на сервере.
Автоматизация безопасности
Ansible полезен в задачах автоматизации безопасности. Например, с помощью нескольких команд Ansible вы можете настроить собственные правила брандмауэра, проверить наличие вредоносных программ, очистить систему с помощью специальных инструментов и многое другое. Это также позволяет вам контролировать состояние вашей системы и быстро выполнять резервное копирование вашей системы в случае сбоя.
Он также использует SSH для аутентификации пользователей и выполнения команд на удаленных хостах, что делает его очень безопасным в использовании.
Ansible Архитектура
Давайте узнаем больше о частях, из которых состоит Ansible Engine.
Запасы
Ansible управляет удаленными хостами с помощью инвентаря. Инвентаризация – это простой текстовый файл, содержащий IP-адреса и имена хостов удаленных машин. Хосты в файле инвентаризации могут быть организованы в различные группы, такие как веб-серверы, базы данных, резервные копии и т. Д. Организация хостов в группы помогает пользователям выполнять команды на определенной группе машин.
Примечание. Перед запуском каких-либо задач вы должны заполнить файл инвентаризации Ansible хотя бы одним хостом.
Учебники
Плейбуки Ansible – это простые текстовые файлы, написанные на YAML (YAML Ain't Markup Language). Они содержат инструкции или команды для выполнения на удаленном хосте для выполнения определенной задачи.
Поскольку плейбуки Ansible написаны на YAML, они представлены в удобочитаемом формате. Это делает его очень простым в использовании и понимании Ansible, поскольку пользователям не нужно осваивать новый синтаксис. Каждая игра содержит по крайней мере одну или несколько задач, выполняемых на всех или определенных хостах.
Связанный:
Модули
Ansible предоставляет пользователям модули. Модули – это команды, которые помогают управлять удаленным хостом из управляющего узла. Эти модули позволяют Ansible управлять пользователями, устанавливать и удалять пакеты, обновлять системы и т. Д. Они выполняются в Playbooks для выполнения определенных задач по мере необходимости. Ansible предоставляет более 4600 модулей. Ознакомьтесь со всеми модулями Ansible.
Плагины
Архитектура Ansible позволяет создавать собственные плагины. Они помогают расширить или улучшить базовую функциональность движка Ansible. Хотя по умолчанию он поставляется с несколькими плагинами, вы также можете создавать собственные плагины в соответствии с вашими потребностями.
API
Ansible расширяет функциональность, предоставляя пользователям различные конечные точки API для отладки, выполнения команд, обратных вызовов и многого другого.
Начало работы с Ansible
Ansible легко и быстро настроить и использовать. В этом разделе будет продемонстрировано, как установить Ansible на хост-машину, настроить удаленные хосты и выполнить базовые задачи автоматизации.
Ansible является кроссплатформенным и поэтому поддерживается основными операционными системами. Для простоты в этом руководстве обсуждается установка Ansible в дистрибутиве Linux на основе Debian. Проверьте процесс установки Ansible для других операционных систем.
Начните с редактирования файла /etc/apt/sources.list
sudo vim /etc/apt/sources.list
Внутри файла добавьте следующие записи:
deb http: // ppa.launchpad.net/ansible/ansible/ubuntu trusty main
Приведенная выше запись добавит Ubuntu PPA в репозитории Debian, что позволит вам установить Ansible.
Затем выполните следующие команды:
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
$ sudo apt update
$ sudo apt install ansible -y
Первая команда добавляет необходимые ключи.
Следующие команды обновляют репозитории программного обеспечения и, наконец, устанавливают Ansible.
Теперь, когда в вашей системе установлен Ansible, продолжайте.
Создание инвентаря
Первым шагом перед выполнением любых задач автоматизации Ansible является настройка файла инвентаризации хоста.
Файл инвентаризации по умолчанию находится в / etc / ansible / hosts . Используя ваш любимый текстовый редактор, добавьте IP-адреса удаленных хостов, которые вы хотите автоматизировать.
$ sudo vim /etc/apt/hosts
Сохраните файл и закройте.
Создание простого учебника
Плейбуки Ansible позволяют пользователям автоматизировать задачи, задавая команды, которые выполняются на удаленном хосте.
Вы создадите простую книгу воспроизведения Ansible, которая установит веб-сервер Apache, создаст правило брандмауэра, разрешающее Apache, и перезапустит службу.
Ansible использует YAML в качестве языка конфигурации по умолчанию для своих плейбуков.
Создайте файл YAML, используя команду touch как:
$ touch first-playbook.yaml
Используя текстовый редактор, добавьте записи, как показано в примере ниже:
$ vim first-ansible-playbook.yaml
---
- hosts: all
become: true
tasks:
- name: Update apt packages
apt:
state: latest
update_cache: yes
- name: Install Apache
apt:
name: apache2
state: latest
- name: Install UFW Firewall
apt:
name: ufw
state: latest
- name: Allow HTTP ufw
ufw:
state: enabled
rule: allow
port: "80"
proto: tcp
- name: Restart Apache
service:
name: apache2
state: restarted
В приведенном выше сценарии воспроизведения начните с указания хостов, на которых вы хотите выполнить сценарий. Поскольку в файле инвентаризации есть только один хост, установите для всех хостов.
Затем установите оператор стать, который позволяет задачам в playbook запускаться от имени пользователя root.
Предыдущие строки определяют задачи, которые должны выполняться на удаленном хосте. Они включают имя, описывающее функции и фактические задачи, выполняемые на хосте.
Первый сообщает Ansible об обновлении кеша репозитория; это соответствует команде:
$ sudo apt-get update
Следующая инструкция устанавливает последнюю версию веб-сервера Apache.
После этого следует установка брандмауэра UFW. Это требует включения и разрешения порта 80, который Apache использует по протоколу TCP.
Наконец, последний оператор перезапускает веб-сервер Apache.
Запустите Ansible Playbooks
Чтобы запустить Ansible playbook, нам нужно использовать команду ansible-playbook , которая поставляется вместе с Ansible после установки.
Чтобы запустить файл first-playbook.yaml, используйте команду:
$ ansible-playbook --user=ubuntu first-playbook.yaml
В приведенной выше команде передается параметр –user , который указывает пользователя на удаленном хосте.
ПРИМЕЧАНИЕ. Убедитесь, что на удаленном хосте установлены ключи SSH.
Как только вы выполните приведенную выше команду, вы получите результат, как показано на рисунке.
Выше показано, что все команды были успешно выполнены на удаленном хосте.
Проверить задачи
Чтобы убедиться, что задачи в playbook были успешно выполнены, откройте браузер и перейдите к IP-адресу удаленного хоста.
Если команды были выполнены и сервер Apache запущен, вы должны увидеть страницу по умолчанию Apache Ubuntu по умолчанию как:
Стоит ли использовать Ansible?
В заключение, очевидно, что Ansible – мощный инструмент. Его гибкость, функции и возможности делают его многообещающим инструментом для текущих и будущих задач автоматизации. Если вы инженер DevOps и хотите быстро и легко автоматизировать свои ИТ-задачи, Ansible сыграет важную роль в вашем пути.