На каких языках пишешь скрипты для автоматизации в DevOps?

Ответ

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

Основные языки и их применение:

  • Bash/Shell:

    • Для чего: Автоматизация рутинных операций в Linux-окружении, написание обёрток для CLI-утилит, простые скрипты развёртывания, логирование, работа с файлами и процессами.
    • Пример (очистка старых логов):
      #!/bin/bash
      LOG_DIR="/var/log/myapp"
      RETENTION_DAYS=30
      echo "Cleaning logs older than $RETENTION_DAYS days in $LOG_DIR"
      find "$LOG_DIR" -name "*.log" -type f -mtime +$RETENTION_DAYS -delete
  • Python:

    • Для чего: Сложная логика, взаимодействие с API (AWS, Kubernetes, GitLab), обработка данных (логи, метрики), создание инструментов для команд, работа с YAML/JSON конфигурациями.
    • Пример (проверка статуса pods в Kubernetes через API):

      import requests
      import json
      
      api_server = "https://kube-api.example.com"
      token = "<your-token>"
      namespace = "production"
      
      headers = {"Authorization": f"Bearer {token}"}
      response = requests.get(
          f"{api_server}/api/v1/namespaces/{namespace}/pods",
          headers=headers,
          verify="/path/to/ca.crt"
      )
      pods = response.json()
      for pod in pods['items']:
          print(f"{pod['metadata']['name']}: {pod['status']['phase']}")
  • PowerShell:

    • Для чего: Автоматизация в Windows-окружении, управление Active Directory, работа с облачными сервисами Microsoft (Azure) через модули.

Критерии выбора: Bash — для быстрых, одноразовых задач в Linux. Python — для сложных, поддерживаемых скриптов и инструментов, требующих библиотек. PowerShell — для экосистемы Windows/Azure.

Ответ 18+ 🔞

Вот, блядь, сидишь ты такой, думаешь: на каком языке писать-то, чтобы всё летало? А выбор-то, ёпта, невелик, но каждый — свой спецназ.

Основные языки и где их впендюрить:

  • Bash/Shell:

    • Для чего: Когда надо на коленке набросать скрипт, чтобы что-то почистило, перезапустило или просто накостыляло по файлам. Идеально для быстрых одноразовых костылей в Линуксе. Сложную логику сюда пихать — это пизда рулю, сам потом охуеешь разбираться.
    • Пример (выпиливаем старые логи):
      #!/bin/bash
      LOG_DIR="/var/log/myapp"
      RETENTION_DAYS=30
      echo "Cleaning logs older than $RETENTION_DAYS days in $LOG_DIR"
      find "$LOG_DIR" -name "*.log" -type f -mtime +$RETENTION_DAYS -delete
    • Итог: Если задача проще, чем яичницу пожарить — бери Bash и не парься. Доверия ебать ноль к его надёжности в сложных сценариях, но для мелких дел — огонь.
  • Python:

    • Для чего: А вот это уже серьёзно. Когда нужно не просто скрипт, а целый инструмент с мозгом. Тянуть данные из кучи API (эти твои AWS, K8s), обрабатывать логи, генерировать конфиги — тут Python царь и бог. Библиотек — овердохуища, и писать на нём можно так, что потом даже ты сам через полгода поймёшь, что наваял.
    • Пример (тырим статусы подов из K8s):

      import requests
      import json
      
      api_server = "https://kube-api.example.com"
      token = "<your-token>"
      namespace = "production"
      
      headers = {"Authorization": f"Bearer {token}"}
      response = requests.get(
          f"{api_server}/api/v1/namespaces/{namespace}/pods",
          headers=headers,
          verify="/path/to/ca.crt"
      )
      pods = response.json()
      for pod in pods['items']:
          print(f"{pod['metadata']['name']}: {pod['status']['phase']}")
    • Итог: Если задача требует ума, а не просто грубой силы — это твой выбор. Подозрение ебать чувствую, что половина всех DevOps-утилит на нём и написана.
  • PowerShell:

    • Для чего: Ну, тут всё просто. Если твой мир — это Винда, ёперный театр с Active Directory и весь этот Azure, то выбора у тебя, по сути, и нет. Он там свой, хитрая жопа, но зато родной и всё умеет.

Какой итог, чувак? Всё просто, как три копейки.

  • Bash — для быстрых правок, когда терпения ноль ебать и надо за пять минут.
  • Python — когда нужен полноценный, вменяемый инструмент, который не стыдно в гите хранить.
  • PowerShell — когда вокруг одни окошки и гомосеки налетели из Microsoft.

Выбирай по обстановке, и не выёбывайся. Главное — чтобы работало, а не чтобы языком каким-модным похвастаться.