Автоматизация с использованием Ansible: Базовый курс
Ansible
Ansible – универсальная система, позволяющая автоматически управлять серверами в компьютерной сети. Используя её, системные администраторы и программисты могут оперативно создавать и настраивать серверы. Это позволяет быстрее запускать программный продукт.
Аудитория
Курс рассчитан на слушателей, имеющих опыт в программировании и системном администрировании.
Предварительный уровень подготовки
Для эффективного обучения слушатели должны обладать следующими навыками и знаниями:
- продвинутый пользователь UNIX;
- знания Python;
- минимальные знания Bash
Результат обучения
По окончании курса слушатели будут обладать следующими знаниями и навыками:
- основы конфигурации и управления серверами и приложениями с помощью Ansible;
- инструменты и методы для автоматизации задач в IT- инфраструктуре;
- различные модули Ansible и способы их использования;
- управление инфраструктурой на основе ролей и плейбуков Ansible;
- настройка окружений с использованием Ansible;
- использование инвентаризации для определения групп хостов и управления ими;
- основы использования Ansible Vault для шифрования конфиденциальных данных;
- использование Ansible для конфигурации Docker-контейнеров Интеграция Ansible с различными инструментами, такими как AWS, Azure, VMware, и другие;
- основы работы с Ansible Tower и Ansible AWX для управления инфраструктурой;
- практические навыки и опыт работы с Ansible на реальных проектах и примерах;
- умение создавать и настраивать собственные модули и плагины для Ansible;
- знание лучших практик и подходов для использования Ansible в различных сценариях;
- опыт работы с командной строкой Ansible и использование Ansible Ad-hoc команд;
- уверенность в использовании Ansible для конфигурации и управления инфраструктурой.
Программа курса
Модуль 1. Введение в Ansible
- Введение в Ansible и его основные компоненты
- Теория и описание основных понятий и компонентов
- Практические примеры с командами для ввода и соответствующими объяснениями
- Документация Ansible и ссылки на дополнительные ресурсы
- Практические упражнения для развития навыков работы с Ansible
Модуль 2. Инвентаризация и хосты
- Введение в инвентаризацию в Ansible
- Что такое инвентаризация и зачем она нужна
- Различные типы инвентаризации в Ansible
- Теория и описание основных понятий и компонентов
- Создание инвентаризации
- Группировка управляемых узлов
- Использование переменных в инвентаризации
- Практические примеры с командами для ввода и соответствующими объяснениями
- Создание инвентаризации в Ansible
- Использование переменных в инвентаризации
- Группировка управляемых узлов в инвентаризации
- Документация Ansible и ссылки на дополнительные ресурсы
- Официальная документация Ansible
- Ссылки на блоги, форумы, и другие ресурсы для изучения
Модуль 3. Плейбуки и таски
- Введение в плейбуки Ansible
- Что такое плейбуки Ansible и зачем они нужны
- Описание структуры плейбуков Ansible
- Теория и описание основных понятий и компонентов
- Описание структуры плейбуков Ansible
- Как создать плейбук в Ansible
- Практические примеры с командами для ввода и соответствующими объяснениями
- Создание простого плейбука для настройки конфигураций на управляемых узлах
- Использование переменных в плейбуках Ansible для управления конфигурациями на управляемых узлах
- Документация Ansible и ссылки на дополнительные ресурсы
- Официальная документация Ansible
- Ссылки на блоги, форумы, и другие ресурсы для изучения плейбуков Ansible
- Практические упражнения для развития навыков работы с плейбуками Ansible
- Создание более сложного плейбука, который может запускаться в нескольких управляемых узлах
- Использование различных модулей Ansible в плейбуках для управления конфигурациями на управляемых узлах
Модуль 4. Переменные и шаблоны
- Введение в переменные Ansible
- Что такое переменные Ansible и зачем они нужны
- Описание различных типов переменных в Ansible
- Теория и описание основных понятий и компонентов
- Как создавать переменные в Ansible
- Описание различных типов переменных в Ansible, таких как переменные окружения, факты и групповые переменные Практические примеры с командами для ввода и соответствующими объяснениями
- Создание и использование переменных в Ansible Использование различных типов переменных в плейбуках Ansible
- Документация Ansible и ссылки на дополнительные ресурсы Официальная документация Ansible
- Ссылки на блоги, форумы, и другие ресурсы для изучения переменных в Ansible
- Практические упражнения для развития навыков работы с переменными в Ansible
- Использование переменных для настройки конфигураций на управляемых узлах
- Использование переменных для динамического создания плейбуков
Модуль 5. Модули и плагины
- Понимание модулей Ansible
- Плагины
- Создание своих собственных модулей и плагинов
- Работа с динамической инвентаризацией
- Работа с API
- Использование плейбуков с другими системами автоматизации
Модуль 6. Роли
- Основы ролей
- Что такое роли в Ansible
- Как создавать роли
- Структура каталога роли
- Использование тегов для управления выполнением роли Использование переменных в ролях
- Разработка и тестирование ролей
- Разработка ролей с помощью Ansible Galaxy
- Использование Molecule для автоматического тестирования ролей
- Тестирование ролей в различных средах
- Создание многоразовых ролей
- Использование переменных и шаблонов для создания гибких ролей
- Разделение ролей на подроли для удобства многократного использования
- Использование ролей внутри других ролей
- Управление зависимостями
- Использование зависимостей ролей для управления конфигурацией
- Управление зависимостями с помощью Ansible Galaxy
- Работа с конфликтующими зависимостями
- Продвинутые темы
- Использование Ansible Vault для защиты конфиденциальных данных
- Использование Ansible Tower для управления ролями
- Использование дополнительных плагинов для расширения функциональности роли
Модуль 7. Работа с файловой системой
- Введение в управление файлами и директориями в Ansible.
- Копирование файлов на удаленные узлы.
- Получение файлов с удаленных узлов.
- Использование шаблонов для генерации файлов.
- Управление содержимым файлов.
- Поиск файлов на удаленных узлах.
- Работа с архивами - управление архивами на удаленных узлах.
- Работа с правами доступа к файлам - управление правами доступа к файлам и директориям на удаленных узлах
Модуль 8. Работа с пакетами и репозиториями
- Управление пакетами на различных ОС (Red Hat, Debian, Ubuntu и др.)
- Установка и удаление пакетов с помощью модулей Ansible
- Добавление новых репозиториев для установки пакетов
- Работа с репозиториями в Ansible
Модуль 9. Работа с сервисами и процессами
- Управление сервисами в Ansible
- Настройка автозапуска сервисов
- Управление процессами с помощью модулей Ansible
Модуль 10. Работа с сетевым оборудованием
- Управление сетевыми устройствами с помощью Ansible
- Настройка маршрутизаторов и коммутаторов
- Использование модуля Ansible для работы с сетевыми устройствами
Модуль 11. Работа с облачными платформами
- Управление виртуальными машинами в облаке
- Создание и настройка хранилищ и сетей в облаке
- Использование модуля Ansible для работы с облачными платформами
Модуль 12. Оптимизация и доработка Ansible
- Использование асинхронной обработки
- Написание собственных модулей
- Использование коллекций
- Использование динамических инвентаризационных источников
- Использование плагинов
- Оптимизация и отладка
- Практические задания