Что такое Ansible – Полное руководство

Ansible – самый широко используемый инструмент DevOps для управления изменениями в вашей облачной или центральной инфраструктуре. В этой статье вы получите обзор того, как работает Ansible и как начать работу с ним.

Что такое Ansible?

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

Ansible – это агентное решение, управляющее машинами по протоколу Secure Shell Host (SSH). Для работы требуется база данных, но не используются фоновые службы (демоны).

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

Принцип работы Ansible

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

  1. Узел управления Ansible, также известный как узел контроллера Ansible, является сервером, на котором установлен Ansible. Этот узел выполняет все специальные команды Ansible и играбки Ansible для установки или управления конфигурациями или программным обеспечением на удаленных узлах.
  2. Удаленные узлы Ansible, также известные как управляемые узлы Ansible, являются серверами или сетевыми устройствами, на которых вы используете специальные команды Ansible или играбку Ansible для установки приложений или конфигураций. Эти узлы также называются узлами Ansible.
  3. Список узлов Ansible является файлом на узле управления Ansible или узле контроллера, который содержит список всех удаленных узлов или управляемых узлов.
  4. Модули Ansible, также известные как базовые модули Ansible, являются plugins-кодами или библиотечными plugins, которые можно использовать из командной строки или задачи играбки. Ansible выполняет каждый модуль, обычно на удаленном узле.

Зачем использовать Ansible?

Работая в области информационных технологий, вероятно, вам приходится выполнять одни и те же задачи многократно. Что если бы вы могли решить проблемы один раз, а затем автоматизировать свои решения в будущем? Ansible – это инструмент управления конфигурациями, который позволяет легко и эффективно управлять и развертывать программное обеспечение на удаленных узлах.

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

  • Ядровые модули Ansible (или ядро Ansible), о которых мы упоминали ранее, являются основными строительными блоками и архитектурой Ansible. Они принадлежат и управляются основной командой Ansible и всегда поставляются вместе с самим Ansible.
  • Коллекция Ansible – это формат распространения для Ansible, который вы можете использовать для упаковки и распространения плейбуков, ролей, модулей и плагинов. Типичная коллекция решает набор связанных использований. Вы можете создать коллекцию и опубликовать ее на Ansible Galaxy.

? Ansible Galaxy относится к сайту Galaxy, где пользователи могут делиться ролями, устанавливать, создавать и управлять модулями Ansible.

Примеры использования Ansible

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

Давайте рассмотрим некоторые из сценариев использования, где Ansible оказывается полезным:

  • Если вам нужно выполнить задачи и сценарии на разных системах одной командой, вы можете сделать это с помощью переменных Ansible.
  • Чтобы получить данные с нескольких систем, вы можете использовать факты Ansible. Факты Ansible – это данные, собранные с целевых узлов и возвращенные обратно на контролирующие узлы.
  • Ansible vault можно использовать для доступа к конфиденциальным данным, таким как пароли, или для развертывания приложений с безопасными паролями.
  • Ansible имеет функциональность поиска для доступа к базам данных и API для извлечения данных из внешнего хранилища данных.

Опции установки Ansible

Ansible – это простой в установке инструмент, который поддерживается на нескольких операционных системах. Давайте быстро посмотрим, какие операционные системы поддерживает Ansible.

Может ли Ansible быть запущен на Windows?

Вы не можете установить Ansible на Windows? Однако вы можете использовать его для управления операционными системами на основе Windows. Вот несколько возможных вариантов использования:

  • Сбор фактов Ansible на хостах Windows.
  • Установка и удаление пакетов MSI.
  • Включение/отключение функций Windows.
  • Запуск, остановка и управление службами Windows.

Управление конфигурацией Ansible

Перед запуском вашей первой команды Ansible вам следует знать, как настроить хост контроллера Ansible, инвентарь Ansible, playbooks Ansible и т. д.

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

Существует два разных способа хранения инвентаря Ansible:

  1. По умолчанию инвентарь Ansible хранится в файле /etc/ansible/hosts.
  2. Вы также можете использовать настраиваемый путь, указав опцию -I <путь> в командной строке.

Также существуют два способа настройки инвентаря Ansible:

  • Формат INI: INI-файл — это файл конфигурации, состоящий из имен групп в квадратных скобках для выделения хостов в разные группы. В примере ниже, server1.abc.com не имеет выделенных групп; однако server3.abc.com и server4.abc.com являются частью Group1.
server1.abc.com

[Group1]

server3.abc.com

server4.abc.com
  • Формат YAML: Еще один способ объявления инвентаря Ansible – использование YAML, который является надмножеством JSON, другого языка сериализации данных. Синтаксис файлового формата YAML определен ниже.

Аналогично объясненному выше для кода в формате INI, два сервера (server3.abc.com и server4.abc.com) являются членами группы Group1.

all:

  hosts:

     server1.abc.com

  children:

      Group1:

        hosts:

          server3.abc.com

          server4.abc.com

Адаптивные команды Ansible

Если вам нужно выполнить быструю задачу, такую как перезапуск или запуск службы Linux на удаленном узле Ansible, Адаптивная команда Ansible здесь для вас. Адаптивные команды – это быстрый и эффективный способ выполнить одну команду на удаленных узлах.

Например, чтобы пропинговать все удаленные узлы Ansible с помощью команды Ansible Ad hoc, вам нужно выполнить следующую команду. Здесь “all” представляет все хосты, настроенные в инвентаре Ansible, и -m – это флаг, используемый вместе с модулем ping.

ansible all -m ping 
Using an Ansible Ad hoc command to ping all Ansible remote nodes

Что такое плейбук Ansible?

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

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

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

В этом примере плейбук Ansible содержит две задачи Ansible (1 и 2), которые устанавливают Apache и Java на удаленных узлах.

# Playbook apache.yml

---

- name: Ansible Playbook Examples

  hosts: servers                                         # Define all the hosts

  remote_user: ubuntu                                    # Remote_user is ubuntu

  # Defining the Ansible tasks

  tasks:                                                

  - name: Ansible Task 1

    apt:

      name: httpd

      state: latest

  tasks:                                                 

  - name: Ansible Task 2

    apt:

      name: open-jdk

      state: latest

Ansible Tower: веб-ориентированное решение

Хотя у вас теперь хорошее представление о том, как работает Ansible, что если вы хотите использовать его без необходимости управлять или устанавливать его?

Ansible размещен на машине под управлением Linux. Но если вы хотите использовать облачную версию без беспокойств по управлению Ansible локально, то используйте Ansible Tower, которая представляет собой веб-ориентированное решение. В облачной версии вы по-прежнему используете модули для настройки или управления удаленными машинами и выполняете команды Ansible или Ansible Playbooks.

Ansible Tower также позволяет вам контролировать доступ для всех пользователей, управляет учетными данными SSH и инвентарем Ansible. Он также ведет журнал всех ваших работ, отлично интегрируется с протоколом доступа к каталогам Lightweight Directory Access Protocol (LDAP) и имеет удивительный просматриваемый REST API. Ansible Tower имеет возможность масштабировать сервера и экземпляры, если вам нужно выполнять несколько задач на удаленных узлах.

Заключение

Ansible – это бесплатный инструмент с множеством функций. С помощью этого руководства вы сможете понять, что возможно с этим многофункциональным инструментом! Начиная от управления конфигурациями и использования различных модулей Ansible до выполнения Ad hoc-команд, Ansible-скриптов и развертывания десятков программных инструментов, Ansible является одним из самых широко используемых инструментов автоматизации.

Теперь, когда у вас есть хорошее представление о том, как работает Ansible, что вы планируете развернуть с его помощью?

Связанные статьи:


Source:
https://petri.com/what-is-ansible/