Руководство по Ansible
Надеюсь, вы просмотрели мой предыдущий блог, чтобы узнать и наиболее часто используемые термины Ansible. В случае, если вы этого не сделали, обязательно ознакомьтесь с ним, чтобы лучше понять это руководство по Ansible.Вы также должны знать, что Ansible составляет важную часть как инструмент для управления конфигурацией, развертывания и оркестровки.
Позвольте мне дать вам обзор этого «Ansible Tutorial»:
- Вы научитесь писать пьесы
- Вы узнаете о разных модули в Ansible
- Ты научишься писать Специальные команды
- Руки вверх с Ansible
Руководство по 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-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.