Запускаем Ansible

Запускаем 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