Что такое Ansible Playbook и как написать его самостоятельно?
Автоматизация играет центральную роль в современном мире информационных технологий. Вот почему так важно иметь в своем распоряжении надежные инструменты автоматизации. Ansible, инструмент автоматизации с открытым исходным кодом, управляет развертыванием приложений, управлением конфигурацией, внутрисервисной оркестровкой и подготовкой. Это невероятно полезный инструмент для DevOps, поскольку он устраняет трудоемкие повторяющиеся задачи, позволяя командам сосредоточиться на более стратегической работе.
Сборники схем Ansible — это жизненно важная часть Ansible и основной компонент каждой конфигурации Ansible. В этой статье мы исследуем все, что такое сборники пьес Ansible, как написать сборник пьес Ansible, его использование, переменные сборника пьес и пример сборника пьес Ansible.
Если вы не слишком хорошо знакомы с Ansible, ознакомьтесь с этим руководством по Ansible и познакомьтесь с мощью и потенциалом этого популярного инструмента DevOps.
Что такое Ansible Playbook?
Книга воспроизведения Ansible — это файл, содержащий набор инструкций, которые Ansible может использовать для автоматизации задач на удаленных хостах. Книги написаны на YAML, удобочитаемом языке разметки.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Сценарий обычно состоит из одной или нескольких пьес — набора задач, выполняемых последовательно. Каждая задача представляет собой одну инструкцию, которую может выполнить Ansible, например установка пакета, настройка службы или копирование файла.
Используя сборники схем Ansible, ИТ-команды могут автоматизировать предоставление инфраструктуры, управление конфигурацией, развертывание приложений и другие операционные задачи. Сборники схем предоставляют краткий и удобочитаемый способ описания желаемых рабочих процессов автоматизации, упрощая управление и масштабирование конфигураций инфраструктуры.
Как работают Ansible Playbooks?
В Ansible playbooks используется простой, но мощный язык YAML. YAML — это удобочитаемый язык разметки, который легко изучить и использовать.
Сценарий обычно состоит из одного или нескольких пьес, которые представляют собой набор последовательно выполняемых задач. Каждая задача представляет собой одну инструкцию, которую может выполнить Ansible, например установка пакета, настройка службы или копирование файла.
Когда вы запускаете книгу воспроизведения Ansible, Ansible сначала считывает файл книги воспроизведения и анализирует синтаксис YAML. Затем Ansible подключается к удаленным хостам, перечисленным в сборнике сценариев, и последовательно выполняет задачи.
Ansible использует концепцию под названием «модули» для выполнения задач. Модули — это небольшие программы многократного использования, написанные на Python. Он имеет большую библиотеку модулей, которые используются для выполнения ряда задач.
Например, модуль apt можно использовать для установки пакетов из репозитория APT, модуль службы — для запуска, остановки или перезапуска служб, а модуль копирования — для копирования файлов из одного места в другое.
Когда Ansible выполняет задачу, он сначала ищет модуль, соответствующий имени задачи. Ansible выполняет модуль на удаленном хосте, если найден соответствующий модуль.
Ansible попытается выполнить задачу как команду оболочки, если соответствующий модуль не найден. Это означает, что вы можете использовать Ansible для выполнения любой команды, которую можно запустить из командной строки.
Ansible playbooks — мощный инструмент для автоматизации ИТ-задач. Их легко изучить и использовать, и их можно использовать для управления большим количеством хостов.
Вот некоторые этапы работы плейбуков Ansible:
- Сборник сценариев Ansible анализируется, и задачи выполняются последовательно.
- Для каждой задачи Ansible ищет подходящий модуль.
- Если соответствующий модуль найден, он выполняется на удаленном хосте.
- Задача выполняется как команда оболочки, если соответствующий модуль не найден.
- Ansible продолжает выполнять задачи в playbook до тех пор, пока все задачи не будут выполнены.
Как использовать Ansible Playbooks?
Чтобы использовать сборники схем Ansible, выполните следующие действия:
- Установите Ansible: убедитесь, что Ansible установлен на вашем управляющем компьютере. Обратитесь к официальной документации Ansible за инструкциями по установке, специфичными для вашей операционной системы.
- Конфигурация инвентаризации: создайте файл инвентаризации, в котором перечислены целевые хосты или группы хостов, которыми вы хотите управлять с помощью Ansible. Файл инвентаризации может быть простым текстовым файлом или файлом INI/JSON/YAML. Определите имена хостов, IP-адреса и все необходимые параметры подключения (например, учетные данные SSH) в файле инвентаризации.
- Создайте книгу игр. Создайте файл YAML с расширением .yaml или .yml, чтобы определить свою книгу игр. Списки сценариев состоят из игр, которые представляют собой наборы задач, которые необходимо выполнить на определенных хостах или группах хостов.
- Определите пьесы и задачи. В книге пьес определите одну или несколько пьес, каждая из которых имеет набор задач. Задачи представляют собой отдельные единицы работы, которые необходимо выполнить на целевых хостах. Укажите модули, которые будут использоваться, а также их параметры для выполнения желаемых действий.
- Необязательно: используйте переменные и шаблоны: используйте переменные, чтобы сделать вашу книгу игр динамичной и пригодной для повторного использования. Определите переменные в книге воспроизведения или в отдельных файлах переменных. Используйте шаблоны Jinja2 для создания файлов конфигурации или динамической настройки значений на основе переменных.
- Запустите книгу воспроизведения. Запустите книгу воспроизведения, используя команду ansible-playbook, за которой следует путь к файлу книги воспроизведения. Ansible прочитает playbook, подключится к целевым хостам, указанным в инвентаре, и выполнит определенные задачи.
- Мониторинг и проверка: во время выполнения плейбука Ansible предоставит обратную связь о статусе каждой задачи. Отслеживайте выходные данные, чтобы убедиться, что книга воспроизведения работает без ошибок и выполняет нужные действия на целевых хостах. Проверьте изменения, внесенные пьесой в целевых системах.
- Итерируйте и совершенствуйте: изменяйте свой сценарий по мере необходимости в соответствии с вашими конкретными требованиями. Выполняйте итерации, тестируйте и улучшайте свои сценарии для автоматизации дополнительных задач, управления различными системами или обработки более сложных сценариев.
Как написать Ansible Playbook?
Приведенные выше примеры были простыми и понятными. Потенциально плейбуки Ansible могут стать значительно больше и сложнее. Но независимо от того, создаете ли вы короткую и интересную книгу-пособие или грандиозную эпопею, вот как вы можете ее собрать.
Каждая книга игр разбита на одни и те же стандартные разделы:
- Сценарии начинаются с трех дефисов. —
Хозяин
Раздел хоста определяет целевые машины, на которых будет работать книга сценариев. Эта информация основана на файле инвентаризации Ansible. Таким образом, раздел хоста представляет собой список устройств.
Раздел переменных является необязательным и включает в себя любые переменные, необходимые для сценария. Он может быть настолько большим или маленьким, насколько это необходимо, если вообще возможно.
В разделе задач перечислены все задачи, которые должна выполнить целевая машина, и указано использование модулей. Каждая задача получает имя, обычно небольшое описание того, что делает задача, и отображается в списке при запуске плейбука.
Большинство сборников пьес заканчиваются тремя периодами. …
И вот несколько полезных советов, которые следует помнить при работе с плейбуками Ansible:
- Книги написаны в формате YAML и имеют расширение файла .yml.
- Используйте эту команду для запуска книги воспроизведения: $ ansible-playbook
- Используйте эту команду, чтобы проверить книгу воспроизведения на наличие синтаксических ошибок: $ ansible-playbook
–syntax-check - Создавайте списки. Списки определяют элементы внутри переменных playbook. Используйте символ – для создания списка
- Включите пробелы. Если вы поместите пустую строку между каждой задачей или блоком, это облегчит просмотр книги сценариев.
- Назовите свои задачи. Именование задач не является обязательным, но оно может пригодиться. Выбирайте названия, которые объясняют, что делает каждая задача.
- Включите государство. Хотя параметр «state» не является обязательным, для ясности вы можете использовать такие настройки состояния, как «state=present» или «state=absent».
- Используйте комментарии. Даже если вы называете задачи и состояния, в некоторых случаях требуется дополнительная информация. Добавьте комментарий (начиная строку с #), чтобы помочь пользователям понять (или напомнить себе!), что делает задача или игра, как она это делает и почему.
Практический пример Ansible Playbook
ЯМЛ
—
– хозяева: все
задания:
– имя: установить веб-сервер Apache.
подходит:
имя: апач2
состояние: присутствует
– имя: Настройка веб-сервера Apache.
услуга:
имя: апач2
состояние: запущено
включено: да
– имя: скопируйте файл index.html в корень веб-сайта.
копия:
источник: index.html
Место назначения: /var/www/html/index.html
В этом сценарии веб-сервер Apache будет установлен на всех хостах, перечисленных в переменной hosts, а затем настроен на его автоматический запуск при загрузке системы. Он также скопирует файл index.html в корень веб-сайта.
Переменная hosts указывает хосты, на которых будет работать книга воспроизведения. В этом случае книга воспроизведения будет работать на всех хостах в файле инвентаря.
В разделе задач плейбука указаны задачи, которые будут выполняться. Каждая задача представляет собой одну инструкцию, которую может выполнить Ansible.
В этом примере есть три задачи:
- Первая задача устанавливает веб-сервер Apache с помощью модуля apt.
- Вторая задача настраивает веб-сервер Apache с помощью сервисного модуля.
- Третья задача копирует файл index.html в корень веб-сайта с помощью модуля копирования.
Чтобы запустить этот сборник сценариев, вам необходимо сохранить его как файл с расширением .yaml. Затем вы запустите книгу воспроизведения с помощью команды ansible-playbook. Например, чтобы запустить playbook на всех хостах в файле инвентаризации, вы должны выполнить следующую команду:
ansible-playbook playbook.yaml
Для чего используются Ansible Playbooks?
Сборники схем Ansible запускают несколько задач, назначают роли и определяют конфигурации, этапы развертывания и переменные. Если вы используете несколько серверов, сборники сценариев Ansible организуют шаги между собранными машинами или серверами и организуют их и запускают так, как это нужно пользователям. Считайте сборники пьес эквивалентом инструкций.
Пользователи могут использовать сборники сценариев Ansible для управления развертыванием и конфигурацией удаленных компьютеров. Кроме того, сборники сценариев могут выполнять многоуровневое развертывание, использующее чередующиеся обновления — задачи запускаются либо синхронно, либо асинхронно.
Подводя итог, можно сказать, что сборники сценариев Ansible помогают пользователям легко управлять несколькими машинами и обеспечивать согласованную работу всех затронутых устройств. Это чрезвычайно мощный ресурс для профессионалов DevOps.
Какие типы переменных есть в Ansible Playbooks?
Ansible использует переменные, чтобы помочь пользователям справиться с различиями между системами, поскольку не бывает двух одинаковых систем. Имена переменных состоят из букв, цифр и символов подчеркивания, хотя они всегда должны начинаться с буквы. Кроме того, переменные никогда не содержат пробелов.
Вы можете определять переменные непосредственно в книгах воспроизведения с помощью команды «vars:». Переменными может быть что угодно: от имен собственных, портов до веб-серверов или заданной команды. Например, вы можете составить сборник правил, в котором люди будут приветствовать людей словами: «Как дела, а?» создав переменную с именем «приветствие» со значением «Как дела, а?» Когда пользователь выполняет книгу воспроизведения, на терминалах отображается сообщение.
Переменные хранят значения, и вы можете создать переменные практически любого типа, которые вам нужны. Существуют переменные группы и хоста, переменные файла инвентаризации, переменные массива, переменные словаря и специальные переменные. Специальные переменные — это встроенные переменные, которые не могут быть установлены пользователем, и Ansible всегда переопределяет их.
Вы также можете хранить переменные в отдельном файле и при необходимости импортировать их с помощью команды vars_files.
Обратите внимание, что ваша книга пьес не обязательно должна включать переменные, если в них нет необходимости. Они совершенно необязательны.
Несколько слов о специальных командах
Специальные команды автоматизируют одну задачу на одном или нескольких управляемых узлах с помощью инструмента командной строки /usr/bin/ansible. Эти команды легко и быстро создавать, но их нельзя использовать повторно. Они идеально подходят для задач, которые вы выполняете не очень часто. Например, вы можете использовать специальную команду для копирования файла.
Необходимо освоить специальные команды, поскольку они не только демонстрируют простоту и универсальность Ansible, но и многие концепции специальных команд применимы к сборникам сценариев.
DevOps — это широко используемый процесс разработки программного обеспечения, породивший множество полезных инструментов. Конечно, мы уже затронули Ansible, но есть и другие, не менее ценные ресурсы. Simplilearn собрал для вас коллекцию этих ресурсов.
Для начала ознакомьтесь со статьей Ansible и Kubernetes, в которой сравниваются эти два инструмента и их преимущества для профессионалов DevOps. Ansible vs. Puppet сравнивает и противопоставляет эти два достойных инструмента управления конфигурацией (CM), и, наконец, Ansible vs. Chef раскрывает различия между этими двумя полезными ресурсами.
Если вы хотите еще больше расширить свои знания DevOps, ознакомившись с доступным разнообразием инструментов, посетите программу последипломного образования в DevOps. Эта программа, разработанная в сотрудничестве с CalTech CTME, оттачивает ваши знания в Chef, Ansible и Puppet, а также помогает вам освоить средства улучшения возможностей DevOps вашей команды. Это программа «все в одном», которая улучшит ваше понимание DevOps и поможет вам стать лучшим руководителем группы, а также познакомит вас с наиболее популярными инструментами, доступными сегодня.
Выберите правильную программу DevOps
В этой таблице сравниваются различные программы DevOps, предлагаемые Simplilearn, на основе нескольких ключевых функций и деталей. В таблице представлен обзор продолжительности курсов, навыков, которые вы приобретете, дополнительных преимуществ, а также других важных факторов, которые помогут вам принять обоснованное решение о том, какой курс лучше всего соответствует вашим потребностям.
Название программы | Магистерская программа DevOps-инженера | Последипломная программа в DevOps |
Гео | Все | Все |
Университет | Простое обучение | Калтех |
Длительность курса | 11 месяцев | 9 месяцев |
Требуется опыт кодирования | Базовые знания | Базовые знания |
Навыки, которые вы изучите | Более 40 навыков, включая Ansible, Puppet, Chef, Jenkins и т. д. | Более 10 навыков, включая CI, CD, DevOps в облаке, автоматизацию развертывания и т. д. |
Дополнительные преимущества | Сертификация магистров Проекты из реальной жизни Изучите более 40 навыков и инструментов | Калифорнийский технологический институт Карьерные услуги Мастер-классы преподавателей Калифорнийского технологического института |
Расходы | $$ | $$$ |
Изучите программу | Изучите программу |
Хотели бы вы стать инженером DevOps?
Инженеры DevOps отвечают за управление ИТ-инфраструктурой, которая занимается разработкой программного обеспечения. Они общаются с командами разработчиков, помогают в кодировании и написании сценариев, а также предоставляют результаты тестирования, устранения неполадок и отзывы пользователей.
Если это похоже на тот тип карьеры, которым вы хотели бы заняться, магистерская программа DevOps Engineer Simplilearn подготовит вас к карьере DevOps, которая предлагает волнение, проблемы и возможность работать с ИТ-командами. Вы приобретете знания в области принципов непрерывной разработки и развертывания, автоматизации управления конфигурациями, взаимодействия между командами и гибкости ИТ-услуг, используя такие инструменты DevOps, как Git, Docker, Jenkins и другие.
Программа состоит из семи курсов, которые познакомят вас с более чем 40 востребованными навыками и более чем 15 инструментами, связанными с DevOps. Согласно шкале заработной платы, Инженеры DevOps могут зарабатывать в среднем 94 660 долларов США в год, при максимальной отметке около 136 000 долларов США.
Если вы не готовы принять участие в масштабной программе DevOps Engineer, но хотели бы познакомиться с Ansible, посетите учебный курс Ansible Foundation от Simplilearn. Курс предлагает вам четыре с половиной часа самостоятельного обучения. Он идеально подходит для новичков, которые хотят лучше понять установку Ansible 2.0, создавать свои собственные сборники сценариев, управлять всем облачным регионом и настраивать сетевые устройства в операционных системах Linux или Windows.
Хотите ли вы сделать первые шаги в карьере DevOps-инженера или просто хотите освоить Ansible, у Simplilearn есть все необходимое для достижения ваших целей. Проверьте их сегодня!
Часто задаваемые вопросы
1. Для чего нужен плейбук Ansible?
Книги воспроизведения Ansible используются для автоматизации и управления конфигурацией. Они позволяют вам определить набор задач и конфигураций в структурированном формате для выполнения на целевых хостах. Сборники сценариев помогают оптимизировать операции, обеспечить согласованность и автоматизировать такие задачи, как подготовка инфраструктуры, развертывание приложений и управление конфигурациями.
2. Какой тип файла представляет собой книгу воспроизведения Ansible?
Книги воспроизведения Ansible представляют собой файлы YAML. Обычно они имеют расширение файла .yaml или .yml. YAML (YAML не является языком разметки) — это удобочитаемый формат сериализации данных, который использует отступы и пары ключ-значение для представления структур данных. Ansible использует простоту и читабельность YAML для краткого и структурированного определения сборников сценариев.
3. В чем разница между Ansible play и Task?
В Ansible игра — это высокоуровневая структура в книге игр, которая связывает набор задач с определенной группой хостов. Игра определяет область действия, хосты и другие параметры для выполнения последовательности задач. С другой стороны, задача представляет собой отдельную единицу работы в пьесе. Задачи определяют действия, которые необходимо выполнить на целевых хостах, например установку пакетов, копирование файлов или запуск команд.
4. Что такое синтаксис плейбука?
Синтаксис плейбуков относится к структуре и формату, используемым для определения плейбуков Ansible. В сборниках пьес Ansible используется синтаксис YAML, который включает в себя отступы, пары «ключ-значение» и иерархическую структуру для организации воспроизведения, задач и других компонентов. Правильные отступы и соблюдение правил синтаксиса YAML имеют решающее значение для правильной интерпретации и выполнения сборников сценариев Ansible.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)