0Pricing
DevOps Bootcamp · Урок

Конвейер SSH и повторное использование соединений

Сокращайте накладные расходы на каждую задачу

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

Накладные расходы SSH накапливаются

Каждая задача может означать новый вход, копирование файла и выполнение через SSH. Если умножить это на множество задач и узлов, накладные расходы начинают преобладать во время запуска.

Как обычно выполняется задача

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

Конвейерная передача спешит на помощь

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

[ssh_connection]
pipelining = True

Ограничение requiretty

Для конвейерной передачи требуется sudo без TTY, поэтому удалённая конфигурация sudoers не должна принудительно требовать requiretty. Современные дистрибутивы подходят для этого, а некоторые защищённые требуют настройки.

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

OpenSSH с помощью ControlPersist сохраняет основное соединение открытым и направляет через него последующие задачи, избавляя от нового рукопожатия при каждом запуске.

Настройка ssh_args

Ansible включает повторное использование соединения через ssh_args. Значение ControlPersist определяет, как долго общий сокет остаётся активным после последней задачи.

[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60s

Где находятся сокеты

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

[ssh_connection]
control_path = %(directory)s/%%h-%%p-%%r

Конвейерная передача и повторное использование

Эти механизмы сокращают разные затраты: конвейерная передача уменьшает число обменов внутри одной задачи, а ControlPersist повторно использует сеанс SSH для множества задач.

Используйте оба механизма вместе

Конвейерная передача и постоянные соединения дополняют друг друга. Включение обоих механизмов — один из самых эффективных и безопасных способов ускорить большой сценарий.

Сбор фактов тоже можно ускорить

Если факты Вам не нужны, задайте gather_facts: false, чтобы пропустить подготовительный модуль. Это убирает затратный шаг из начала каждого сценария.

Измерьте результат

Включите обратный вызов profile_tasks, чтобы измерять время каждой задачи. Он точно показывает, куда уходят секунды, и позволяет проверить, действительно ли помогла настройка.

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

Вы хотите, чтобы каждая задача не записывала временный файл перед выполнением через SSH.

Итоги

Включите конвейерную передачу, чтобы сократить число обменов, а ControlPersist — чтобы повторно использовать сеансы SSH. Вместе они значительно уменьшают накладные расходы на соединения в больших сценариях. ⚡

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

Урок «Конвейер SSH и повторное использование соединений» бесплатный?

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

Чему я научусь в уроке «Конвейер SSH и повторное использование соединений»?

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

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

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

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

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

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

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

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

  1. Настройка forks и параллелизма
  2. Стратегии: linear, free и host_pinned
  3. Конвейер SSH и повторное использование соединений
  4. serial и поэтапное пакетное выполнение
← Назад к DevOps Bootcamp