Ответ
В 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.