DevOps-Bash-tools: Твой Швейцарский Нож для Автоматизации Инфраструктуры
Знакома ситуация, когда вы переключаетесь между десятками инструментов, каждый со своим синтаксисом и особенностями? Когда рутина отнимает драгоценное время, а повторяющиеся задачи превращаются в бесконечный день сурка? Если вы 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. Возможно, это именно то, что вы искали, чтобы сделать вашу работу эффективнее и приятнее. Не упустите возможность добавить этот мощный инструмент в свой арсенал!
