Ansible для новичков: начните с автоматизации ИТ

Ansible для новичков Программирование и разработка

Ansible — это простой, мощный инструмент без агентов, который упрощает процесс автоматизации ИТ и ускоряет усилия DevOps. Ansible помогает автоматизировать и настраивать инфраструктуру, чтобы сэкономить время и повысить производительность. Это простой, безопасный и мощный инструмент, который легко изучить и внедрить в вашей организации. Сегодня мы обсудим, что такое Ansible, что он делает, ключевые термины и с чего начать.

Что такое Ansible?

Ansible — это инструмент оркестрации и автоматизации с открытым исходным кодом, используемый для подготовки программного обеспечения, управления конфигурацией и развертывания приложений. Впервые Ansible был разработан в 2012 году Майклом ДеХааном, создателем Cobbler and Func. Компания, финансирующая Ansible, была приобретена RedHat, Inc. в 2015 году. RedHat была приобретена IBM в 2019 году, так что теперь Ansible живет под эгидой IBM.

Ansible работает в Windows и Unix-подобных операционных системах, предоставляя инфраструктуру в виде кода. Имеет собственный декларативный язык программирования для управления и настройки системы. Он может подключаться к облачным средам, таким как Amazon AWS и Microsoft Azure, чтобы помочь вам управлять инфраструктурой и развертыванием кода и автоматизировать их.

Ansible прост в установке, легко подключается к клиентам и содержит множество функций. Он основан на push и подключается к клиентам через SSH, поэтому не требует наличия агента на клиенте. Отправляя модули клиентам, модули на клиенте выполняются локально, а выходные данные отправляются обратно на сервер Ansible. Он использует SSH-ключи для упрощения процесса подключения клиентов. Имена хостов, IP-адреса и порты SSH хранятся в файлах инвентаризации. Как только файл инвентаризации создан и заполнен, Ansible может его использовать.

Преимущества Ansible для DevOps

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

  • Открытый исходный код, бесплатное использование
  • Не требует специальных навыков системного администрирования для установки и использования
  • Полностью настраиваемый
  • Последовательный и легкий
  • Очень безопасен благодаря безагентным возможностям и использованию безопасности OpenSSH
  • Полная документация
  • Плавная кривая обучения
  • Создан на Python, одном из самых быстрых и надежных языков программирования.
  • Контроль версий и управление конфигурацией
  • Надежное развертывание
Читайте также:  Можно ли создать вектор из векторов на C++?

Распространенные варианты использования Ansible

Ansible — это мощный инструмент, который имеет широкий спектр приложений и применений, особенно для подключения к средам Docker или облачным сервисам, таким как AWS. Вот некоторые из основных вариантов использования Ansible:

  • Управление конфигурацией
  • Разработка и развертывание приложений
  • Программное обеспечение и инфраструктура
  • ИТ, безопасность и автоматизация сети
  • Массовое управление виртуальными машинами, чтобы убедиться, что каждая виртуальная машина имеет одинаковую конфигурацию
  • Определите конфигурацию вашего сервера, работающего в облаке, чтобы другие могли легко ее прочитать и использовать
  • Используйте Ansible Tower или AWX для создания графического пользовательского интерфейса

Ключевые термины Ansible

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

  • Сервер Ansible: машина с установленным Ansible, на которой выполняются все задачи и сценарии.
  • Хосты: устройства, которыми вы управляете с помощью Ansible.
  • Пособие: фреймворк, в котором определены задачи автоматизации Ansible (написаны на YAML).
  • Играть: исполнение пьесы
  • Модули: команда или набор команд, предназначенных для выполнения на стороне клиента.
  • Задача: раздел, содержащий одну процедуру, которую вы хотите выполнить.
  • Тег: имя, которое вы можете присвоить задаче.
  • Обработчик: задача, которая вызывается только при наличии уведомителя.
  • Уведомитель: раздел, назначенный задаче, которая вызывает обработчик, если вывод изменен.
  • Инвентарь: файл, содержащий данные клиент-сервер Ansible.
  • Факт: информация, полученная от клиента из глобальных переменных с помощью операции сбора фактов.

Начало работы с Ansible

Пришло время узнать об основных принципах работы этого инструмента. Мы расскажем, как приступить к работе с Ansible, Ansible playbooks и специальными командами Ansible.

Помните, что с Ansible у вас есть сервер и хосты Ansible. Сервер Ansible — это машина, на которой установлен Ansible, а хосты — это машины, обрабатываемые Ansible через сервер Ansible. Сервер Ansible может обрабатывать несколько хостов.

Требования к серверу Ansible:

  • Python 2 (2.7) или 3 (3.5 или выше)
  • Ansible не поддерживает Windows в качестве управляющего узла, но вы можете использовать WSL для его настройки в Windows 10.

Требования к хосту:

  • Python 2 (2.7) или 3 (3.5 или выше)

Примечание. Способ настройки среды Ansible зависит от требований вашего устройства. Следующими вашими шагами будет загрузка Ansible, а затем настройка и автоматизация работы.

Ansible playbooks

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

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

Каждая игра определяет как минимум две вещи:

  • Одна или несколько задач для выполнения
  • Хосты, на которые вы хотите настроить таргетинг

Игра начинается с определения hostsлинии, которая представляет собой список из одного или нескольких шаблонов или групп хоста, разделенных двоеточиями. За hostsстрокой следует tasksсписок. Ansible будет выполнять задачи на назначенных хостах по порядку, по одной за раз.

Например, взгляните на пьесу ниже:

— hosts: webservers
       tasks:
       — name: deploy code to webservers
               deployment:
                       path: {{ filepath }}
                       state: present
— hosts: dbserver
       tasks:
       — name: update database schema
         updatedbschema:
               host: {{ dbhost }}
               state: present
— hosts: webservers
       tasks:
       — name: check app status page
               deployment:
                       statuspathurl: {{ url }}
                       state: present

В этом примере playbook мы выполнили три игры: мы развернули код на веб-серверах, обновили схему базы данных и проверили страницу статуса приложения.

Специальные команды

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

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

Сценарии использования специальных команд:

  • Тестирование подключения
  • Сбор фактов
  • Управление файлами и / или службами
  • Перезагрузка серверов

Различные типы специальных команд и их назначение:

  • file: Добавить и / или удалить каталоги
  • ping: Проверить подключение
  • stat: Получение фактов о каталогах
  • copy: Копировать файлы
  • replace: Обновить файлы
  • debug: Отладочные переменные и выражения
  • lookup: Плагин для доступа к данным из внешних источников.

Вот пример statкоманды, которая извлекает факты о каталогах:

ansible localhost -m stat -a «path=/ansible»
Оцените статью
bestprogrammer.ru
Добавить комментарий