Overview of CI/CD Pipelines
- Basic Pipeline

- In each Enviroment such as System Test or Performance Test or Load Test environment, expectation is
- Ensure the application is deployed and running
- We execute the Automated Tests and showcase the results
- Relevance of Configuration Management:
- This comes into play when your application is deployed on Physical or virtual machines
Configuration Management (CM)
- This is used to configure applications or setups on servers.
- Where is it used
- deploying applications on servers
- network automation
- How does this work ?

- Models in Configuration Managment
- PUSH BASED CM:
- Examples:
- Ansible
- Salt
- Examples:
- PULL BASED CM
- Examples
- Chef
- Puppet
- Examples
- HYBRID (Support Both)
- Examples:
- Powershell DSC
- Examples:
- PUSH BASED CM:
- PUSH BASED CM (Design Considerations):
- In this case CM Server needs to maintain list of all node details like (name, ipaddress etc)
- It also needs credentials

- PULL BASED CM
- In this agent needs to be installed on node
- No credentials are required

Ansible
- Ansible is simple to use,
- Ansible works in two ways
- directly execute commands
- write yaml files (playbooks) to define what you want.
- Ansible is an opensource software developed in python Refer Here
- Ansible is also widely used in Network and Datacenter Automations
- In the world of Ansible
- CMServer => Ansible control node
- list of node and ip details => inventory
- Ansible uses python to work

Understanding Ansible Workflow
- Goal: Deploy nginx on a server
- Manual activities:
sudo apt update
sudo apt install nginx -y
- Ansible’s approach (Declarative):
- I will create a playbook
---
- name: install nginx
hosts: all
become: yes
tasks:
- name: install and update nginx
apt:
name: nginx
update_cache: yes
state: present

Goals
- Try doing some manual deployments
- Learn YAML
- Automate manual deployments by writing playbooks
- Write Ansible Playbooks effeciently
