Ответ
В DevOps для автоматизации рутинных задач используются скрипты на различных языках.
1. Bash/Shell-скрипты:
- Назначение: Автоматизация задач ОС, деплой, мониторинг, работа с файлами.
-
Пример (резервное копирование и деплой):
#!/bin/bash set -euo pipefail # Строгий режим: выход при ошибке, проверка неустановленных переменных APP_DIR="/opt/myapp" BACKUP_DIR="/backup" TIMESTAMP=$(date +'%Y%m%d_%H%M%S') # Создание резервной копии tar -czf "$BACKUP_DIR/app_$TIMESTAMP.tar.gz" "$APP_DIR" # Деплой новой версии scp -r ./build/* deploy-user@prod-server:$APP_DIR/ ssh deploy-user@prod-server "systemctl restart myapp" echo "Deployment completed successfully."
2. Python-скрипты:
- Назначение: Сложная логика, работа с API (AWS, Kubernetes), парсинг JSON/XML/YAML, обработка данных.
-
Пример (проверка здоровья эндпоинта):
import requests import sys response = requests.get('http://app:8080/health', timeout=5) if response.status_code == 200: print('Service is healthy') sys.exit(0) else: print(f'Health check failed: {response.status_code}') sys.exit(1)
3. Groovy-скрипты:
- Назначение: Основной язык для Jenkins Pipeline (файл
Jenkinsfile). - Пример (Declarative Pipeline):
pipeline { agent any stages { stage('Build') { steps { sh 'mvn clean package' } } stage('Test') { steps { sh 'mvn test' } } } }
Общие принципы: обработка ошибок, логирование, параметризация, безопасность (хранение секретов).