Запускаем Ansible
sku: 48477494
1,388.00 грн.
Shipping from: Ukraine
Description
[html]Среди множества систем управления конфигурациями Ansible обладает неоспоримыми преимуществами. Он минималистичен, не требует установки программного обеспечения на узлах, а также легок в освоении.Второе издание книги "Запускаем Ansible" научит вас выстраивать продуктивную работу в кратчайшие сроки, будь вы разработчик, разворачивающий код в производственной среде, или системный администратор в поисках более эффективного решения для автоматизации.Авторы книги расскажут вам, как написать сценарий (скрипт управления конфигурациями Ansible), установить контроль над удаленными серверами, а также задействовать мощный функционал встроенных декларативных модулей. Вы поймете, что Ansible обладает всеми функциональными возможностями, которые вам необходимы, и той простотой, о которой вы мечтаете.- Узнайте, чем Ansible отличается от других систем управления конфигурациями- Используйте формат файлов YAML для написания собственных сценариев- Изучите пример полного сценария для развертывания нетривиального приложения- Администрируйте машины Windows и автоматизируйте конфигурацию сетевых устройств- Производите развертывание приложений на Amazon EC2 и других облачных платформах- Используйте Ansible для создания образов Docker и развертывания контейнеров DockerОтзыв эксперта:«Я запоем прочитал рукопись первого издания книги за несколько часов. Лорин создал нечто невероятное, продемонстрировав Ansible со всех сторон. Я очень обрадовался, узнав, что он решил объединить свои усилия с Рене для работы над вторым изданием. Авторы проделали выдающуюся работу, показав как эффективно использовать необычайно полезный инструмент. По моему мнению, никто бы не смог справиться с этой задачей на столь же глубоком уровне».- Жан-Пит Менс (Jan-Piet Mens), консультантСодержание книги "Запускаем Ansible"Предисловие.........................................................................................................16Предисловие ко второму изданию.....................................................................18Предисловие к первому изданию.......................................................................20Глава 1. Введение.................................................................................................23Примечание о версиях..........................................................................................24Ansible: область применения................................................................................24Как работает Ansible .............................................................................................25Какие преимущества дает Ansible?......................................................................26Простота синтаксиса.........................................................................................27Отсутствие необходимости установки на удаленных хостах.........................27Основан на технологии принудительной настройки.....................................27Управление небольшим числом серверов.......................................................28Встроенные модули...........................................................................................28Очень тонкий слой абстракции........................................................................29Не слишком ли проста система Ansible? .............................................................30Что я должен знать?...............................................................................................31О чем не рассказывается в этой книге.................................................................31Установка Ansible...................................................................................................32Подготовка сервера для экспериментов..............................................................33Использование Vagrant для подготовки сервера.............................................33Передача информации о сервере в Ansible.....................................................36Упрощение задачи с помощью файла ansible.cfg............................................37Что дальше.............................................................................................................40Глава 2. Сценарии: начало...................................................................................41Подготовка.............................................................................................................41Очень простой сценарий......................................................................................42Файл конфигурации Nginx................................................................................44Создание начальной страницы........................................................................44Создание группы веб-серверов .......................................................................45Запуск сценария....................................................................................................45Сценарии пишутся на YAML.................................................................................47Начало файла.....................................................................................................47Комментарии.....................................................................................................47Строки................................................................................................................47Булевы выражения............................................................................................47Списки................................................................................................................48Словари..............................................................................................................48Объединение строк...........................................................................................49Структура сценария...............................................................................................49Операции...........................................................................................................50Задачи.................................................................................................................52Модули................................................................................................................53Резюме................................................................................................................54Есть изменения? Отслеживание состояния хоста...............................................54Становимся знатоками: поддержка TLS .............................................................55Создание сертификата TLS...............................................................................56Переменные.......................................................................................................56Создание шаблона с конфигурацией Nginx.....................................................58Обработчики......................................................................................................59Запуск сценария................................................................................................60Глава 3. Реестр: описание серверов...................................................................63Файл реестра .........................................................................................................63Вводная часть: несколько машин Vagrant ...........................................................64Поведенческие параметры хостов в реестре.......................................................67ansible_connection..............................................................................................67ansible_shell_type................................................................................................67ansible_python_interpreter.................................................................................68ansible_*_interpreter...........................................................................................68Переопределение поведенческих параметров по умолчанию......................68Группы, группы и еще раз группы........................................................................68Пример: развертывание приложения Django..................................................70Псевдонимы и порты........................................................................................72Группировка групп............................................................................................72Имена хостов с номерами (домашние питомцы и стадо)..............................72Переменные хостов и групп: внутренняя сторона реестра................................73Переменные хостов и групп: создание собственных файлов............................75Динамический реестр...........................................................................................76Интерфейс сценария динамического реестра.....................................................77Написание сценария динамического реестра.................................................78Предопределенные сценарии реестра.............................................................81Деление реестра на несколько файлов.................................................................82Добавление элементов во время выполнения с помощью add_hostи group_by...............................................................................................................82add_host..............................................................................................................82group_by..............................................................................................................83Глава 4. Переменные и факты.............................................................................85Определение переменных в сценариях...............................................................85Вывод значений переменных...............................................................................86Регистрация переменных.....................................................................................86Факты......................................................................................................................89Просмотр всех фактов, доступных для сервера...............................................90Вывод подмножества фактов............................................................................91Любой модуль может возвращать факты.........................................................92Локальные факты..............................................................................................93Использование модуля set_fact для задания новой переменной.......................94Встроенные переменные......................................................................................94hostvars...............................................................................................................95inventory_hostname............................................................................................95groups..................................................................................................................96Установка переменных из командной строки....................................................96Приоритет..............................................................................................................97Глава 5. Введение в Mezzanine: тестовое приложение....................................99Почему сложно развертывать приложения в промышленном окружении.......99База данных PostgreSQL..................................................................................103Сервер приложений Gunicorn.........................................................................103Веб-сервер Nginx.............................................................................................104Диспетчер процессов Supervisor....................................................................105Глава 6. Развертывание Mezzanine с помощью Ansible.................................106Вывод списка задач в сценарии.........................................................................106Организация устанавливаемых файлов............................................................107Переменные и скрытые переменные................................................................108Использование цикла (with_items) для установки большогоколичества пакетов.............................................................................................109Добавление выражения become в задачу...........................................................111Обновление кэша диспетчера пакетов apt........................................................111Извлечение проекта из репозитория Git ..........................................................113Установка Mezzanine и других пакетов в virtualenv..........................................115Короткое отступление: составные аргументы задач........................................117Настройка базы данных......................................................................................120Создание файла local_settings.py из шаблона....................................................121Выполнение команд django-manage..................................................................124Запуск своих сценариев на Python в контексте приложения...........................125Настройка конфигурационных файлов служб..............................................127Активация конфигурации Nginx........................................................................130Установка сертификатов TLS..........................................................................130Установка задания cron для Twitter....................................................................131Сценарий целиком..............................................................................................132Запуск сценария на машине Vagrant .................................................................136Устранение проблем............................................................................................136Не получается извлечь файлы из репозитория Git ......................................136Недоступен хост с адресом 192.168.33.10.xip.io............................................137Bad Request (400)..............................................................................................137Установка Mezzanine на нескольких машинах..................................................137Глава 7. Роли: масштабирование сценария.....................................................138Базовая структура роли.......................................................................................138Примеры ролей: database и mezzanine...............................................................139Использование ролей в сценариях.....................................................................139Предварительные и заключительные задачи....................................................140Роль database для развертывания базы данных................................................141Роль mezzanine для развертывания Mezzanine.................................................143Создание файлов и директорий ролей с помощью ansible-galaxy...................148Зависимые роли...................................................................................................148Ansible Galaxy.......................................................................................................149Веб-интерфейс.................................................................................................149Интерфейс командной строки........................................................................150Добавление собственной роли.......................................................................151Глава 8. Сложные сценарии...............................................................................152Команды changed_when и failed_when................................................................152Фильтры...............................................................................................................155Фильтр default..................................................................................................156Фильтры для зарегистрированных переменных..........................................156Фильтры для путей к файлам.........................................................................156Создание собственного фильтра....................................................................157Подстановки.........................................................................................................158file.....................................................................................................................159pipe...................................................................................................................160env.....................................................................................................................160password............................................................................................................160template............................................................................................................161csvfile................................................................................................................161dnstxt ...............................................................................................................162redis_kv..............................................................................................................163etcd....................................................................................................................164Написание собственного плагина..................................................................164Сложные циклы...................................................................................................164with_lines..........................................................................................................165with_fileglob......................................................................................................165with_dict............................................................................................................166Циклические конструкции как плагины подстановок.................................167Управление циклами...........................................................................................167Выбор имени переменной цикла...................................................................167Управление выводом.......................................................................................168Подключение.......................................................................................................169Динамическое подключение..........................................................................170Подключение ролей.........................................................................................171Блоки....................................................................................................................172Обработка ошибок с помощью блоков...............................................................172Шифрование конфиденциальных данных при помощи Vault ........................175Глава 9. Управление хостами, задачами и обработчиками...........................178Шаблоны для выбора хостов...............................................................................178Ограничение обслуживаемых хостов.................................................................179Запуск задачи на управляющей машине...........................................................179Запуск задачи на сторонней машине.................................................................180Последовательное выполнение задачи на хостах по одному..........................180Пакетная обработка хостов.................................................................................182Однократный запуск ..........................................................................................183Стратегии выполнения.......................................................................................183linear.................................................................................................................184free....................................................................................................................185Улучшенные обработчики..................................................................................186Обработчики в pre_tasks и post_tasks.............................................................186Принудительный запуск обработчиков.........................................................187Выполнение обработчиков по событиям......................................................189Сбор фактов вручную..........................................................................................195Получение IP-адреса хоста .................................................................................195Глава 10. Плагины обратного вызова...............................................................197Плагины стандартного вывода...........................................................................197actionable..........................................................................................................198debug.................................................................................................................198dense.................................................................................................................199json....................................................................................................................199minimal.............................................................................................................200oneline..............................................................................................................200selective.............................................................................................................200skippy................................................................................................................200Другие плагины...................................................................................................201foreman.............................................................................................................201hipchat..............................................................................................................202jabber.................................................................................................................202junit...................................................................................................................202log_plays............................................................................................................203logentries..........................................................................................................203logstash.............................................................................................................203mail...................................................................................................................204osx_say..............................................................................................................204profile_tasks......................................................................................................204slack..................................................................................................................205timer......................................................................................................................205Глава 11. Ускорение работы Ansible.................................................................206Мультиплексирование SSH и ControlPersist......................................................206Включение мультиплексирования SSH вручную..........................................207Параметры мультиплексирования SSH в Ansible..........................................208Конвейерный режим...........................................................................................209Включение конвейерного режима.................................................................210Настройка хостов для поддержки конвейерного режима............................210Кэширование фактов ..........................................................................................211Кэширование фактов в файлах JSON.............................................................213Кэширование фактов в Redis..........................................................................213Кэширование фактов в Memcached................................................................214Параллелизм........................................................................................................214Асинхронное выполнение задач с помощью Async..........................................215Глава 12. Собственные модули..........................................................................217Пример: проверка доступности удаленного сервера........................................217Использование модуля script вместо написания своего модуля......................217Где хранить свои модули.....................................................................................218Как Ansible вызывает модули ............................................................................218Генерация автономного сценария на Python с аргументами(только модули на Python)..............................................................................219Копирование модуля на хост..........................................................................219Создание файла с аргументами на хосте (для модулейне на языке Python).........................................................................................219Вызов модуля...................................................................................................219Ожидаемый вывод...............................................................................................220Ожидаемые выходные переменные..............................................................220Реализация модулей на Python ..........................................................................221Анализ аргументов..........................................................................................222Доступ к параметрам......................................................................................223Импортирование вспомогательного класса AnsibleModule.........................223Свойства аргументов.......................................................................................224AnsibleModule: параметры метода инициализатора....................................226Возврат признака успешного завершения или неудачи..............................229Вызов внешних команд...................................................................................229Режим проверки (пробный прогон)...............................................................230Документирование модуля.................................................................................231Отладка модуля....................................................................................................233Создание модуля на Bash ...................................................................................234Альтернативное местоположение интерпретатора Bash.................................235Примеры модулей...............................................................................................236Глава 13. Vagrant.................................................................................................237Полезные параметры настройки Vagrant ..........................................................237Перенаправление портов и приватные IP-адреса .......................................237Перенаправление агента.................................................................................239Сценарий наполнения Ansible ...........................................................................239Когда выполняется сценарий наполнения........................................................239Реестр, генерируемый системой Vagrant ..........................................................240Наполнение нескольких машин одновременно................................................241Определение групп..............................................................................................242Локальные сценарии наполнения......................................................................243Глава 14. Amazon EC2.........................................................................................244Терминология......................................................................................................246Экземпляр........................................................................................................246Образ машины Amazon...................................................................................246Теги...................................................................................................................246Учетные данные пользователя...........................................................................247Переменные окружения..................................................................................247Файлы конфигурации.....................................................................................248Необходимое условие: библиотека Python Boto................................................248Динамическая инвентаризация.........................................................................249Кэширование реестра......................................................................................251Другие параметры настройки........................................................................251Автоматические группы.................................................................................251Определение динамических групп с помощью тегов.......................................252Присваивание тегов имеющимся ресурсам..................................................252Создание более точных названий групп........................................................253EC2 Virtual Private Cloud (VPC) и EC2 Classic.....................................................254Конфигурирование ansible.cfg для использования с ec2..................................255Запуск новых экземпляров.................................................................................255Пары ключей EC2.................................................................................................257Создание нового ключа...................................................................................257Выгрузка существующего ключа....................................................................258Группы безопасности..........................................................................................258Разрешенные IP-адреса..................................................................................260Порты групп безопасности.............................................................................260Получение новейшего AMI.................................................................................261Добавление нового экземпляра в группу..........................................................262Ожидание запуска сервера.................................................................................264Создание экземпляров идемпотентным способом..........................................265Подведение итогов..............................................................................................265Создание виртуального приватного облака......................................................267Динамическая инвентаризация и VPC ..........................................................272Создание AMI.......................................................................................................272Использование модуля ec2_ami......................................................................272Использование Packer.....................................................................................273Другие модули .....................................................................................................277Глава 15. Docker..................................................................................................278Объединение Docker и Ansible............................................................................279Жизненный цикл приложения Docker ..............................................................280Пример применения: Ghost................................................................................281Подключение к демону Docker...........................................................................281Запуск контейнера на локальной машине.........................................................281Создание образа из Dockerfile.............................................................................282Управление несколькими контейнерами на локальной машине....................284Отправка образа в реестр Docker........................................................................285Запрос информации о локальном образе..........................................................287Развертывание приложения в контейнере Docker............................................288Postgres.............................................................................................................288Веб-сервер........................................................................................................289Веб-сервер: Ghost............................................................................................290Веб-сервер: Nginx............................................................................................291Удаление контейнеров....................................................................................291Прямое подключение к контейнерам............................................................292Контейнеры Ansible.............................................................................................293Контейнер Conductor.......................................................................................293Создание образов Docker................................................................................294Настройка container.yml......................................................................................295Запуск на локальной машине.........................................................................297Публикация образов в реестрах.....................................................................298Развертывание контейнеров в промышленном окружении........................300Глава 16. Отладка сценариев Ansible...............................................................301Информативные сообщения об ошибках..........................................................301Отладка ошибок с SSH-подключением..............................................................302Модуль debug.......................................................................................................303Интерактивный отладчик сценариев.................................................................304Модуль assert........................................................................................................305Проверка сценария перед запуском...................................................................307Проверка синтаксиса.......................................................................................307Список хостов..................................................................................................307Список задач....................................................................................................308Проверка режима.............................................................................................308Вывод изменений в файлах............................................................................308Выбор задач для запуска.....................................................................................309Пошаговое выполнение..................................................................................309Выполнение с указанной задачи....................................................................309Теги...................................................................................................................310Глава 17. Управление хостами Windows...........................................................311Подключение к Windows.....................................................................................311PowerShell.............................................................................................................312Модули поддержки Windows..............................................................................314Наш первый сценарий........................................................................................315Обновление Windows..........................................................................................316Добавление локальных пользователей..............................................................317Итоги....................................................................................................................320Глава 18. Ansible для сетевых устройств.........................................................321Статус сетевых модулей......................................................................................322Список поддерживаемых производителей сетевого оборудования................322Подготовка сетевого устройства.........................................................................322Настройка аутентификации через SSH..........................................................323Как работают модули...........................................................................................325Наш первый сценарий........................................................................................326Реестр и переменные для сетевых модулей......................................................327Локальное подключение.................................................................................328Подключение к хосту.......................................................................................329Переменные для аутентификации.................................................................329Сохранение конфигурации.............................................................................330Использование конфигураций из файлов.........................................................331Шаблоны, шаблоны, шаблоны............................................................................334Сбор фактов.........................................................................................................336Итоги....................................................................................................................338Глава 19. Ansible Tower: Ansible для предприятий.........................................339Модели подписки................................................................................................340Пробная версия Ansible Tower........................................................................340Какие задачи решает Ansible Tower....................................................................341Управление доступом......................................................................................341Проекты............................................................................................................342Управление инвентаризацией........................................................................342Запуск заданий из шаблонов..........................................................................344RESTful API...........................................................................................................346Интерфейс командной строки Ansible Tower....................................................347Установка.........................................................................................................347Создание пользователя...................................................................................348Запуск задания.................................................................................................350Послесловие.........................................................................................................351Приложение А. SSH.............................................................................................352«Родной» SSH .......................................................................................................352SSH-агент.............................................................................................................352Запуск ssh-agent...................................................................................................353macOS...............................................................................................................353Linux.................................................................................................................354Agent Forwarding..................................................................................................354Команда sudo и перенаправление агента......................................................356Ключи хоста.........................................................................................................357Приложение В. Использование ролей IAM для учетных данных EC2..........361Консоль управления AWS ...................................................................................361Командная строка................................................................................................362Глоссарий.............................................................................................................365Библиография.....................................................................................................368Предметный указатель......................................................................................369Об авторах...........................................................................................................380Колофон...............................................................................................................381[/html]
Technical Details
categoryTitle: | Научная и техническая литература |
Price history chart & currency exchange rate
Customers also viewed
4%
~ 1,160.00 грн.
Red Hat Certified Engineer (RHCE) Study Guide: Ansible Automation for the Red Hat Enterprise Linux 8 Exam (EX294)
abebooks.com1%
~ 1,510.00 грн.
IT Infrastructure Automation Using Ansible: Guidelines to Automate the Network, Windows, Linux, and Cloud Administration (English Edition)
abebooks.com1%
~ 1,020.00 грн.
two piece ruffled flounce crop bikini with print cut out bottom swimsuit r0qq#, White;black
dhgate.com1%
~ 295.00 грн.
Off Road Motorcycle Rear Tool Bag Tail Storage PU Waterproof for Honda CRF150/250 CRF450 XR250R XR350R XR600
aliexpress.com1%
~ 1,630.00 грн.
New Fashion 2020 Sweaters Men Pullovers Slim Fit Jumpers Knitwear Thick Warm Winter Korean Style Casual Clothing Male
aliexpress.com+3%
1%
~ 456.00 грн.
Мультяшная форма для печенья Форма в форме животного пластиковый инструмент для выпечки тонкая работа мультяшная форма для печенья пенопластовая форма
aliexpress.com1%
~ 700.00 грн.
solar lamps led garden lights outdoor powered lamp waterproof landscape lighting pathway patio yard lawn decoration
dhgate.com1%
~ 409.00 грн.
Portable Handheld Adapter Camera Mount Holder for DJI OSMO Mobile 3 to for OSMO Action Camera Gimbal Stabilizer Accessories
aliexpress.com+2%
1%
~ 1,770.00 грн.
Massage Gun Body Muscle Deep Fascia Massager Muscle Pain Exercising Relaxation Slimming Shaping for Body Relax Fascia Gun
aliexpress.com+4%
1%
~ 565.00 грн.
Костюм-кимоно для косплея юютсу кайсен из аниме «Geto Suguru», черная синяя японская Униформа на Хэллоуин
aliexpress.ru1%
~ 1,990.00 грн.
3d bedding set europe single duvet cover set 2-3pcs quilt case pillowcases nordic black bed customize any size design1
dhgate.com1%
~ 730.00 грн.
berets fashion dot beret for women autumn summer elegant gauze cute cap french mushroom hat lolita, Blue;gray
dhgate.com1%
~ 9,050.00 грн.
Размер отверстия 12 мм * 25 мм ход SMC тип MGQ серии раздвижной подшипник цилиндр
aliexpress.ru+3%
1%
~ 184.00 грн.
Long-lasting Brand New Garden Tool Accessories Outdoor Living Parts Watering Wand Stainless Steel 1/2inch 1inch
aliexpress.com1%
~ 221.00 грн.
qb7x 2018 новые пиратские мужчины # 039; s satin durags bandanananaun turban оголовье мужчин silky durag headwear wigs мода шляпа аксессуары
dhgate.com1%
~ 960.00 грн.
женская топы и блузка с длинным рукавом леди кардиган с помощью кнопки женщины способа блузы рубашки 2019 new нагрудного turn down воротник, White
dhgate.com+3%
1%
~ 2,800.00 грн.
5PCS/Lot New Original GS2971AIBE3 BGA100 Electronic Accessories & Supplies
aliexpress.com1%
~ 262.00 грн.
Детская кровать, кроватка, домик, мебель, искусственная кожа, миниатюрные игрушки, аксессуары для кукол, высокие стулья, детские кроватки, ми...
aliexpress.ru1%
~ 1,160.00 грн.
evening bags telfars bag designer bags 3 sizes shoulder soft leather mini women handbag crossbody luxury tote fashion shopping multi-color p
dhgate.com1%
~ 1,460.00 грн.
Крыло с зеркальным световым индикатором крышка объектива и зеркальное стекло 1847387 1847389 11855103 1855102 для Ford Transit Mk8 2014-2020
aliexpress.ru+2%
1%
~ 4,050.00 грн.
1.8m Bed Home Textile Autumn winter high-end 100 cotton brushed pure cotton Bedding Set American luxury simple warm quilt cover
aliexpress.com1%
~ 44.00 грн.
12*6cm New Design Halloween 3D Pattern Stencils Nails Art Sticker Stainless Steel Template Nail Art Polish Stamping Plate M02585
aliexpress.com1%
~ 277.00 грн.
BESTONZON 12 шт. креативное печенье для глиняных изделий домашняя кухня «сделай сам»
aliexpress.ru1%
~ 760.00 грн.
Spring Summer Plaid Newsboy Cap Peaky Octagonal Hat Vintage Soft Casual Berets Cap Visor Gatsby Flat Ivy Hat Four Seasons
aliexpress.com