Blayd — автоматизация запуска команд через YAML

Содержание
- Почему стоит использовать Blayd вместо обычных скриптов?
- Установка Blayd: быстро и просто
- Основы: создание pipeline.yaml
- Структура файла
- Переменные в Blayd
- Шаги: что это и как работают
- Как использовать вывод из предыдущих шагов?
- Шаг merge — объединение выводов и удаление дублей
- Сохранение вывода в файлы: как и куда?
- Пример полного pipeline.yaml с объяснениями
- Как запустить пайплайн?
- Советы по использованию Blayd
- Заключение
Blayd — это лёгкая и удобная утилита для запуска последовательностей команд, описанных в формате YAML. Этот инструмент позволяет автоматизировать сложные задачи через читаемые и легко поддерживаемые пайплайны без необходимости писать громоздкие bash-скрипты.
Почему стоит использовать Blayd вместо обычных скриптов?
Традиционные bash-скрипты быстро превращаются в сложный и запутанный код. Отлаживать и поддерживать их сложно, особенно при масштабировании задач.
Blayd решает эти проблемы:
- Читабельность. YAML-формат легко воспринимается даже новичками.
- Гибкость. Переменные, импорт и экспорт позволяют строить сложные сценарии.
- Удобство. Структурированное описание шагов избавляет от ручного копирования вывода.
- Портативность. Pipelines можно легко переносить и делиться ими.
Установка Blayd: быстро и просто
Если у вас установлен Go, установка занимает пару секунд:c
go install github.com/lo0pz7/blayd/cmd/blayd@latest
После этого команда blayd
будет доступна в терминале. Проверьте, что всё работает:
blayd -h
Вы увидите список команд и опций.
Основы: создание pipeline.yaml
Структура файла
Pipeline — это YAML-файл с двумя основными секциями:
vars
— объявление переменныхsteps
— список шагов пайплайна
Переменные в Blayd
Переменные позволяют задавать параметры, которые можно использовать повторно.
Пример:
vars:
domain: example.com
threads: 10
Для использования переменной в поле args
или inputs
пишите ${var.имя}
.
Например:
args: ["-d", "${var.domain}"]
Шаги: что это и как работают
Каждый шаг — это либо выполнение команды с аргументами, либо особый шаг для объединения данных.
Пример обычного шага:
- name: Сбор поддоменов через subfinder
command: subfinder
args: ["-silent", "-d", "${var.domain}"]
export: subfinder_output
name
— название шага для вывода в консольcommand
— команда для выполнения (должна быть установлена в системе)args
— массив аргументов, где можно использовать переменныеexport
— имя переменной для сохранения вывода шага
Как использовать вывод из предыдущих шагов?
Blayd поддерживает два способа вставить вывод из предыдущих шагов:
import
— указывает, что весь вывод сохраняемой переменной нужно подставить в качестве стандартного ввода текущей команды.- name: Проверка живых поддоменов command: httpx args: ["-silent", "-threads", "${var.threads}"] import: subfinder_output save: alive_subdomains.txt
${output.имя}
— переменная, которую можно использовать внутриargs
или вinputs
для передачи вывода как строки или списка.
Шаг merge — объединение выводов и удаление дублей
Для объединения нескольких выводов из разных шагов и удаления повторяющихся строк используется специальный шаг с merge
:
- name: Объединение поддоменов
merge:
inputs: ["${output.subfinder_output}", "${output.assetfinder_output}"]
unique: true
export: all_subdomains
save: all_subdomains.txt
inputs
— список переменных с выводами, которые нужно объединитьunique: true
— удаляет дублиexport
иsave
— сохраняет результат объединения
Сохранение вывода в файлы: как и куда?
save
в шаге — сохраняет вывод конкретного шага в указанный файл.save
вне шагов (на верхнем уровне YAML) — сохраняет вывод всех шагов в один общий файл.
Пример сохранения всего вывода в один файл:
save: full_output.txt
Пример полного pipeline.yaml с объяснениями
save: full_pipeline_output.txt
vars:
domain: example.com
threads: 10
steps:
- name: Сбор поддоменов через subfinder
command: subfinder
args: ["-silent", "-d", "${var.domain}"]
export: subfinder_output
- name: Сбор поддоменов через assetfinder
command: assetfinder
args: ["-subs-only", "${var.domain}"]
export: assetfinder_output
- name: Объединение и удаление дублей
merge:
inputs: ["${output.subfinder_output}", "${output.assetfinder_output}"]
unique: true
export: all_subdomains
save: all_subdomains.txt
- name: Поиск живых поддоменов через httpx
command: httpx
args: ["-silent", "-threads", "${var.threads}"]
import: all_subdomains
save: alive_subdomains.txt
Как запустить пайплайн?
Выполните команду:
blayd pipeline.yaml
Blayd последовательно выполнит все шаги, передаст выводы между ними, сохранит результаты и выведет статус каждого шага.
Советы по использованию Blayd
- Всегда используйте понятные имена для переменных и шагов.
- Используйте
export
иimport
для передачи данных между командами. - Применяйте
merge
для объединения результатов с удалением дубликатов. - Используйте верхнеуровневый
save
для сохранения полного вывода пайплайна.
Заключение
Blayd — это современный и простой инструмент, который поможет автоматизировать запуск сложных цепочек команд в удобном YAML-формате. Он идеально подойдёт системным администраторам, DevOps-инженерам и багхантером, которым нужно быстро и наглядно создавать гибкие пайплайны.
Если вы устали от громоздких скриптов и хотите повысить эффективность — попробуйте Blayd!