Please enable JavaScript.
Coggle requires JavaScript to display documents.
Learn Ansible - Coggle Diagram
Learn Ansible
Enterprise Ansible CI/CD
What is CI/CD?
Definition
CI (Continuous Integration)
Developers frequently merge code into a central repository.
Automated testing validates every change.
Detects bugs early.
Reduces integration problems.
CD (Continuous Delivery)
Automatically prepares tested code for deployment.
Deployment requires manual approval.
CD (Continuous Deployment)
Automatically deploys tested code to production without manual approval.
Enterprise Goals
Standardized automation
Infrastructure as Code (IaC)
Configuration as Code
Version Control
Automated Testing
Secure Deployment
Compliance
Rollback Capability
Audit Trail
High Availability
Disaster Recovery
Repeatable Deployments
Enterprise CI/CD Architecture
Developer Workstation
VS Code
Git
Ansible
Source Code Repository
GitHub
GitLab
Enterprise Git Server
CI Server
Jenkins
GitLab CI/CD
GitHub Actions
Azure DevOps
Artifact Repository
Playbooks
Roles
Collections
Docker Images
Deployment Server
Ansible Automation Controller (AWX)
Ansible Controller
Target Systems
Linux Servers
Windows Servers
Network Devices
VMware
Cloud
Kubernetes Cluster
Docker Hosts
Version Control with Git
Purpose
Store Infrastructure as Code
Track Changes
Team Collaboration
Rollback
Branch Management
Installation
Ubuntu
sudo apt install git
RHEL
sudo dnf install git
Verify
git --version
Configuration
git config --global user.name "Bilal Ahmad"
git config --global user.email
"admin@example.com
"
Configuration File
~/.gitconfig
Repository Initialization
git init
Clone Repository
git clone
https://repository.git
Repository Status
git status
Add Files
git add file.yml
git add .
Commit Changes
git commit -m "Updated playbook"
View History
git log
git log --oneline
Branch Management
git branch
git branch development
git checkout development
git switch development
git merge development
Remote Repository
git remote -v
git remote add origin URL
git push origin main
git pull origin main
git fetch
Tags
git tag
git tag v1.0
git push origin v1.0
Ignore Files
.gitignore
Enterprise Git Strategy
Main Branch
Production
Development Branch
Testing
Feature Branch
New Features
Release Branch
Pre-production
Hotfix Branch
Emergency Fixes
GitHub Integration
Purpose
Store Playbooks
Store Roles
Team Collaboration
Pull Requests
Code Reviews
Issue Tracking
Repository Structure
ansible-project
inventories
playbooks
roles
collections
group_vars
host_vars
templates
files
plugins
ansible.cfg
README.md
Authentication
SSH Keys
Personal Access Token
Generate SSH Key
ssh-keygen
SSH Directory
~/.ssh/
Public Key
id_ed25519.pub
Private Key
id_ed25519
Test Connection
ssh -T
git@github.com
Clone
git clone
git@github.com
:user/project.git
Push
git push origin main
Pull
git pull origin main
Pull Requests
Feature Branch
Code Review
Merge Approval
GitHub Actions
Workflow
Trigger
Build
Test
Deploy
Workflow Directory
.github/workflows/
Example Workflow
ansible-lint
syntax check
Molecule testing
Deployment
GitLab Integration
Purpose
Source Code Management
CI/CD Pipelines
Merge Requests
Security Scanning
GitLab Runner
Linux Runner
Docker Runner
Kubernetes Runner
Pipeline File
.gitlab-ci.yml
Pipeline Stages
Validate
Test
Build
Deploy
Common Jobs
ansible-lint
yamllint
syntax-check
molecule
deploy
GitLab Variables
Protected Variables
Secret Variables
SSH Keys
Access Tokens
Environment
Development
Staging
Production
Jenkins Integration
Purpose
Continuous Integration Server
Continuous Deployment Server
Installation
Ubuntu
sudo apt install openjdk
sudo apt install jenkins
RHEL
sudo dnf install java
sudo dnf install jenkins
Service
systemctl start jenkins
systemctl enable jenkins
systemctl status jenkins
Configuration Path
/etc/default/jenkins
/var/lib/jenkins/
/var/log/jenkins/
Web Interface
Port 8080
Initial Password
/var/lib/jenkins/secrets/initialAdminPassword
Plugins
Git Plugin
Ansible Plugin
Docker Plugin
Kubernetes Plugin
Blue Ocean
Jenkins Agent
Static Agent
Dynamic Agent
Pipeline
Pipeline as Code
Jenkinsfile
Jenkinsfile Location
Project Root
Pipeline Stages
Checkout
Lint
Syntax Check
Unit Testing
Molecule Testing
Deploy
Verification
Execute Playbook
ansible-playbook site.yml
Credentials
SSH Keys
API Tokens
Vault Password
Secrets
Build Triggers
Git Push
Schedule
Manual
Webhook
Ansible Linting
Purpose
Verify Best Practices
Detect Mistakes
Tool
ansible-lint
Installation
pip install ansible-lint
Run
ansible-lint playbook.yml
Configuration
.ansible-lint
YAML Validation
Tool
yamllint
Installation
sudo apt install yamllint
Run
yamllint playbook.yml
Configuration
.yamllint
Syntax Validation
Purpose
Validate Playbook
Command
ansible-playbook playbook.yml --syntax-check
Inventory Validation
Command
ansible-inventory --list
ansible-inventory --graph
Molecule Testing
Purpose
Test Roles
Test Playbooks
Installation
pip install molecule
Initialize
molecule init scenario
Execute
molecule create
molecule converge
molecule verify
molecule destroy
molecule test
Directory
molecule/
Terraform Integration
Purpose
Provision Infrastructure
Configure Infrastructure
Workflow
Terraform
Create VM
Create Network
Create Storage
Ansible
Configure Operating System
Install Packages
Configure Services
Installation
sudo apt install terraform
Configuration File
*.tf
Commands
terraform init
terraform validate
terraform fmt
terraform plan
terraform apply
terraform destroy
State File
terraform.tfstate
Variable File
terraform.tfvars
Enterprise Flow
Provision
Configure
Test
Deploy
Docker Integration
Purpose
Container Automation
Installation
sudo apt install docker.io
Service
systemctl start docker
systemctl enable docker
Verify
docker version
docker info
Image Operations
docker pull
docker images
docker build
docker tag
docker push
Container Operations
docker run
docker ps
docker exec
docker logs
docker stop
docker rm
Docker Compose
docker compose up
docker compose down
Dockerfile
Build Container Images
Integration with Ansible
community.docker Collection
Build Images
Run Containers
Remove Containers
Manage Networks
Manage Volumes
Docker Paths
/var/lib/docker/
/etc/docker/
/etc/docker/daemon.json
Kubernetes Integration
Purpose
Container Orchestration
Enterprise Deployments
Components
Control Plane
Worker Nodes
API Server
Scheduler
Controller Manager
etcd
kubelet
kube-proxy
Install kubectl
Verify
kubectl version
kubectl cluster-info
kubectl get nodes
Common Commands
kubectl get pods
kubectl get deployments
kubectl get services
kubectl describe pod
kubectl logs
kubectl exec
kubectl delete
kubectl apply
Manifest Files
YAML
Resource Types
Pod
Deployment
Service
ConfigMap
Secret
Ingress
PersistentVolume
Namespace
Ansible Collection
kubernetes.core
Ansible Kubernetes Modules
k8s
helm
kubeconfig
~/.kube/config
Deployment Flow
Build Docker Image
Push Image
Update Manifest
Deploy with Ansible
Verify Pods
Verify Services
Enterprise Secrets Management
Ansible Vault
ansible-vault create secrets.yml
ansible-vault edit secrets.yml
ansible-vault encrypt secrets.yml
ansible-vault decrypt secrets.yml
ansible-vault view secrets.yml
Jenkins Credentials
GitHub Secrets
GitLab Variables
Kubernetes Secrets
HashiCorp Vault
Enterprise Deployment Environments
Development
Developer Testing
Quality Assurance
Functional Testing
Staging
Production Replica
User Acceptance Testing
Business Approval
Production
Live Systems
Disaster Recovery
Backup Environment
Enterprise Deployment Strategy
Rolling Deployment
Blue Green Deployment
Canary Deployment
Immutable Infrastructure
Zero Downtime Deployment
Automated Rollback
Enterprise Project Structure
ansible-enterprise
ansible.cfg
inventories
development
testing
staging
production
playbooks
roles
collections
group_vars
host_vars
templates
files
plugins
library
filter_plugins
molecule
requirements.yml
requirements.txt
.ansible-lint
.yamllint
.gitignore
Jenkinsfile
.gitlab-ci.yml
.github
workflows
terraform
docker
kubernetes
vault
README.md
LICENSE
CHANGELOG.md
Complete Enterprise Workflow
Developer Updates Playbook
Git Detects Changes
Commit Created
Push to GitHub or GitLab
Webhook Triggers Jenkins or GitLab CI
Pipeline Starts
Install Dependencies
YAML Validation
Ansible Lint
Syntax Check
Inventory Validation
Molecule Testing
Terraform Creates Infrastructure
Docker Builds Images
Docker Pushes Images
Kubernetes Manifest Updated
Ansible Deploys Configuration
Kubernetes Deploys Application
Health Check
Monitoring
Logging
Notification
Rollback if Failure
Audit Log Updated
Deployment Completed Successfully