DevOps Tools
Comprehensive configurations for Docker, Kubernetes, Terraform, tmux, ctags, and AWS CLI with helpful aliases and functions.
Installation
# Install all DevOps tools configurations
make install-tools
# Install individual tools
make install-tmux
make install-ctags
# Or manually
./install.sh tools
tmux Configuration
Advanced terminal multiplexer with enhanced navigation and session management:
# Key Features
- Prefix key: Ctrl-a (easier than default Ctrl-b)
- Mouse support for modern workflows
- Alt-arrow keys for pane navigation
- Alt-number keys for window switching
- Custom status bar with system info
- Vi copy mode for efficient text selection
# Key Bindings
Ctrl-a | # Split pane horizontally
Ctrl-a - # Split pane vertically
Alt-arrow # Navigate between panes
Ctrl-arrow # Resize panes
Alt-1-9 # Switch to window 1-9
Ctrl-a r # Reload configuration
# Usage Examples
tmux # Start new session
tmux new-session -s devops # Start named session
tmux attach -t devops # Attach to existing session
tmux list-sessions # List all sessions
ctags Configuration
Enhanced code navigation and indexing for multiple programming languages:
# Supported Languages
- Python: Classes, functions, decorators
- JavaScript/TypeScript: Functions, classes, variables
- Go: Functions, types, variables, constants
- Shell: Function definitions
- Docker: Images, labels, environment variables
- Terraform: Resources, data sources, variables
- YAML/JSON: Key definitions
# Usage Examples
ctags -R . # Generate tags for current directory
ctags -R --languages=Python . # Generate tags for specific language
vim -t function_name # Jump to function in Vim
Ctrl-] # Jump to tag under cursor in Vim
Ctrl-t # Return from tag in Vim
Available Aliases
This tools configuration includes comprehensive aliases for all major DevOps tools:
Docker Aliases
d - docker (docker command)
dc - docker-compose (docker-compose command)
dps - docker ps (list running containers)
dpsa - docker ps -a (list all containers)
di - docker images (list images)
dex - docker exec -it (execute in container)
dlog - docker logs (show container logs)
dstop- docker stop (stop container)
drm - docker rm (remove container)
drmi - docker rmi (remove image)
Kubernetes Aliases
k - kubectl (kubectl command)
kgp - kubectl get pods (list pods)
kgs - kubectl get services (list services)
kgd - kubectl get deployments (list deployments)
kgn - kubectl get nodes (list nodes)
kdp - kubectl describe pod (describe pod)
kds - kubectl describe service (describe service)
kdd - kubectl describe deployment (describe deployment)
klog - kubectl logs (show pod logs)
kex - kubectl exec -it (execute in pod)
Terraform Aliases
tf - terraform (terraform command)
tfi - terraform init (initialize terraform)
tfp - terraform plan (plan changes)
tfa - terraform apply (apply changes)
tfd - terraform destroy (destroy infrastructure)
tfo - terraform output (show outputs)
tfs - terraform show (show state)
Docker Configuration
Docker aliases and functions for container management:
# Basic Docker aliases
alias dps='docker ps'
alias dpa='docker ps -a'
alias di='docker images'
alias drm='docker rm'
alias drmi='docker rmi'
# Docker Compose aliases
alias dc='docker-compose'
alias dcu='docker-compose up'
alias dcd='docker-compose down'
alias dcb='docker-compose build'
# Docker cleanup function
dcleanup() {
docker system prune -f
docker volume prune -f
}
Kubernetes Configuration
Kubectl aliases and functions for cluster management:
# Kubernetes aliases
alias k='kubectl'
alias kgp='kubectl get pods'
alias kgs='kubectl get services'
alias kgd='kubectl get deployments'
alias kd='kubectl describe'
alias kl='kubectl logs'
alias ke='kubectl edit'
# Context switching function
kctx() {
kubectl config use-context "$1"
}
Terraform Configuration
Terraform aliases and functions for infrastructure management:
# Terraform aliases
alias tf='terraform'
alias tfi='terraform init'
alias tfp='terraform plan'
alias tfa='terraform apply'
alias tfd='terraform destroy'
alias tfo='terraform output'
alias tfs='terraform show'
# Terraform workspace function
tfws() {
terraform workspace select "$1"
}
AWS CLI Configuration
AWS CLI aliases and functions for cloud management:
# AWS CLI aliases
alias aws='aws'
alias awsls='aws s3 ls'
alias awscp='aws s3 cp'
alias awssync='aws s3 sync'
alias awsec2='aws ec2'
alias awslambda='aws lambda'
# AWS profile switching function
awsprof() {
export AWS_PROFILE="$1"
echo "Switched to AWS profile: $1"
}
Configuration Files
- Docker: Dockerfile templates, docker-compose.yml, .dockerignore
- Kubernetes: kubectl config templates and context management
- Terraform: terraform.tfvars.example and workspace configurations
- tmux: Terminal multiplexer with advanced navigation and session management
- ctags: Code navigation and indexing for multiple programming languages
- AWS CLI: Profile configurations and region settings
Sample Docker Compose
version: '3.8'
services:
web:
build: .
ports:
- "3000:3000"
environment:
- NODE_ENV=development
volumes:
- .:/app
depends_on:
- db
db:
image: postgres:13
environment:
- POSTGRES_DB=myapp
- POSTGRES_USER=user
- POSTGRES_PASSWORD=password
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
Sample Terraform Configuration
# terraform.tfvars.example
project_name = "my-project"
environment = "dev"
region = "us-west-2"
# VPC Configuration
vpc_cidr = "10.0.0.0/16"
public_cidr = "10.0.1.0/24"
private_cidr = "10.0.2.0/24"
# Instance Configuration
instance_type = "t3.micro"
instance_count = 2