Ansible Training Notes 14 Oct 2023

DevOps

MOTOSHARE 🚗🏍️
Turning Idle Vehicles into Shared Rides & Earnings

From Idle to Income. From Parked to Purpose.
Earn by Sharing, Ride by Renting.
Where Owners Earn, Riders Move.
Owners Earn. Riders Move. Motoshare Connects.

With Motoshare, every parked vehicle finds a purpose. Owners earn. Renters ride.
🚀 Everyone wins.

Start Your Journey with Motoshare
What is Ansible?
-------------------------------------------
Config 	mgmt 	tool
--------
Server(S)
Release
cli - cmd - free - os
tower - web - paid - 
awx  - web - free but no support
From Redhat
Written in python
Config
file		action - cud
dir		
package		i r u 
service		e s s r d 
user		a e d 
group
yum		i r 
apt
cmd		cmd
ps
bash		cmd
=================================================================
Why We need Ansible?
==============================================
You can deploy 100 of changes in the 100s of server parrell.
IDEOMPOTENT - 
1st ----> 10 Steps ------>  1 mins ---------> 10 mins
1st ----> 3 Steps ------>  1 mins ---------> 3 mins
SHELL
WINDOWS
PS
LINUX
PYTHON
10 days 
Ansible -  
Few Hours
DSL 
Others tools - Chef - Puppet - Salt - Cfengine
=============================================================
Udeploy - Octoupus Deploy
How Ansible works!!!!
============================================================
YOU -------> 	ACS ------------------> ARS
Linux			Anything
64 b			anything
ansible			not required	
-----------------SSH -------> Linux
-----------------WINRM ------> WINDOWS
python			linux - python
win - dotnet + ps3
==============================================================
Components of ACS
---------------------------------------
Ansible
- executables
- plugins - Its python code - Which run in ACS to add more feature
- modules - Its python/PS code - which run in ARS 5000
eg. copy - required param
- Ansible Config
/etc/ansible/ansible.cfg
Inventory
Playbook
===============================================================
ACS 
65.2.170.81
ARS 
13.126.189.32
3.108.193.197
How to install Ansible?
https://www.devopsschool.com/blog/ansible-installation-and-configuration-guide/
======================================================
Ansible Adhoc Commands
Ansible Inventory
----------------------------------
- List of IPADD of ARS
- CMD
- file
Ansible Playbook
Ansible Vars
Ansible Role
=======================================================
PROJECT 
- Setup a web server
Psucode - UBUNTU
install apache
copy a web package
start a server
- do it manually
Ansible Module for Install package in UBUNTU apt
state
Ansible Module for copy a file package - copy
state
Ansible Module for starting a service
state
ansible localhost -m apt -a"name=apache2 state=latest"
ansible localhost -m copy -a"src=index.html  dest=/var/www/html/index.html"
ansible localhost -m service -a"name=apache2 state=started"
ansible all -i 13.126.189.32,3.108.193.197, -m apt -a"name=apache2 state=latest update_cache=yes" -u ubuntu --key-file=node.pem -b
ansible all -i 13.126.189.32,3.108.193.197, -m copy -a"src=index.html  dest=/var/www/html/index.html" -u ubuntu --key-file=node.pem -b
ansible all -i 13.126.189.32,3.108.193.197, -m service -a"name=apache2 state=started" -u ubuntu --key-file=node.pem -b
[defaults]
# uncomment this to disable SSH key host checking
# host_key_checking = False SSH key host checking
host_key_checking = False
ansible all -i 13.126.189.32,3.108.193.197,3.108.193.197,3.108.193.197,3.108.193.197,3.108.193.197,3.108.193.197,3.108.193.197,3.108.193.197,3.108.193.197,3.108.193.197, -m apt -a"name=apache2 state=latest update_cache=yes" -u ubuntu --key-file=node.pem -b
ansible all -i 13.126.189.32,3.108.193.197, -m copy -a"src=index.html  dest=/var/www/html/index.html" -u ubuntu --key-file=node.pem -b
ansible all -i 13.126.189.32,3.108.193.197, -m service -a"name=apache2 state=started" -u ubuntu --key-file=node.pem -b
inventory
13.126.189.32
3.108.193.197
ansible all -i inventory -m apt -a"name=apache2 state=latest update_cache=yes" -u ubuntu --key-file=node.pem -b
ansible all -i inventory -m copy -a"src=index.html  dest=/var/www/html/index.html" -u ubuntu --key-file=node.pem -b
ansible all -i inventory -m service -a"name=apache2 state=started" -u ubuntu --key-file=node.pem -b
inventory
[web]
13.126.189.32
3.108.193.197
[db]
13.126.189.35
3.108.193.133
ansible web -i inventory -m apt -a"name=apache2 state=latest update_cache=yes" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m copy -a"src=index.html  dest=/var/www/html/index.html" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m service -a"name=apache2 state=started" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m apt -a"name=apache2 state=latest update_cache=yes" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m copy -a"src=index.html  dest=/var/www/html/index.html" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m service -a"name=apache2 state=started" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m apt -a"name=apache2 state=latest update_cache=yes" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m copy -a"src=index.html  dest=/var/www/html/index.html" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m service -a"name=apache2 state=started" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m apt -a"name=apache2 state=latest update_cache=yes" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m copy -a"src=index.html  dest=/var/www/html/index.html" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m service -a"name=apache2 state=started" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m apt -a"name=apache2 state=latest update_cache=yes" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m copy -a"src=index.html  dest=/var/www/html/index.html" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m service -a"name=apache2 state=started" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m apt -a"name=apache2 state=latest update_cache=yes" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m copy -a"src=index.html  dest=/var/www/html/index.html" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m service -a"name=apache2 state=started" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m apt -a"name=apache2 state=latest update_cache=yes" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m copy -a"src=index.html  dest=/var/www/html/index.html" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m service -a"name=apache2 state=started" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m apt -a"name=apache2 state=latest update_cache=yes" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m copy -a"src=index.html  dest=/var/www/html/index.html" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m service -a"name=apache2 state=started" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m apt -a"name=apache2 state=latest update_cache=yes" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m copy -a"src=index.html  dest=/var/www/html/index.html" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m service -a"name=apache2 state=started" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m apt -a"name=apache2 state=latest update_cache=yes" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m copy -a"src=index.html  dest=/var/www/html/index.html" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m service -a"name=apache2 state=started" -u ubuntu --key-file=node.pem -b
TOO MANY TASK
VARS
Cond
==========================================
What is Playbook?
YAML FILE
Collection of play
What is play?
Hosts: localhost OR groupname
Tasks:
Module 1 & Param
Module 2 & Param
Module 3 & Param
---
- name: Update web servers
hosts: web
tasks:
- name: Install Apache in ubuntu
ansible.builtin.apt:
name: "apache2"
state: latest
- name: Copy index.html
ansible.builtin.copy:
src: index.html
dest: /var/www/html/index.html
- name: Starting a Apache Server
ansible.builtin.service:
name: "apache2"
state: started
- name: install git
apt:
name: git
update_cache: yes
ansible-playbook -i inventory web.yaml -u ubuntu --key-file=node.pem -b
==================================================================
Variable
-----------------------------
---
- name: Update web servers
hosts: web
vars:
myname: "Rajeshkumar"
age: "18"
packagename: "apache2"
servicename: "apache2"
vars_files:
- "vars.yaml"
vars_prompt:
- name: "version"
prompt: "Which version Do you want to install?"
private: no
tasks:
- name: Install Apache in ubuntu
ansible.builtin.apt:
name: "{{ packagename }}"
state: latest
- name: Copy index.html
ansible.builtin.copy:
src: index.html
dest: /var/www/html/index.html
- name: Starting a Apache Server
ansible.builtin.service:
name: "{{ servicename }}"
state: started
- name: Print return information from the previous task
ansible.builtin.debug:
var: myname
- name: Print return information from the previous task
ansible.builtin.debug:
msg: "My Name is {{ myname }} and My age is {{ age }}"
- name: Print return information from the previous task
ansible.builtin.debug:
var: version
- name: Ansible register variable basic example
shell: "find *.txt"
args:
chdir: "/root/ansible"
register: find_output
- debug:
var: find_output
- debug:
var: find_output.stdout_lines
- debug:
var: find_output.stdout_lines[0]
=====================================================================
ROLES
=======================================
TOO MANY playbook
TOO many vars
TOO many files would be used
TOO many Template would be used
TOO many Handler would be used
role
directory stru
---
- name: Update web servers
hosts: web
roles:
web
ansible-playbook -i inventory role.yaml -u ubuntu --key-file=node.pem -b
Code language: PHP (php)
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x