Ansible для практической автоматизации
Copyright © 2022 Packt Publishing
![]() |
Данный документ предоставляется по лицензии Creative Commons Attribution 3.0 License, за исключением разделов со специальными оговорками. |
Первая публикация на английском языке: Сентябрь 2022
Ссылка на продукт: 1020922
Все права защищены. Никакая часть этой книги не может быть воспроизведена, сохранена в поисковой системе или передана в любой форме или любыми средствами без предварительного письменного разрешения издателя, за исключением случаев кратких цитат, встроенных в критические статьи и обзоры.
При подготовке этой книги были предприняты все усилия чтобы гарантировать точность представленной информации. Тем не менее, информация, содержащаяся в этой книге, продаётся без гарантии в явном или неявном виде. Ни авторы, ни Packt Publishing, ни их дилеры и дистрибьюторы не будут нести ответственность за любые убытки, вызванные или предположительно вызванные прямо или косвенно этой книгой.
Packt Publishing пыталась предоставить информацию о товарных знаках обо всех компаниях и продуктов, упомянутых в данной книге для надлежащего использования капиталов. Тем не менее, Packt Publishing не может гарантировать точность этой информации.
Опубликовано Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK
ISBN 978-1-80323-541-7
2022-10-15
- Автор
- Гиниш Мэйдаппэйрамбат
- Управляющий группой продуктов
- Райль Найр
- Управляющий издания продукта
- Миита Рэйджэйни
- Старший редактор разработки содержимого
- Саяли Пингале
- Технический редактор
- Шрутхи Шетти
- Литературный редактор
- Safis Editing
- Координатор проекта
- Нейл Дмелло
- Корректор
- Safis Editing
- Составитель указателя
- Химанджини Бейри
- Координатор по маркетингу
- Нимиша Дуа
- Старший координатор по маркетингу
- Санджана Гупта
Как всегда, моей жене Дипти за поддержку и мотивацию. Моему сыну Абхаю за то, что он позволил мне не уделять время игре с ним, чтобы написать эту книгу. Моим родителям и всегда поддерживающим друзьям за их мотивацию и помощь.
Гиниш Мэйдаппэйрамбат
Гиниш Мэйдаппэйрамбат обладает более чем 15-летним опытом управления ИТ-услугами и консультирования, а также навыками планирования, развёртывания и поддержки проектов на базе Linux.
Он проектировал, разрабатывал и внедрял решения по автоматизации на основе Ansible и Ansible Automation Platform (ранее Ansible Tower) для построения "голых" и виртуальных серверов, установки исправлений, управления контейнерами, работы с сетевой средой и персонального мониторинга. Гиниш координирует, проектирует и развёртывает серверы в центрах обработки данных по всему миру и имеет межэтнический опыт работы в классическом, частном облаке (OpenStack и VMware) и в общедоступных облачных средах (AWS, Azure и Google Cloud Platform).
Гиниш выполнял множество ролей, таких как системный инженер, специалист по автоматизации, дизайнер инфраструктуры и автор содержимого. Основное внимание он уделяет автоматизации ИТ и приложений с применением Ansible, контейнеризации с использованием OpenShift (и Kubernetes) и автоматизации инфраструктуры при помощи Terraform.
Виджай Джадхав — архитектор решений из Мумбаи, Индия, с более чем двадцатилетним опытом работы на различных должностях в ИТ-индустрии. Последние 10 лет он работал в качестве малого и среднего бизнеса в сфере облачных вычислений, разрабатывая облачные приложения с применением архитектуры на основе микрослужб, а также автоматизируя предоставление и отмену предоставления облачных ресурсов при помощи инструментов IaaC, таких как Ansible и Terraform. В настоящее время он работает облачным архитектором в Cisco, продвигая инновации и внедряя технологии нового поколения.
Виджай — муж и отец 8-летнего сына. Свободное время (если такое вообще существует) он проводит за просмотром популярных фильмов и веб-сериалов на платформах OTT.
Шон Кавано — старший главный управляющий по техническому маркетингу Red Hat Ansible Automation Platform, где он обладает более чем 12-летним опытом построения и автоматизации компьютерных сетей. Ранее Шон работал как в Cumulus Networks (приобретённой Nvidia), так и в Cisco Systems, где помогал клиентам развёртывать, управлять и автоматизировать их сетевые инфраструктуры. Он проживает в Чапел-Хилл, Северная Каролина, со своей женой и детьми и твитами от @IpvSean.
Я бы хотел поблагодарить свою жену, которая действительно является моим партнёром. У неё есть собственные карьера и объём работы вне ИТ-индустрии, но она всегда стремится помочь мне добиться успеха во всех моих начинаниях. У меня была действительно захватывающая карьера, я работал с очень умными людьми, которые постоянно бросают мне вызов и делают меня лучше. Спасибо всем моим бывшим и настоящим коллегам, которые помогали мне на моем пути.
Шриджит Анужан — специалист по облачным технологиям с более чем 15-летним опытом работы с решениями для локальных центров обработки данных и 10-летним опытом работы с поставщиками общедоступных облачных служб. Ему нравится работать с клиентами над их планами поддержки, чтобы повысить квалификацию технической команды по контейнерам и инструментам автоматизации. В своей нынешней роли главного инструктора в Red Hat Шриджит отвечает за разработку и проведение индивидуальных и специализированных технологических курсов и семинаров для стратегических клиентов в Азиатско-Тихоокеанском регионе.
Я хотел бы выразить свою благодарность общественным волонтёрам свободно распространяемого программного обеспечения и открытого исходного кода, которые до сих пор помогали мне в моём путешествии. Чувство сотрудничества и свободный вклад — две ценности, которые заставляют меня дорожить тем, что я являюсь частью этих сообществ. Огромное спасибо моей семье, особенно моей жене за то, что она поддерживала наших детей, пока я путешествовал по Азиатско-Тихоокеанскому региону в связи со своими профессиональными обязанностями!
Автоматизация выполняет ключевую роль в модернизации ИТ, а применение верного инструмента автоматизации для организаций является важным шагом на пути к самой автоматизации. Ansible — это программное обеспечение для автоматизации с открытым исходным кодом, которое можно применять для автоматизации большинства операций с компонентами ИТ-инфраструктуры и приложений, включая серверы, хранилища, сетевые среды и платформы приложений. На данный момент Ansible является одним из самых известных инструментов автоматизации с открытым исходным кодом в мире ИТ и обладает сильной поддержкой сообщества с более чем 5000 активных участников по всему миру.
Ansible — это не технология обучения через чтение. Данная книга поможет вам понять и применять на практике возможности автоматизации Ansible с помощью реальных плейбуков, конфигураций и практических примеров. Это поможет вам разобраться с основами автоматизации Ansible и постепенно вы научитесь использовать Ansible для автоматизации своих повседневных задач.
Вы изучите реальные примеры применения автоматизации ИТ на практических образцах, таких как простые системные отчёты, сканирование системы безопасности и еженедельная перезагрузка компьютеров Linux. После этого книга научит вас, как реализовать совместную работу в автоматизации Ansible и как автоматизировать прочие устройства и платформы, такие как Microsoft Windows, сетевые устройства, VMware, AWS и GCP. Вы также ознакомитесь с тем, как использовать Ansible в рабочем процессе DevOps с интеграцией Jenkins и управлением контейнерами и приложениями в Kubernetes. Чтобы ещё больше расширить ваши знания об автоматизации предприятия, книга также расскажет вам о Red Hat Ansible Automation Platform, управлении секретами и интеграцией Ansible с прочими инструментами, такими как Jira и ServiceNow. В этой книге имеются главы, посвящённые автоматизации не поддерживаемых устройств и платформ с помощью необработанных команд и вызовов API через Ansible. Прежде чем книга достигнет своего конца, вы также изучите наилучшие практические приёмы Ansible для хранения сведений об управляемых узлах, переменных, учётных данных и сборников сценариев для производственных сред.
По завершению Ansible для практической автоматизации
вы получите
навыки поиска сценариев применения автоматизации в вашей рабочей среде, а также для разработки и развёртывания решений
автоматизации при помощи Ansible.
Данная книга предназначена для системных инженеров и инженеров DevOps, которые хотят пользоваться Ansible в качестве инструмента автоматизации. Книга содержит ссылки и практические примеры для начала автоматизации ИТ в вашей рабочей среде.
Глава 1. Автоматизация Ansible - введение снабжает вас введением в Ansible и обучает вас как устанавливать и настраивать Ansible, а также конфигурировать управляемые узлы.
Глава 2. Начинаем с простой автоматизации обучает вас тому как выявлять выполняемые вручную задачи под автоматизацию, находить подходящие модули Ansible и применять текстовый редактор для Ansible.
Глава 3. Автоматизация ваших ежедневных заданий это глава, в которой вы начнёте разрабатывать плейбуки Ansible для вариантов реального применения, например, сбор системных сведений, перезапуск систем, а также сканирование безопасности. Вы также обучитесь тому что такое подборки Ansible, секреты Ansible и уведомления автоматизации.
Глава 4. Изучение сотрудничества в области автоматизации научит вас важности контроля версии в автоматизации ИТ и наилучшим практическим приёмам использования управления контроля исходного кода для хранения артефактов Ansible.
Глава 5. Расширение вашего ландшафта автоматизации охватывает методы поиска вариантов применения автоматизации в вашем рабочем пространстве а также проверки осуществимости автоматизации. Эта глава также обучит вас тому как применять в Ansible динамическую инвентаризацию.
Глава 6. Автоматизация Microsoft Windows и сетевых устройств в которой вы обнаружите возможности автоматизации Microsoft Windows и сетевых устройств с применением Ansible. Данная глава охватывает практические примеры автоматизации Windows, сбор фактов VyOS и создание списка контроля доступом (ACL) в устройствах ASA Cisco.
Глава 7. Управление вашими виртуализацией и облачными платформами обучит вас IaC ( Infrastructure as Code, Инфраструктуре в качестве кода) и методам применения Ansible в качестве инструментария IaC на практических примерах управления платформами VMware, AWS и GCP.
Глава 8. Помогаем с автоматизацией команде баз данных охватывает введение в операции баз данных, такие как установка сервера баз данных и создание баз данных, таблиц и пользователей баз данных.
Глава 9. Реализация автоматизации в рабочем потоке DevOps в которой вы получите введение в DevOps и использование Ansible в рабочем потоке DevOps, причём с практическими примерами для снижения времени разработки и управления балансировкой нагрузки приложения, а также накатом обновлений. Данная глава также охватывает то как интегрировать Ansible с Terraform.
Глава 10. Управление контейнерами с применением Ansible продолжит рассмотрение Ansible и DevOps охватывая методы управления контейнерными приложениями при помощи Ansible. Данная глава охватывает такие практические варианты применения как развёртывание хостов контейнеров с применением конвейеров CI/CD в Ansible, сборки контейнеров и управления приложениями со множеством контейнеров.
Глава 11. Управление Kubernetes при помощи Ansible переходит к большему числу вариантов использования на основе контейнеров с неким введением в Kubernetes и сам метод управления кластерами и приложениями Kubernetes пр помощи Ansible. Данная глава обучит вас тому как развёртывать, управлять и масштабировать контейнерные приложения в вашей платформе Kubernetes.
Глава 12. Интегрируем Ansible с вашими инструментами охватывает введение в инструментарий корпоративной автоматизации AAP (Ansible Automation Platform, Платформу автоматизации Ansible) Red Hat. Данная глава обучит вас методам применения AAP для автоматизации на практических примерах, таких как управление базами данных, интеграция с Jenkins, а также уведомлениями Slack.
Глава 13. Применяем Ansible для управления секретами поясняет методы обработки чувствительных данных при автоматизации с использованием Vault Ansible и то, как использовать зашифрованные данные в плейбуках Ansible.
Глава 14. Придерживаемся простой и действенной автоматизации обучит вас опросным формам в контроллере автоматизации и шаблонах заданий рабочего потока Ansible. Данная глава также охватывает автоматизацию безопасности и интеграцию Ansible с инструментами мониторинга.
Глава 15. Автоматизация нестандартных платформ и операций обучит вас автоматизации обращения с не поддерживаемыми платформами пр помощи сырых команд и команд API. Данная глава также обучит вас тому как разрабатывать персональные модули Ansible когда не существует никаких подходящих модулей.
Глава 16. Наилучшие практические приёмы автоматизации Ansible для промышленного применения где вы изучите наилучшие промышленные практические приёмы для Ansible, такие как организация артефактов, описей и переменных Ansible. Эта глава также охватывает наилучшие практические приёмы управления полномочиями и разработкой плейбуков.
В этой книге я вначале научу поруковожу вами в установке и разработке инструментами автоматизации Ansible, а после этого поясню некоторые варианты применения и методы реального ИТ применения Ansible для автоматизации подобных операций. Поскольку основная направленность данной книги состоит в различных вариантах применения автоматизации, некоторые из имеющихся глав обладают дополнительными техническими требованиями, например, базовыми знаниями конкретной технологии или доступом к лабораторной среде (скажем, к кластеру Kubernetes). Для этого я также рассматриваю те методы, которые подгонят соответствующую среду разработки если вы пожелает попрактиковаться. Всегда обращайтесь к документации Ansible и прочим предоставляемым в последующих главах ссылкам для последующего обучения.
Рассматриваемое в этой книге программное/аппаратное обеспечение | Требования к операционной системе |
---|---|
Ansible 2.9 |
Red Hat Enterprise Linux 8 (RHEL8) |
ansible-core 2.11 и последующие |
Microsoft Windows 2019 (для вариантом использования Windows) |
Red Hat Ansible Autumation Platform 2.1 |
VyOS (для вариантов применения сетевой автоматизации |
Для тестирования и разработки вы можете получать бесплатные подписки RHEL. Также можно заменять RHEL8 прочими операционными системами , такими как Fedora, CentOS или Ubuntu, однако вам может потребоваться некая регулировка части команд и модулей в своём плейбуке.
Если вы применяете цифровую версию данной книги, мы предлагаем вам набирать любой код этой книги или параметры настройки самостоятельно или получать доступ к такому коду через репозиторий GitHub (ссылка на него доступна в нашем следующем разделе). Следование этому поможет вам избежать любых потенциальных ошибок, связанных с копированием и вставкой для читающих PDF или электронную книгу {Прим. пер.: в своём переводе мы постарались проверять и это.}
Вы можете выгрузит все файлы примеров кода для данной книги с GitHub. По мере появления новых обновлений кода он будет изменяться в имеющемся репозитории GitHub. Вы можете указывать на любые проблемы или спорные вопросы в имеющихся образцах кода и представлять на рассмотрение любые относящиеся к данной книге вопросы поднимая билеты проблем в данном репозитории GitHub.
У нас также имеются и прочие пакеты кодов из нашего богатого каталога книг и видео доступных по этому адресу. Проверьте и его!
Помимо всего прочего мы также предоставляем некий файл PDF, который содержит цветные изображения снимков экранов/ схем, применяющихся в данной книге. Вы можете получить их здесь.
На протяжении этой книги имеется ряд соглашений о применении текста в книге.
CodeInText
: указывают на кодовые слова в тексте, имена таблиц базы данных,
имена папок, имена файлов, модели URL-адресов, ввод пользователя, и обработчики Twitter. Вот некий образец:
"Настройка переменной среды KUBECONFIG
в качестве нашего имени файла
kubeconfig
отличается (home/ansible/.kube/minikube-config
)
от имени файла по умолчанию (/home/ansible/.kube/config
)".
Блок кода установлен так:
[ansible@ansible Chapter-11]$ export KUBECONFIG=$KUBECONFIG:/home/ansible/.kube/minikube-config
Жирно: выделяются новые термины и важные слова или слова, которые вы видите на экране. Например, слова в меню или блоках диалогов появляются в тексте Жирно. Вот некий образец: "ЭОбновите свой шаблон задания и добавьте новые полномочия vault пройдя в Job Template | Edit и затем кликнув по кнопке рядом с Credential".
![]() | Замечание |
---|---|
Предостережения или важные замечания появляются в блоках подобных этому. |
![]() | Совет |
---|---|
Советы и ловкие приёмы возникают таким образом. |
Обращения наших читателей всегда приветствуются. Дайте нам знать что вы думаете об этой книге - что вам нравится или не нравится. Обратная связь с читателями важна нам, так как помогает нам разрабатывать издания, от которых вы на самом деле получите максимальную пользу.
Для отправки обычного отклика просто пошлите электронное письмо на адрес feedback@packtpub.com с упоминанием заголовка книги в теме вашего сообщения.
Если у вас существует тема, в которой у вас имеется опыт и вы заинтересованы либо в написании, либо во вкладе в книгу, обратитесь к руководству по адресу www.packtpub.com/authors.
Теперь, когда вы являетесь гордым владельцем книги Packt, у нас есть целый ряд моментов для помощи вам в получении максимальной выгоды от вашей покупки.
Хотя мы и предприняли все меры чтобы обеспечить точность нашего содержимого, ошибки всё- таки возможны. Если вы обнаружили ошибку в нашей книге - возможно, ошибку в тексте или в коде - мы будем признательны если вы сообщите об этом нам. Сделав это, вы можете предостеречь остальных читателей от разочарования и помочь нам улучшить последующие версии данной книги. Если вы обнаружили ошибку, пожалуйста, сообщите о ней посетив www.packtpub.com/submit-errata, выбрав вашу книгу, кликнув на ссылку Errata Submission Form, и заполнив подробности найденной вами ошибки. Когда ваша ошибка будет проверена, вы получите уведомление и ошибка будет выложена на наш веб- сайт или добавлена в какой- нибудь перечень существующих ошибок с заголовком раздела Errata.
Для просмотра ранее выявленных ошибок посетите www.packtpub.com/books/content/support и введите название нужной книги в поле поиска. Необходимая информация появится в разделе Errata.
Пиратство, защищённых авторским правом материалов в Интернете является постоянной проблемой во всех средствах массовой информации. В Packt мы подходим к защите наших авторских прав и лицензий очень серьёзно. Если вы столкнётесь с какой-либо незаконной копией наших работ в любой форме в Интернете, пожалуйста, предоставьте нам сразу адрес местонахождения или имя веб-сайта, чтобы мы могли принять меры. {Прим. пер.: Согласно закону об авторском праве РФ, авторские права на перевод принадлежат авторам этого перевода. Данным переводом, по нашему мнению, мы служим популяризации основных стратегических направлений развития тем Packt. В случае наличия конструктивных предложений, готовы к тесному сотрудничеству.}
Пожалуйста, обратитесь по адресу copyright@packtpub.com со ссылкой на материалы содержащие признаки нарушения авторских прав.
Мы выражаем вам признательность в защите наших авторов и нашей возможности доносить до вас имеющего ценность содержимого.
Если у вас есть проблемы по любым сторонам данной книги, вы можете контактировать с нами по адресу questions@packtpub.com и мы предпримем все меры в отношении ваших проблем.
- Предисловие
- Раздел 1. Применение Ansible в качестве вашего инструментария автоматизации
- Глава 1. Автоматизация Ansible - введение
- Глава 2. Начинаем с простой автоматизации
- Глава 3. Автоматизация ваших ежедневных заданий
- Глава 4. Изучение сотрудничества в области автоматизации
- Раздел 2. Поиск вариантов применения и интеграции
- Глава 5. Расширение вашего ландшафта автоматизации
- Глава 6. Автоматизация Microsoft Windows и сетевых устройств
- Технические требования
- Методы удалённого подключения Ansible
- Автоматизация серверов Microsoft Windows при помощи Ansible
- Поддерживаемые операционные системы Microsoft Windows
- Автоматизация Microsoft Windows - предварительные требования к узлу управления Ansible
- Автоматизация Microsoft Windows - предварительные требования к управляемым узлам Ansible
- Настройка учётной записи пользователя и WinRM в машине Microsoft Windows
- Настройка Ansible для доступа к машине Microsoft Windows
- Автоматизация Microsoft Windows - применение Ansible для создания пользователя Windows
- Введение а автоматизацию сетевой среды
- Получаемые с применением Ansible сведения VyOS
- Создание записей ACL в ASA устройстве Cisco
- Выводы
- Дальнейшее чтение
- Глава 7. Управление вашими виртуализацией и облачными платформами
- Глава 8. Помогаем с автоматизацией команде баз данных
- Глава 9. Реализация автоматизации в рабочем потоке DevOps
- Глава 10. Управление контейнерами с применением Ansible
- Глава 11. Управление Kubernetes при помощи Ansible
- Глава 12. Интегрируем Ansible с вашими инструментами
- Глава 13. Применяем Ansible для управления секретами
- Раздел 3. Управление процессом разработки автоматизации с применением наилучших практик
- Глава 14. Придерживаемся простой и действенной автоматизации
- Глава 15. Автоматизация нестандартных платформ и операций
- Глава 16. Наилучшие практические приёмы автоматизации Ansible для промышленного применения
- Технические требования
- Организация содержимого автоматизации Ansible
- Сохранение сведений удалённого хоста - наилучшие практики описей
- Переменные и групповые переменные Ansible
- Практические приёмы полномочий Ansible
- Практические приёмы плейбуков Ansible
- Всегда именуйте свои задачи
- Пользуйтесь надлежащими комментариями
- Дополнительные строки и пробелы
- Добавляйте теги в задачи
- Пользуйтесь объявлениями в явном виде
- Применяйте для плейбуков естественный YAML
- Избегайте жёстко кодированных переменных и подробностей
- В плейбуках Ansible пользуйтесь блоками
- Применяйте роли и подзадачи
- Применяйте для переменных несущие смысловую нагрузку имена
- Изучайте оптимизацию плейбуков
- Выводы
- Дальнейшее чтение
- Указатель