Контейнеризация с применением Ansible 2.
Copyright © 2017 Packt Publishing
![]() |
Данный документ предоставляется по лицензии Creative Commons Attribution 3.0 License, за исключением разделов со специальными оговорками. |
Первая публикация на английском языке: ноябрь 2017
Ссылка на продукт: 1051217
Все права защищены. Никакая часть этой книги не может быть воспроизведена, сохранена в поисковой системе или передана в любой форме или любыми средствами без предварительного письменного разрешения издателя, за исключением случаев кратких цитат, встроенных в критические статьи и обзоры.
При подготовке этой книги были предприняты все усилия чтобы гарантировать точность представленной информации. Тем не менее, информация, содержащаяся в этой книге, продаётся без гарантии в явном или неявном виде. Ни авторы, ни Packt Publishing, ни их дилеры и дистрибьюторы не будут нести ответственность за любые убытки, вызванные или предположительно вызванные прямо или косвенно этой книгой.
Packt Publishing пыталась предоставить информацию о товарных знаках обо всех компаниях и продуктов, упомянутых в данной книге для надлежащего использования капиталов. Тем не менее, Packt Publishing не может гарантировать точность этой информации.
Опубликовано Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK
ISBN 978-1-78829-191-0
2018-01-15
- Автор
- Эйрик Ренцо
- Рецензент
- Микаэль Брайт
- Редактор выпуска
- Вихин Борича
- Редактор
- Херамб Бхавсар
- Редактор разработки содержания
- Дивайка Баттайк
- Технический редактор
- Прачи Савант
- Литературный редактор
- Safis Editing
- Координатор проекта
- Джуди Джоус
- Корректор
- Safis Editing
- Составитель указателя
- Техал Дарувейл Сони
- Графика
- Таня Дутта
- Координатор производства
- Мелвин Дса
- Изготовитель переплета
- Шантану Н. Загаде
Эйрик Ренцо
- Предисловие
- Глава 1. Построение контейнеров с помощью Docker
- Глава 2. Работа с контейнером Ansible
- Глава 3. Ваш первый проект контейнеров Ansible
- Глава 4. Что такое роль?
- Индивидуализация ролей при помощи контейнеров Ansible
- Краткий обзор MariaDB
- Установка роли контейнера Ansible
- Выводы
- Глава 5. Контейнеры в масштабе с применением Kubernetes
- Глава 6. Управление контейнерами с применением OpenShift
- Глава 7. Развёртывание вашего первого проекта
- Глава 8. Построение и развёртывание проекта со множеством контейнеров
- Глава 9. Продолжим работу с контейнерами Ansible
- Хитрости написания приложений ролей и контейнеров
- Построение мощных плейбуков оснащения с применением ядра Ansible
- Поиск неисправностей контейнерных приложений
- Создание конвейера построения с применением Jenkins или TravisCI
- Совместное использование ролей и приложений в GitHub и Galaxy Ansible
- Применяем контейнеры везде!
- Выводы
- Указатель
На протяжении последних нескольких лет мир ИТ увидел кардинальный сдвиг в способах того как разрабатываются и развёртываются программные приложения. Восход автоматизации, облачных вычислений и виртуализации основополагающим образом подвинул представления о том, как системные администраторы, разработчики программных средств и организации рассматривают инфраструктуру целиком и управляют ею. Всего несколько лет назад для многих в ИТ индустрии представлялось невероятным позволить критически важным приложениям исполняться за пределами стен их корпоративного центра обработки данных. Однако в наши дни имеется множество организаций, которые уже перенесли инфраструктуру в облачные службы, такие как AWS, Azure и Google Compute в усилиях сберечь время и отсечь стоимость накладных расходов, связанных с работой физической инфраструктуры. Абстрагируясь от оборудования компании могут сосредоточиться на том, что на самом деле имеет значение - программных приложениях, которые обслуживают их пользователей.
Следующая приливная волна внутри сферы ИТ формально получила начало в 2013 с первоначальным выпуском механизма контейнеров Docker. Docker позволил пользователям легко упаковывать программное обеспечение в небольшие, повторно используемые исполнения сред, именуемые контейнерами, которые получили усиление функциональности в имеющемся ядре Linux при помощи применения LXC (контейнеров Linux). Применяя Docker, разработчики могут создавать приложения микрослужб, которые могут быстро строиться и с гарантией работать в любой среде, а также получать преимущества повторного применения эталонов служб (образов контейнеров), которые могут управляться версиями. По мере того, как всё больше и больше пользователей приспосабливаются к рабочим потокам контейнеров, начинают появляться зазоры в исполнении. Хотя Docker был великолепен в построении и исполнении контейнеров, он борется за то, чтобы быть реальным повсеместным решением для всего жизненного цикла контейнеров.
Проект контейнеров Ansible был разработан для привнесения всей мощности управления настройкой и платформы автоматизации Ansible в мир контейнеров. Контейнеры Ansible пробрасывают мост через имеющийся зазор управления жизненным циклом контейнера позволяя конвейерам построения и развёртывания контейнеров общаться на языке Ansible. Применяя контейнеры Ansible вы можете воспользоваться всей мощью языка управления настройки Ansible не только для построения контейнеров, но также для полномасштабного развёртывания приложений в удалённых серверах и облачных платформах.
Данная книга послужит руководством для работы с конкретным проектом контейнеров Ansible. Моей целью к концу книги является именно то, чтобы вы имели твёрдое понимание того, как работают контейнеры Ansible и как применять всю мощь множества их возможностей для построения надёжного стека программных контейнеров начиная с разработки на всём пути до полного промышленного внедрения.
Глава 1. Построение контейнеров с помощью Docker Вводит читателя в курс того, что такое Docker, как он работает и основы применения Dockerfiles и Docker Compose. Эта глава закладывает основные фундаментальные понятия для начала изучения того как применять контейнеры Ansible.
Глава 2. Работа с контейнером Ansible изучает рабочий поток контейнера Ansible. Эта глава знакомит читателя с ядром понятий контейнеров Ansible, таких как построение (build), исполнение (run) и удаление (destory).
Глава 3. Ваш первый проект контейнеров Ansible снабжает пользователя опытом построения простого проекта контейнеров Ansible с применением роли сообщества, доступной в Galaxy Ansible.
Глава 4. Что такое роль? даёт пользователю представление о как писать индивидуальные управляемые контейнером роли для их использования в контейнерах Ansible. Всеобъемлющей целью данной главы является написание такой роли, которая построит полностью функционирующий образ контейнера MariaDB в рабочей области. К окончанию данной главы пользователь должен иметь основные навыки написания плейбуков Ansible с применением надлежащего стиля и синтаксиса.
Глава 5. Контейнеры в масштабе с применением Kubernetes предоставляет пользователю обзор платформы Kubernetes и основы её функциональности. В этой главе пользователь получит возможность создать кластер Kubernetes со множеством узлов в Облаке Google и исполнять контейнеры внутри него.
Глава 6. Управление контейнерами с применением OpenShift вводит читателя в платформу Redhat OpenShift. Данная глава снабдит пользователя теми шагами, которые необходимы для развёртывания локального кластера OpenShift при помощи Minishift и исполнять в нём контейнерные рабочие нагрузки. Эта глава также взглянет на имеющиеся ключевые отличия между Kubernetes и OpenShift, даже несмотря на то, что сами их архитектуры и основы схожи.
Глава 7. Развёртывание вашего первого проекта заглянет вглубь окончательной команды рабочего потока контейнеров Ansible - deploy. Применяя deploy читатель получит из первых рук опыт развёртывания предварительно построенных проектов в Kubernetes и OpenShift с применением контейнеров Ansible в качестве повсеместного инструментария рабочего потока.
Глава 8. Построение и развёртывание проекта со множеством контейнеров рассматривает как могут применяться контейнеры Ansible для некоторого проекта, который получает преимущества применения более чем одного контейнеров. Для полного понимания этой темы критически важным является введение в сетевые среды контейнеров и настройка контейнеров для доступа к сетевым ресурсам. Данная глава даст читателю возможность построить и развернуть проект множества контейнеров с применением контейнеров Django, Gulp, NGINX и PostgreSQL.
Глава 9. Продолжим работу с контейнерами Ansible предоставит читатель некую идею последующих шагов, которые следует предпринять далее после освоения рабочего потока контейнеров Ansible целиком. Изучаемые в данной главе темы содержат интеграцию контейнеров Ansible с инструментами CCID, а также совместное применение проектов в Galaxy Ansible.
Данная книга предполагает наличие от начального до среднего опыта работы с операционной системой Linux, развёртывания приложений и управления серверами. Данная книга проведёт вас через этапы необходимые для возведения среды полностью работающей лаборатории в вашем локальном ноутбуке для её быстрого поднятия и исполнения при помощи окружений Virtualbox и Vagrant. Прежде чем начать, вам будет полезно получить установленными на вашем компьютере клиентов командной строки Virtualbox, Vagrant и Git. Для исполнения данной среды в её полной спецификации необходимо выполнить или превзойти следующие требования к системе:
-
ЦПУ с двумя ядрами (Intel i5 Core или эквивалент)
-
Оперативная память: 8 ГБ
-
Дисковое пространство: 80 ГБ
Для данной книги нам понадобится следующий перечень программных средств:
-
VirtualBox 5.1 или выше
-
Vagrant 1.9.1 или выше
-
Текстовый редактор, для изменения файлов YAML (предпочтительны Atom GitHub или VIM)
Для установки всех этих пакетов понадобится соединение c Интернетом:
Эта книга тем, кто в настоящее время работает в качестве системного администраторов, инженеров DevOps, технических архитекторов систем (или аналогичных ролей) для быстрого поднятия и исполнения рабочего потока контейнеров Ansible. Также будет полезным, если такой читатель уже имеет базовые понятия о Docker, Ansible или прочих средствах, связанных с автоматизацией платформ прежде чем он приступит к чтению данной книги, хотя это и не обязательно. Я надеюсь, что всякий пользователь получит прочное понимание этих основ в процессе чтения данной книги. Окончательной целью является помочь читателю получить солидную основу в том, как контейнеры Ansible могут ускорять построение, исполнение, тестирование и развёртывание контейнерных приложений в диапазоне сред от окружений разработки до промышленных.
В данной книге вы найдёте ряд текстовых стилей, которые делают разницу между различными видами информации. Здесь мы приводим некоторые примеры этих стилей и объяснение их назначения.
Кодовые слова в тексте, имена таблиц базы данных, имена папок, имена файлов, расширения файлов,
имена путей, модели URL-адресов, ввод пользователя, и регулировки Twitter представлены следующим образом:
"Мы можем включать другие содержания при помощи директивы
include
".
Блок кода устанавливается следующим образом:
---
- name: Create User Account
user:
name: MyUser
state: present
- name: Install Vim text editor
apt:
name: vim
state: present
Любой ввод командной строки или её вывод записываются следующим образом:
ubuntu@node01:/tmp$ ansible-galaxy init MyRole --container-enabled
- MyRole was created successfully
Новые термины и важные слова отображаются жирным шрифтом. Слова, которые вы видите на экране, например, в меню или блоках диалогов появляются в тексте следующим образом: "Кликнув по кнопке Next вы переместитесь на следующий экран".
![]() | Замечание |
---|---|
Предостережения или важные замечания появляются в блоках подобных этому. |
![]() | Совет |
---|---|
Советы и ловкие приёмы возникают таким образом. |
Обращения наших читателей всегда приветствуются. Дайте нам знать что вы думаете об этой книге - что вам нравится или не нравится. Обратная связь с читателями важна нам, так как помогает нам разрабатывать издания, от которых вы на самом деле получите максимальную пользу.
Для отправки обычного отклика просто пошлите электронное письмо на адрес feedback@packtpub.com с упоминанием заголовка книги в теме вашего сообщения.
Если у вас существует тема, в которой у вас имеется опыт и вы заинтересованы либо в написании, либо во вкладе в книгу, обратитесь к руководству по адресу www.packtpub.com/authors.
Теперь, когда вы являетесь гордым владельцем книги Packt, у нас есть целый ряд моментов для помощи вам в получении максимальной выгоды от вашей покупки.
Мы дополнительно снабжаем вас файлом PDF, который содержит цветные изображения экранных снимков/ схем, использованных в данной книге. Цветные изображения помогут вам лучше понять изменения в выводе. Вы можете загрузить этот файл по адресу: https://www.packtpub.com/sites/default/files/downloads/ContainerizationwithAnsible2_ColorImages.pdf.
Хотя мы и предприняли все меры чтобы обеспечить точность нашего содержимого, ошибки всё- таки возможны. Если вы обнаружили ошибку в нашей книге - возможно, ошибку в тексте или в коде - мы будем признательны если вы сообщите об этом нам. Сделав это, вы можете предостеречь остальных читателей от разочарования и помочь нам улучшить последующие версии данной книги. Если вы обнаружили ошибку, пожалуйста, сообщите о ней посетив www.packtpub.com/submit-errata, выбрав вашу книгу, кликнув на ссылку Errata Submission Form, и заполнив подробности найденной вами ошибки. Когда ваша ошибка будет проверена, вы получите уведомление и ошибка будет выложена на наш веб- сайт или добавлена в какой- нибудь перечень существующих ошибок с заголовком раздела Errata.
Для просмотра ранее выявленных ошибок посетите www.packtpub.com/books/content/support и введите название нужной книги в поле поиска. Необходимая информация появится в разделе Errata.
Пиратство, защищённых авторским правом материалов в Интернете является постоянной проблемой во всех средствах массовой информации. В Packt мы подходим к защите наших авторских прав и лицензий очень серьёзно. Если вы столкнётесь с какой-либо незаконной копией наших работ в любой форме в Интернете, пожалуйста, предоставьте нам сразу адрес местонахождения или имя веб-сайта, чтобы мы могли принять меры. {Прим. пер.: Согласно закону об авторском праве РФ, авторские права на перевод принадлежат авторам этого перевода. Данным переводом, по нашему мнению, мы служим популяризации основных стратегических направлений развития тем Packt. В случае наличия конструктивных предложений, готовы к тесному сотрудничеству.}
Пожалуйста, обратитесь по адресу copyright@packtpub.com со ссылкой на материалы содержащие признаки нарушения авторских прав.
Мы выражаем вам признательность в защите наших авторов и нашей возможности доносить до вас имеющего ценность содержимого.
Если у вас есть проблемы по любым сторонам данной книги, вы можете контактировать с нами по адресу questions@packtpub.com и мы предпримем все меры в отношении ваших проблем.