Production-ready DevOps automation scripts for cloud infrastructure, Kubernetes, and CI/CD pipelines.
Author: Sudhakar Chundu | Updated: December 2025
| Script | Description |
|---|---|
| ubuntu-dev-setup.sh | Ubuntu DevOps toolchain setup |
| raycluster.yaml | KubeRay cluster for ML workloads |
| azure-aks-elasticsearch.sh | Elasticsearch on Azure AKS |
| aws-eks-elasticsearch.sh | Elasticsearch on AWS EKS |
| azure-devops-infra-pipeline.sh | Azure DevOps CI/CD setup |
File: ubuntu-dev-setup.sh
Installs DevOps tools: Terraform, Go, Docker, kubectl, Helm, AWS CLI, Azure CLI.
./ubuntu-dev-setup.shFeatures:
- Multi-arch support (amd64/arm64)
- Ed25519 SSH keys
- Shell completions & aliases (
k,tf,d,gs)
File: raycluster.yaml
┌────────────────────────────────────┐
│ RayCluster │
│ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │ Head │──│Worker│──│Worker│ │
│ └──────┘ └──────┘ └──────┘ │
└────────────────────────────────────┘
kubectl apply -f raycluster.yaml
kubectl port-forward svc/raycluster-complete-head-svc 8265:8265Specs: Ray 2.9.3 | KubeRay API v1 | Autoscaling | Prometheus metrics
File: azure-aks-elasticsearch.sh
┌─────────────────────────────────┐
│ AKS ──► ES Cluster (3 nodes) │
│ ↓ │
│ Ingress + TLS + DNS │
└─────────────────────────────────┘
export AZURE_SUBSCRIPTION_ID="your-sub-id"
./azure-aks-elasticsearch.shDeploys: AKS 1.32 | ES 8.17.0 | cert-manager v1.17.2 | ingress-nginx 4.14.1
File: aws-eks-elasticsearch.sh
┌─────────────────────────────────┐
│ EKS ──► ES Cluster (3 nodes) │
│ ↓ │
│ NLB + Ingress + TLS │
└─────────────────────────────────┘
export AWS_REGION="us-west-2"
./aws-eks-elasticsearch.sh deploy
# Cleanup
./aws-eks-elasticsearch.sh cleanupDeploys: EKS 1.32 | ES 8.17.0 | AWS LB Controller v2.10.0 | gp3 storage
File: azure-devops-infra-pipeline.sh
ADO Project ──► Repos + Pipelines + Variables
↓
Azure ──► TF State Storage + Key Vault
export ARM_SUBSCRIPTION_ID="your-sub-id"
export ADO_ORGANIZATION="your-org"
export ADO_PROJECT="my-project"
export ADO_PAT="your-pat-token"
./azure-devops-infra-pipeline.sh deploy| Component | Version |
|---|---|
| Kubernetes | 1.32 |
| Elasticsearch | 8.17.0 |
| cert-manager | v1.17.2 |
| ingress-nginx | 4.14.1 |
| Ray | 2.9.3 |
| Terraform | 1.7.5+ |
# Azure CLI
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
# AWS CLI
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip && sudo ./aws/install
# kubectl & Helm
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bashgit clone https://github.com/schundu007/scripts.git
cd scripts
chmod +x *.sh
# Ubuntu setup
./ubuntu-dev-setup.sh
# Azure Elasticsearch
AZURE_SUBSCRIPTION_ID="xxx" ./azure-aks-elasticsearch.sh
# AWS Elasticsearch
AWS_REGION="us-west-2" ./aws-eks-elasticsearch.sh deployMIT License - see LICENSE
GitHub: @schundu007 | LinkedIn: Sudhakar Chundu | Gist: @schundu007 |