Ansible Learning Notes

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

DAY1

What is Ansible
---------------------------------
Deployment tool
Config mgmt tool
tool	
save cost
save time
imp qual
mgmt
SERVER(S)
Config
Config of Server
file
dir
user
apt
yum
services
bash
Python
Release
ansible - cmd
tower - web 
awx - web
from Redhat
Why Ansible?
platform inde*
Ability to run Script parr* in 1000 of server(S)
IDEOMPOTENT 
Easy 
to read
write
debug
share
learn
Others 
Chef puppet ansible salt cfegine
====================================================================
How to Works? Arch*
==========================================================
Human --> ACS --------> ARS(S)
========================================================
linux		Any
Ansible	NA
--------- Linux -- SSH
--------- Windows -- Winrm / HTTP
python3		Linux - python
win - dotnet + ps3
54.89.178.94	
Components of Ansible
--------------------------------
Ansible
Executable(S)
Modules - Python code --> RUN IN ARS - Copy delete apt script
https://docs.ansible.com/ansible/2.9/modules/modules_by_category.html
https://docs.ansible.com/ansible/2.9/modules/list_of_all_modules.html
Plugins	- Python code --> RUN IN ACS - Adding extra fea of Ansible
Configfile - /etc/ansible/ansible.cfg
https://gist.github.com/alivx/2a4ca3e577ead4bd38d247c258e6513b
Inventory | hostfile
file 
contains IPAdd(s) of ARS
10.1.1.1
10.22.2.2
222.33.3.3
4.5.5.5
group - all(built-in)
[web]
10.1.1.1
10.22.2.2
[db]
222.33.3.3
4.5.5.5
playbook
yaml file
contains play
play
hosts: GROUP of Inventory | all | web | db
tasks:
- module copy n Its param
- module apt n Its param
- module service n Its param
ansible-playbook -i inventory web.yaml
============================================================
ADHOC
---------------
Project
write a ansible automation to deploy webserver.
Step 1 - Find out ARS is linux or windows-- linux | ubuntu | apache
Step 2 - find a module which would install apache in ubuntu		- apt
- https://docs.ansible.com/ansible/latest/collections/ansible/builtin/apt_module.html
Step 3 - find a module which copy software into /var/lib/www/		- copy
- https://docs.ansible.com/ansible/latest/collections/ansible/builtin/copy_module.html
Step 4 - find a module which which would start apache services		- services
- https://docs.ansible.com/ansible/latest/collections/ansible/builtin/service_module.html
ansible localhost -m apt -a"name=apache2 state=latest"
ansible localhost -m copy -a"src=index.html dest=/var/www/html"
ansible localhost -m service -a"name=apache2 state=started"
[web]
54.89.178.94
34.239.106.240
10.1.1.1
10.22.2.2
[db]
222.33.3.3
4.5.5.5
ansible web -i inventory -m apt -a"name=apache2 state=latest"
ansible web -i inventory -m copy -a"src=index.html dest=/var/www/html"
ansible web -i inventory -m service -a"name=apache2 state=started"
root@ip-172-31-87-83:~# ansible web -i inventory -m apt -a"name=apache2 state=latest"
The authenticity of host '54.89.178.94 (54.89.178.94)' can't be established.
ED25519 key fingerprint is SHA256:/bb5HKInMiqK9Gg4+HAIpXvL1so/gMPk5YXHBOw7960.
This key is not known by any other names
The authenticity of host '34.239.106.240 (34.239.106.240)' can't be established.
ED25519 key fingerprint is SHA256:n1JRfvbTbzn5irTGzoH9UOVp0gAPLz+IyxsR55PsiSk.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
54.89.178.94 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Warning: Permanently added '54.89.178.94' (ED25519) to the list of known hosts.\r\nroot@54.89.178.94: Permission denied (publickey).",
"unreachable": true
}
10.1.1.1 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: ssh: connect to host 10.1.1.1 port 22: Connection timed out",
"unreachable": true
}
10.22.2.2 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: ssh: connect to host 10.22.2.2 port 22: Connection timed out",
"unreachable": true
}
34.239.106.240 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Host key verification failed.",
"unreachable": true
ansible web -i inventory -m apt -a"name=apache2 state=latest" -u ubuntu --key-file=node.pem -b
ansible web -i inventory -m copy -a"src=index.html dest=/var/www/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
Code language: PHP (php)

Day 2

=======================================================
PLAYBOOK
playbook
yaml file
contains play
play
hosts: GROUP of Inventory | all | web | db
tasks:
- module copy n Its param
- module apt n Its param
- module service n Its 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: Print return information from the previous task
ansible.builtin.debug:
msg: "Hello Everyone"
ansible-playbook -i inventory web.yaml -u ubuntu --key-file=node.pem -bCode language: JavaScript (javascript)
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