Учебное пособие по Ansible - научитесь писать руководства по Ansible



В этом блоге, посвященном Ansible Tutorial, вы узнаете, как писать сценарии Ansible, специальные команды и выполнять практические действия по развертыванию Nginx на вашем хост-компьютере.

Руководство по Ansible

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

Позвольте мне дать вам обзор этого «Ansible Tutorial»:





Руководство по Ansible Playbook | Обучение DevOps | Эдурека

Учебник по Ansible - Написание руководств по Ansible

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



Для Ansible почти каждый файл YAML начинается со списка. Каждый элемент в списке представляет собой список пар ключ / значение, обычно называемый «хешем» или «словарем». Итак, нам нужно знать, как писать списки и словари на YAML.

Все элементы списка - это строки, начинающиеся на одном уровне отступа, начинающиеся с «-» (тире и пробела). Возможны более сложные структуры данных, такие как списки словарей или смешанные словари, значения которых являются списками или их комбинацией.

например Список отделов в edureka:



отделы: - маркетинг - продажи - решения - написание контента - поддержка - продукт

А теперь позвольте мне привести пример словаря:

-США -континент: Северная Америка -столица: Вашингтон, округ Колумбия -население: 319 миллионов

Хосты и пользователи:

Для каждой игры в playbook вы можете выбрать, на какие машины в вашей инфраструктуре нацеливаться и на какого удаленного пользователя выполнять задачи. Чтобы включить хосты в инвентарь Ansible, мы будем использовать IP-адреса хост-машин.

Обычно хосты представляют собой список из одной или нескольких групп или шаблонов хостов, разделенных двоеточиями. Удаленный пользователь - это просто имя учетной записи пользователя.

Переменные:

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

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

Но есть правило для именования переменных. Имена переменных должны состоять из букв, цифр и знаков подчеркивания. Переменные всегда должны начинаться с буквы. Например. wamp_21, port5 - допустимые имена переменных, а 01_port, _server - недопустимые.

Задачи:

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

Например: установка, обновление и т. Д.

Обработчики:

Обработчики аналогичны обычным задачам в Ansible playbook, но запускаются только в том случае, если Task содержит директиву notify, а также указывает, что она что-то изменила. Например, если файл конфигурации изменен, то задача, ссылающаяся на файл конфигурации, может уведомить обработчик перезапуска службы.

Позвольте мне привести пример сценария, который запустит программу сервера Apache httpd:

----хозяева: веб-серверы чья: http_port: 80 max_clients: 200 удаленный_пользователь: корень задачи: - имя: убедитесь, что у Apache последняя версия ням: имя = httpd состояние = последнее - имя: напишите файл конфигурации apache шаблон: src = / srv / httpd.j2 dest = / etc / httpd.conf уведомлять: - перезапустить apache - имя: убедитесь, что apache запущен (и включите его при загрузке) оказание услуг: name = httpd state = запущен включен = да обработчики: - имя: перезапустить apache оказание услуг: имя = состояние httpd = перезапущено

Я надеюсь, что этот пример отнесет вас ко всему описанию компонентов playbook, которое я упомянул выше. Если вам все еще непонятно, не волнуйтесь, все ваши сомнения будут прояснены в более поздней части этого блога.

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

Ansible Tutorial - Модули

Модули в Ansible идемпотентны. С точки зрения службы RESTful, для того чтобы операция (или вызов службы) была идемпотентной, клиенты могут выполнять один и тот же вызов несколько раз, производя тот же результат. Другими словами, выполнение нескольких одинаковых запросов имеет тот же эффект, что и выполнение одного запроса.

В Ansible есть разные типы модулей

  • Основные модули
  • дополнительные модули

Основные модули

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

Источник этих модулей размещен на Ansible на GitHub в ядре Ansible-modules.

Дополнительные модули

Эти модули в настоящее время поставляются с Ansible, но в будущем могут поставляться отдельно. Они также в основном поддерживаются сообществом Ansible. Неосновные модули по-прежнему полностью пригодны для использования, но могут получать несколько меньшую скорость ответа на вопросы и запросы на вытягивание.

Популярные «дополнительные» модули со временем могут быть повышены до основных модулей.

Исходный код этих модулей размещен на Ansible на GitHub в Ansible-modules-extras.

Например: одним из дополнительных модулей в модулях удаленного управления является модуль ipmi_power, который является диспетчером питания для удаленных машин. Для работы требуется python 2.6 или новее и pyghmi.

Вы можете использовать этот модуль, написав специальную команду, подобную той, которую я написал ниже:

ipmi_power: name = 'test.domain.com' user = 'localhost' password = 'xyz' state = 'on'

Учебное пособие по Ansible - возвращаемые значения

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

Вот некоторые примеры возвращаемых значений:

  • изменено: возвращается с логическим значением всякий раз, когда задача вносит какие-либо изменения.
  • failed: возвращает логическое значение, если задача не выполнена
  • msg: он возвращает строку с общим сообщением, переданным пользователю.

Учебник по Ansible - команды AdHoc

Специальные команды - это простые однострочные команды для выполнения определенных действий. Запуск модулей с командами Ansible - это специальные команды.

Например:

ansible host -m netscaler -a 'nsc_host = nsc.example.com user = apiuser password = apipass' 

Приведенная выше команда adhoc использует модуль netscaler для отключения сервера. В Ansible доступны сотни модулей, откуда вы можете ссылаться на специальные команды и писать их.

Что ж, хватит всех теоретических объяснений, позвольте мне объяснить вам Ansible на практике.

Руководство по Ansible - практическое занятие

Я собираюсь написать руководство по установке Nginx на моем узле / хост-машине.

Давайте начнем :)

Шаг 1: Подключитесь к своим хостам с помощью SSH. Для этого вам нужно сгенерировать публичный SSH-ключ.

Используйте команду ниже:

ssh-keygen

Создание ключа Ssh - Руководство по Ansible - Edureka

Как вы можете видеть на снимке выше, команда ssh-keygen сгенерировал открытый SSH-ключ.

Шаг 2: Ваша следующая задача - скопировать публичный ключ SSH на ваши хосты. Для этого используйте команду ниже:

ssh-copy-id -i root @

На снимке выше показан ключ SSH, копируемый на хосты.

Шаг 3: Перечислите IP-адреса ваших хостов / узлов в своем инвентаре.

Используйте следующую команду:

vi / etc / ansible / hosts

Это откроет редактор vi, в котором вы можете перечислить IP-адреса ваших хостов. Теперь это ваш инвентарь.

Шаг 4: Давайте пингуем, чтобы убедиться, что соединение установлено.

Снимок выше подтверждает, что между вашим управляющим компьютером и хостом установлено соединение.

Шаг 5: Давайте теперь напишем сценарий для установки Nginx на хост-машину. Вы можете написать свой сценарий в редакторе vi. Для этого просто создайте свою пьесу, используя команду:

vi

На снимке ниже показан мой сценарий установки Nginx, написанный в формате YAML.

Задачи playbook определены в YAML как список словарей и выполняются сверху вниз. Если у нас несколько хостов, то каждая задача проверяется для каждого хоста перед переходом к следующему. Каждая задача определяется как словарь, который может иметь несколько ключей, таких как «имя» или «sudo», которые обозначают имя задачи и то, требуются ли для нее привилегии sudo.

Переменная порт сервера установлен, который прослушивает TCP-порт 8080 для входящих запросов.

Здесь первая задача - получить необходимый пакет для установки Nginx, а затем установить его.Внутренне Ansible проверит, существует ли каталог, и создаст его, если нет, иначе ничего не сделает.

Следующая задача - настроить Nginx.В Nginx контексты содержат детали конфигурации.

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

Здесь обработчики определяют действие, которое должно выполняться только при уведомлении о задачах или изменениях состояния. В этой книге мы определили, notify: restart обработчик Nginx, который перезапустит Nginx после того, как файлы и шаблоны будут скопированы на хосты.

Теперь сохраните файл и выйдите.

Шаг 6: Теперь давайте запустим эту пьесу, используя следующую команду:

ansible-playbook .yml

На скриншоте выше мы видим, что наша задача запускается при установке Nginx.

Шаг 7: Давайте проверим, установлен ли Nginx на моем хосте. Используйте команду ниже:

ps waux | grep nginx

На скриншоте выше вы можете видеть, что запущены разные идентификаторы процессов 3555 и 103316, что гарантирует, что Nginx работает на ваших хост-машинах.

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

имеет отношения в Java

Если вы нашли это « Руководство по Ansible ' соответствующие, проверить от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Курс Edureka DevOps Certification Training помогает учащимся получить опыт в различных процессах и инструментах DevOps, таких как Puppet, Jenkins, Ansible, Nagios и Git, для автоматизации нескольких этапов в SDLC.