DevOps-Bash-tools: Твой Швейцарский Нож для Автоматизации Инфраструктуры

14 дек 2025
8,411
1,587
100
2 недели

Знакома ситуация, когда вы переключаетесь между десятками инструментов, каждый со своим синтаксисом и особенностями? Когда рутина отнимает драгоценное время, а повторяющиеся задачи превращаются в бесконечный день сурка? Если вы DevOps-инженер, системный администратор или разработчик, работающий с облаками и инфраструктурой, то, скорее всего, вы киваете головой.

К счастью, есть решение, которое может значительно упростить вашу жизнь. Hari Sekhon, опытный Cloud & Big Data Contractor, собрал в одном месте свой многолетний опыт и создал настоящий клад для автоматизации — репозиторий HariSekhon/DevOps-Bash-tools. Это не просто набор скриптов, это целая экосистема, которая позволяет автоматизировать буквально всё: от управления облачными ресурсами до тонкой настройки вашей локальной среды разработки.

Что внутри этого "швейцарского ножа"?

DevOps-Bash-tools — это более тысячи Bash-скриптов и продвинутых конфигураций, охватывающих огромный спектр задач. Давайте посмотрим на самые интересные и полезные возможности, которые этот проект может предложить.

Облака под контролем: AWS и GCP на кончиках пальцев

Работа с облачными провайдерами часто требует жонглирования CLI-командами и постоянного поиска нужной информации. Этот репозиторий предлагает мощные инструменты для AWS и Google Cloud Platform, которые помогут вам держать инфраструктуру под контролем:

  • aws_account_summary.sh: Мгновенный обзор состояния вашего AWS-аккаунта. Представьте, что вы можете за секунду увидеть, включена ли многофакторная аутентификация для root-аккаунта или сколько Access Key'ев активно. Это незаменимо для аудита безопасности.
  • aws_billing_alarm.sh: Защита от непредвиденных расходов. Создайте оповещение в CloudWatch и SNS, которое уведомит вас по электронной почте, если затраты превысят заданный порог. Это одна из первых вещей, которую стоит настроить в любом новом AWS-аккаунте.
  • gcp_info.sh: Полная инвентаризация ресурсов в Google Cloud Platform. Этот скрипт собирает информацию обо всех развернутых ресурсах: от виртуальных машин и GKE-кластеров до бакетов Cloud Storage и баз данных Cloud SQL. Это как получить полный список всего, что у вас есть в GCP, одной командой.
  • gcp_terraform_create_credential.sh: Быстрое создание сервисных аккаунтов для Terraform. Автоматизирует процесс создания аккаунта, генерации ключа и вывода команды для экспорта переменных окружения, чтобы вы могли сразу начать работать с Terraform.

CI/CD без головной боли: Автоматизация развертываний

Непрерывная интеграция и доставка — сердце современного DevOps. DevOps-Bash-tools предлагает скрипты, которые упрощают управление популярными CI/CD-системами:

Реклама
  • jenkins.sh и concourse.sh: Эти скрипты позволяют одним касанием запустить Jenkins или Concourse CI в Docker, настроить пайплайн из локального файла и даже отслеживать результаты в терминале. Идеально для быстрого тестирования или локальной разработки пайплайнов.
  • github_actions_repo_set_secret.sh: Удобное управление секретами для GitHub Actions. Позволяет устанавливать секреты репозитория из key=value или экспортированных переменных, что очень удобно для интеграции с внешними системами, например, с AWS.
  • terraform_cloud_workspace_set_vars.sh: Работа с переменными Terraform Cloud. Этот скрипт позволяет добавлять или обновлять переменные окружения и Terraform-переменные для ваших рабочих пространств через API, что критически важно для автоматизации развертываний.

Kubernetes и Docker: Управляй, а не страдай

Контейнеры и оркестрация стали стандартом. Скрипты из этого репозитория помогут вам эффективно управлять Docker и Kubernetes-кластерами:

  • kubectl.sh: Безопасная работа с kubectl в изолированных контекстах. Этот скрипт запускает команды kubectl, фиксируя их к определенному контексту, чтобы избежать гонки условий и случайных изменений в других кластерах.
  • kubernetes_info.sh: Детальный аудит вашего Kubernetes-кластера. Получите полную инвентаризацию всех объектов: от подов и деплойментов до Persistent Volumes и Service Accounts. Это незаменимо для понимания состояния кластера и отладки.
  • docker_build_hashref.sh: Умная сборка Docker-образов. Скрипт автоматически генерирует имя и тег образа на основе относительного пути Git и короткого SHA-хеша коммита, а также добавляет суффикс, если Git-содержимое изменено. Это помогает сравнивать размеры образов и отслеживать изменения.

Данные и базы: От SQL до Big Data

Работа с данными — это всегда вызов. Здесь вы найдете скрипты для различных баз данных и Big Data-технологий:

  • psql.sh и mysql.sh: Быстрый доступ к PostgreSQL и MySQL. Эти скрипты запускают базы данных в Docker-контейнерах и сразу же подключают вас к CLI, монтируя /sql скрипты для легкого использования. Идеально для быстрого тестирования или разработки.
  • bigquery_tables_row_counts_all_datasets.sh: Получение количества строк во всех таблицах BigQuery во всех датасетах. Полезно для аудита данных и оценки объемов.
  • kafka_*.sh и hdfs_*.sh: Утилиты для работы с Kafka и HDFS. Эти скрипты упрощают использование CLI для Kafka, автоматически настраивая Kerberos и адреса брокеров/ZooKeeper, а также предоставляют инструменты для работы с HDFS, такие как подсчет контрольных сумм и управление фактором репликации.

Твоя идеальная среда: Bash, Git и не только

Помимо облаков и CI/CD, репозиторий содержит множество утилит для повседневной работы и настройки вашей локальной среды:

  • Продвинутые .bashrc, .vimrc, .gitconfig: Настройте свою оболочку, текстовый редактор и Git с сотнями полезных твиков, алиасов и функций, которые значительно повышают продуктивность.
  • git_diff_commit.sh и git_review_push.sh: Ускорение повседневной работы с Git. Эти скрипты позволяют быстро коммитить изменения, показывая diff и запрашивая подтверждение для каждого файла, а также просматривать изменения перед пушем в удаленный репозиторий.
  • install_packages.sh: Универсальный скрипт для установки пакетов на Linux и Mac. Он сам определяет вашу операционную систему и использует соответствующий менеджер пакетов (yum, apt, apk, brew) для установки списка зависимостей. Это избавляет от необходимости помнить команды для разных дистрибутивов.

Как начать пользоваться?

Самый быстрый способ начать работу с DevOps-Bash-tools — это использовать скрипт быстрой установки. Он добавит необходимые настройки в ваш .bashrc/.bash_profile, создаст симлинки для dot-файлов и установит системные зависимости:

curl -L https://git.io/bash-bootstrap | sh

Если вы хотите только установить пакетные зависимости, просто перейдите в склонированный репозиторий и выполните make:

git clone https://github.com/HariSekhon/DevOps-Bash-tools bash-tools
cd bash-tools
make

Представьте, что вам нужно быстро развернуть тестовый Jenkins. Вместо того чтобы вручную настраивать Docker-контейнеры, плагины и джобы, вы просто запускаете jenkins.sh, и всё готово. Или, например, вам нужно проверить, какие IAM-политики напрямую привязаны к пользователям в AWS — aws_iam_policies_attached_to_users.sh сделает это за вас в одно мгновение.

Кому это точно пригодится?

Этот репозиторий — настоящая находка для тех, кто стремится к максимальной эффективности и автоматизации в своей работе:

  • DevOps-инженеры и системные администраторы: Сократите время на рутинные задачи, стандартизируйте процессы и получите мощный инструментарий для управления инфраструктурой.
  • Разработчики: Улучшите свою локальную среду разработки, ускорьте работу с Git и Docker, упростите взаимодействие с облачными сервисами.
  • Любой, кто ценит своё время: Если вы устали от повторяющихся команд и хотите сосредоточиться на более сложных и интересных задачах, этот набор скриптов поможет вам освободить время.

Загляните в HariSekhon/DevOps-Bash-tools. Возможно, это именно то, что вы искали, чтобы сделать вашу работу эффективнее и приятнее. Не упустите возможность добавить этот мощный инструмент в свой арсенал!

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.