0Pricing
DevOps Bootcamp · Урок

Подготовка и настройка в одном процессе

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

«Подготовка и настройка в одном процессе» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.

Две задачи, один сценарий

Развёртывание создаёт сервер. Настройка делает его полезным. Настоящая сила заключается в том, чтобы плавно выполнить оба действия в одном сценарии. 🔗

Развёртывайте на управляющем узле

Задачи создания облачных ресурсов выполняются локально через API AWS, поэтому целью сценария развёртывания должен быть localhost, а не новый сервер.

- hosts: localhost
  gather_facts: false
  tasks:
    - amazon.aws.ec2_instance: { name: web-01 }

Получите данные нового узла

Нельзя подключиться по SSH к машине, о которой Вы пока ничего не знаете. Сохраните результат ec2_instance с помощью register, чтобы получить её новый публичный IP-адрес.

- amazon.aws.ec2_instance:
    name: web-01
  register: ec2

Добавьте его в инвентарь в памяти

Модуль add_host добавляет новый сервер в текущий инвентарь, поэтому последующая часть сценария сможет обратиться к нему без статического файла.

- add_host:
    name: "{{ ec2.instances[0].public_ip_address }}"
    groups: launched

Дождитесь готовности SSH

Запускающийся экземпляр не становится доступным мгновенно. wait_for приостанавливает выполнение, пока порт 22 не начнёт отвечать, и только после этого выполняется попытка подключения.

- wait_for:
    host: "{{ ec2.instances[0].public_ip_address }}"
    port: 22

Начните второй сценарий

Теперь откройте новый сценарий, целью которого будет только что созданная группа launched. Этот сценарий выполняется на самом облачном сервере.

- hosts: launched
  become: true
  tasks:
    - ping:

Настройте новый узел

После добавления узла в инвентарь обычные модули берут работу на себя. Устанавливайте пакеты, копируйте конфигурации и запускайте службы так же, как на любом другом узле.

- hosts: launched
  tasks:
    - package:
        name: nginx
        state: present

Передайте правильного пользователя SSH

Облачные образы используют определённые учётные записи, например ubuntu или ec2-user. Укажите ansible_user, чтобы сценарий настройки подключился правильно.

add_host:
  name: "{{ ec2.instances[0].public_ip_address }}"
  groups: launched
  ansible_user: ubuntu

Один файл — от начала до конца

В результате получается один плейбук: первый сценарий создаёт инфраструктуру, второй настраивает её. Запустите его один раз — и рабочий сервер будет готов.

Идемпотентность на каждом этапе

Обе части идемпотентны. При повторном запуске существующий экземпляр распознаётся, а конфигурация приводится к нужному состоянию, поэтому этот процесс безопасно повторять.

Пропустите запросы ключа хоста

У нового хоста SSH-ключ ещё неизвестен. Отключите host_key_checking для запущенной группы, чтобы первое подключение не зависло.

add_host:
  name: "{{ ec2.instances[0].public_ip_address }}"
  groups: launched
  ansible_ssh_common_args: "-o StrictHostKeyChecking=no"

Быстрая проверка

Вы только что запустили экземпляр EC2 и хотите, чтобы следующий сценарий настроил его без статической записи в инвентаре. Что соединяет эти этапы?

Итоги

Вы связали подготовку и настройку: создали ресурсы на localhost, зарегистрировали IP, использовали add_host, дождались SSH, а затем выполнили настройку во втором сценарии. ✨

Часто задаваемые вопросы

Урок «Подготовка и настройка в одном процессе» бесплатный?

Да — полный текст урока «Подготовка и настройка в одном процессе» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Подготовка и настройка в одном процессе»?

Передавайте новые узлы плейбукам настройки Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Подготовка и настройка в одном процессе»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Облачные коллекции и аутентификация
  2. Декларативный запуск экземпляров EC2
  3. Сеть: VPC, подсети и группы безопасности
  4. Подготовка и настройка в одном процессе
← Назад к DevOps Bootcamp