Автоматизация развертывания узлов с использованием cloud-init // DevOps практики и инструменты

YOUTUBE · 25.11.2025 07:09

Ключевые темы и таймкоды

Введение в курс

0:01
  • Приветствие и представление курса по практике инструментов.
  • Обсуждение инструмента Cloudera и его применения в масштабных развертываниях.
  • Cloudera может быть полезен для упрощения жизни и выполнения задач.

Проверка связи и представление преподавателя

0:59
  • Проверка связи и звука.
  • Преподаватель рассказывает о своем опыте: разработчик, администратор, мобильная разработка.
  • Участие в проектах и конференциях, стремление делиться опытом.

План урока

2:38
  • Обсуждение использования Cloudera и его сценариев.
  • План урока: введение в Cloudera, эксперименты с обычной машиной и контейнерами, вопросы и ответы.

Введение в вебинар

3:46
  • Правила вебинара: задавать вопросы, обсуждать темы.
  • Представление участников: стаж работы, опыт с Cloudera.

Введение в Otus

6:07
  • Otus как платформа для обмена опытом и создания курсов.
  • Образовательная лицензия и возможность получения сертификатов.
  • Участие преподавателей в различных проектах и конференциях.

Переход к обсуждению Cloudera

9:01
  • Опрос участников о знакомстве с Cloudera.
  • Начало обсуждения Cloudera: что это, почему интересен, особенности и применение.

Технические накладки и продолжение

12:10
  • Технические накладки и переключение на мобильный интернет.
  • Подготовка узла для работы в кластере: установка компонентов и конфигурирование.

История и развитие Cloudera

13:32
  • История проекта Cloudera, разработка Canonical.
  • Сравнение с групповой политикой Microsoft и ответ на её решения.

Введение в Cloudinit

14:24
  • Cloudinit позволяет настраивать машины удаленно, даже после перезагрузки.
  • Он может срабатывать при каждой перезагрузке, устанавливая пакеты и настраивая систему.
  • Cloudinit запускается до сетевого стека, что позволяет задавать базовые настройки, такие как DNS и шлюз.

Преимущества Cloudinit

16:07
  • Cloudinit позволяет создавать кастомизированные образы, не сильно уходя от исходного состояния.
  • Это особенно актуально для облачных сред, где важно поддерживать актуальность системы.
  • Cloudinit заменяет необходимость пересобирать образы и доставлять их заново.

Установка и запуск Cloudinit

17:56
  • Cloudinit устанавливается как пакет и запускается как три сервиса: cloud, cloud-config и cloud-init.
  • Cloud-init запускается до сети и донита, что позволяет настраивать систему до основной фазы.
  • На первой фазе настраивается сеть, а на второй фазе устанавливаются пакеты и настраиваются репозитории.

Источники образов и тестирование

20:50
  • Cloudinit можно использовать с различными образами, включая Ubuntu и специализированные дистрибутивы.
  • Тестирование будет проводиться на образе Ubuntu Server Cloudy64.
  • Cloudinit позволяет запускать виртуальные машины без конфигурации, но с запущенным Cloudinit.

Метаданные и конфигурация

25:04
  • Метаданные содержат информацию о окружении, такую как имя и адрес машины.
  • Конфигурация Cloudinit может поступать из разных источников, включая облако.
  • Cloudinit работает на Python и имеет три фазы: cloud, cloud-config и cloud-init.

Эксперимент с метаданными

28:36
  • Метаданные позволяют узнать регион присутствия машины и другие важные параметры.
  • Эксперимент покажет, как выглядят метаданные с точки зрения Cloudinit.

Проблемы с курсором и метаданными

29:17
  • Курсор исчезает и появляется.
  • Подключение к облаку и анализ метаданных.
  • Метаданные могут быть из разных источников и форматов.

Использование метаданных

30:01
  • Метаданные полезны для подключения к серверам данных.
  • Метаданные можно использовать в скриптах и шаблонах.
  • Метаданные содержат информацию о зоне доступности и ключах.

Клауд конфиг и модули

33:56
  • Клауд конфиг определяет общие правила и модули.
  • Перечисление источников данных и их конфигурация.
  • Модули запускаются на разных фазах, включая запуск системы и конфигурацию сети.

Конфигурация и скрипты

37:13
  • Конфигурация модулей и скрипты на разных стадиях.
  • Возможность интеграции модулей и кастомной настройки.
  • Использование системы управления и метрик.

Вендер дейта и юзер дейта

38:53
  • Вендер дейта и юзер дейта как части конфигурации.
  • Конфигурация применяется при старте системы.
  • Использование диска для хранения данных и конфигурации.

Создание и подключение данных

40:49
  • Создание диска с метаданными и юзер дейта.
  • Использование YAML для конфигурации.
  • Подключение данных через веб-сервер или Docker.

Работа с Docker и конфигурацией

42:48
  • Монтирование текущего каталога в Docker и запуск на порт.
  • Использование утилиты klock для генерации локального дата-источника.
  • Подключение дополнительного диска к машине и настройка модуля фай месседж.

Настройка и использование дата-источников

45:25
  • Подключение диска и использование информации от системы.
  • Указание локального диска и его ремонт.
  • Подмена серийного номера для изменения источника данных.

Проблемы с адресами и автодреад

48:03
  • Проблемы с адресами при использовании внешних источников.
  • Использование автодреада для автоматического выделения адреса.
  • Совместимость с различными облачными провайдерами.

Работа с пользовательскими данными

51:18
  • Использование колоды-конфигов для работы с пользовательскими данными.
  • Извлечение метаданных из облака и их использование.
  • Пример с системой и платформой для обновления.

Программная настройка и запуск через контейнеры

53:05
  • Использование Docker для запуска и настройки через контейнеры.
  • Применение дополнительной конфигурации и использование метаданных.
  • Запуск и проверка работы через Docker и анализ статуса выполнения.

Имплейт и лайф-кодинг

59:05
  • Имплейт генерирует описание на основе данных.
  • Лайф-кодинг может быть непредсказуемым.
  • Использование шаблонов в Python для создания отчетов и файлов.

Ограничения и использование метаданных

1:00:26
  • Ограничение на размер данных в 16 КБ.
  • Возможность выполнения команд и использования метаданных.
  • Использование райт-файлов для записи произвольных файлов.

Сценарии и хуки

1:01:25
  • Сценарии могут быть обычными скриптами.
  • Хуки позволяют запускать сценарии при перезагрузке.
  • Порт-хендлер для встраивания новых модулей.

Сборка и рендеринг

1:03:18
  • Механизм мейк для сборки проекта из нескольких частей.
  • Возможность рендеринга юзер дейта для проверки.
  • Использование мейк для сборки конфигурации из разных частей.

Проверка и валидация

1:07:36
  • Проверка валидности конфигурации с помощью схемы.
  • Возможность указания дополнительных контингий.
  • Использование дебаг для понимания ошибок.

Управление модулями

1:09:18
  • Возможность уточнения времени запуска модулей.
  • Переопределение поведения модулей в зависимости от состояния.
  • Практическое применение и создание собственных модулей.

Пример реализации модуля

1:11:22
  • Пример реализации модуля ран семь.
  • Использование модуля дискрипшн для текстового описания.
  • Возможность создания собственного модуля на основе существующих.

Конфигурация виртуальных машин

1:14:01
  • Обсуждение конфигурации виртуальных машин.
  • Возможность определения метаданных машины.
  • Создание учетной записи и регистрация ключа для доступа к машине.

Установка Docker

1:15:10
  • Обсуждение устаревания Docker и перехода на контейнеры.
  • Установка Docker на виртуальную машину.
  • Использование Cloudinit для установки Docker.

Использование Cloudinit

1:16:11
  • Установка Docker через Cloudinit.
  • Использование утилиты tel для сборки контейнеров.
  • Возможность запуска плейбуков через Cloudinit.

Установка Docker через команды

1:18:07
  • Запуск команд для установки Docker.
  • Установка дополнительных пакетов для работы с Docker.
  • Подготовка машины с Docker.

Проверка работы Docker

1:19:47
  • Проверка работы Docker после установки.
  • Запуск машины и ожидание завершения установки.
  • Неканоничность метода установки Docker.

Возможности модуля

1:20:32
  • Управление плейбуками и репозиториями.
  • Настройка дисков и управление вентиляторами.
  • Настройка языка и точек монтирования.

Дополнительные функции

1:23:11
  • Отправка данных и получение статистики.
  • Возможность шаманизации и доступа к внутренним переменным.
  • Проверка работы консоли после загрузки машины.

Проблемы с копипастой и диагностика

1:24:24
  • Проверка статуса и состояния системы.
  • Проблемы с отображением данных и правами доступа.
  • Диагностика и проверка целостности данных.

Логика и конфигурация

1:26:09
  • Важность диагностики и логики.
  • Проблемы с перезапуском и конфигурацией.
  • Необходимость изменения конфигурации для повторного запуска.

Управление репозиториями

1:29:13
  • Добавление репозиториев через apt.
  • Перезагрузка машины и проверка изменений.
  • Преимущества использования локальных данных вместо виртуальных.

Альтернативное решение

1:32:24
  • Использование модулей и переменных для установки.
  • Создание сервисов и запуск контейнеров.
  • Преимущества чистого и элегантного подхода.

Сетевая конфигурация

1:34:26
  • Логика сетевой конфигурации.
  • Возможность задания сетевой конфигурации до запуска машины.
  • Преимущества использования метаданных для настройки.

Обучение и содержание курса

1:37:39
  • Формат занятий и домашние задания.
  • Записи вебинаров и их доступность.
  • Содержание курса: DevOps, инфраструктура как код, микросервисы, отказоустойчивость.

Структура курса

1:39:49
  • Первый модуль: DevOps и терминология.
  • Второй модуль: управление конфигурацией.
  • Третий модуль: Docker и Kubernetes.
  • Четвертый модуль: безопасность и сканирование уязвимостей.
  • Пятый модуль: мониторинг и анализ логов.

Введение в терминологию и модули

1:41:28
  • Ранее существовали три разных проекта: опыт, метрикс, опен-рейсинг.
  • Сейчас все объединено в один проект.
  • Пятый модуль посвящен работе с губернатором, операторам, контроллерам и мониторингу.
  • Проектная работа описана более детально.

Программа занятий

1:42:16
  • Можно посмотреть подробную программу занятий.
  • В программе указано содержание каждого занятия.

Преподаватели и их опыт

1:42:51
  • Преподаватели имеют разный бэкграунд.
  • Некоторые пришли из DevOps, другие из автоматизации или облаков.
  • Биографии преподавателей можно найти на сайте.

Вакансии и зарплата

1:44:01
  • Вакансии в DevOps сложны и абстрактны.
  • Средняя зарплата DevOps составляет около 190 тысяч рублей.
  • Важны навыки работы с сетью, администрирования и решения задач.

Заключение и опрос

1:45:26
  • Просьба пройти опрос для улучшения занятий.
  • Обсуждались вопросы работы в Kubernetes и подготовки машин.
  • Анонс следующего открытого урока через две недели.
  • Благодарность за участие и приглашение на следующие вебинары и курсы.