Day 2 – Ansible Notes – Pep – Aug – 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
ansible behavioral inventory parameters
==============================================
https://docs.ansible.com/ansible/latest/inventory_guide/intro_inventory.html#connecting-to-hosts-behavioral-inventory-parameters

inventory
------------------------
[web]
14.4.45.5	ansible_user=deploy ansible_password=pass123
14.4.45.6	ansible_ssh_private_key_file=node.pem

[db]
14.4.45.7	ansible_connection=winrm
14.4.45.8	ansible_connection=ssh
db1		ansible_host=14.4.45.9	ansible_port=23 ansible_become=true

inventory
------------------------
[web]
14.4.45.5	
14.4.45.6	

[db]
14.4.45.7	
14.4.45.8	
db1		

[db:vars]
ansible_user=deploy 
ansible_password=pass123
ansible_connection=ssh
ansible_port=23 
ansible_become=true

vars in inventory
=========================
CMD Vs Host Vs group
========================================================================




ansible web -i inventory -m yum -a"state=absent name=httpd" -u root -k  
ansible web -i inventory -m yum -a"state=latest name=httpd" -u root -k
ansible web -i inventory -m copy -a"dest=/var/www/html/index.html src=index.html" -u root -k
ansible web -i inventory -m service -a"name=httpd state=started" -u root -k
ansible web -i inventory -m service -a"name=firewalld state=stopped enabled=no" -u root -k
ansible web -i inventory -m yum -a"state=absent name=httpd" -u root -k  
ansible web -i inventory -m yum -a"state=latest name=httpd" -u root -k
ansible web -i inventory -m copy -a"dest=/var/www/html/index.html src=index.html" -u root -k
ansible web -i inventory -m service -a"name=httpd state=started" -u root -k
ansible web -i inventory -m service -a"name=firewalld state=stopped enabled=no" -u root -k
ansible web -i inventory -m yum -a"state=absent name=httpd" -u root -k  
ansible web -i inventory -m yum -a"state=latest name=httpd" -u root -k
ansible web -i inventory -m copy -a"dest=/var/www/html/index.html src=index.html" -u root -k
ansible web -i inventory -m service -a"name=httpd state=started" -u root -k
ansible web -i inventory -m service -a"name=firewalld state=stopped enabled=no" -u root -k
ansible web -i inventory -m yum -a"state=absent name=httpd" -u root -k  
ansible web -i inventory -m yum -a"state=latest name=httpd" -u root -k
ansible web -i inventory -m copy -a"dest=/var/www/html/index.html src=index.html" -u root -k
ansible web -i inventory -m service -a"name=httpd state=started" -u root -k
ansible web -i inventory -m service -a"name=firewalld state=stopped enabled=no" -u root -k
ansible web -i inventory -m yum -a"state=absent name=httpd" -u root -k  
ansible web -i inventory -m yum -a"state=latest name=httpd" -u root -k
ansible web -i inventory -m copy -a"dest=/var/www/html/index.html src=index.html" -u root -k
ansible web -i inventory -m service -a"name=httpd state=started" -u root -k
ansible web -i inventory -m service -a"name=firewalld state=stopped enabled=no" -u root -k
ansible web -i inventory -m yum -a"state=absent name=httpd" -u root -k  
ansible web -i inventory -m yum -a"state=latest name=httpd" -u root -k
ansible web -i inventory -m copy -a"dest=/var/www/html/index.html src=index.html" -u root -k
ansible web -i inventory -m service -a"name=httpd state=started" -u root -k
ansible web -i inventory -m service -a"name=firewalld state=stopped enabled=no" -u root -k
ansible web -i inventory -m yum -a"state=absent name=httpd" -u root -k  
ansible web -i inventory -m yum -a"state=latest name=httpd" -u root -k
ansible web -i inventory -m copy -a"dest=/var/www/html/index.html src=index.html" -u root -k
ansible web -i inventory -m service -a"name=httpd state=started" -u root -k
ansible web -i inventory -m service -a"name=firewalld state=stopped enabled=no" -u root -k


PLAYBOOK
======================================================
- YAML FILE
- Contains
	- PLAY

- PLAY
	Hosts: localhost | Groupname
	Tasks:
		Mod1 and its param|arguments
		Mod2 and its param
		Mod3 and its param
		Mod4 and its param
		Mod5 and its param
		Mod6 and its param

- PLAY
	Hosts: localhost | Groupname
	Tasks:
		Mod1 and its param
		Mod2 and its param
		Mod3 and its param
		Mod4 and its param
		Mod5 and its param
		Mod6 and its param

- PLAY
	Hosts: localhost | Groupname
	Tasks:
		Mod1 and its param
		Mod2 and its param
		Mod3 and its param
		Mod4 and its param
		Mod5 and its param
		Mod6 and its param




ansible web -i inventory -m yum -a"state=absent name=httpd" -u root -k  
ansible web -i inventory -m yum -a"state=latest name=httpd" -u root -k
ansible web -i inventory -m copy -a"dest=/var/www/html/index.html src=index.html" -u root -k
ansible web -i inventory -m service -a"name=httpd state=started" -u root -k
ansible web -i inventory -m service -a"name=firewalld state=stopped enabled=no" -u root -k



---
- name: Install and configure web server
  hosts: web_servers

  tasks:
    - name: Install the latest version of Apache
      ansible.builtin.yum:
        name: httpd
        state: absent
    - name: Install the latest version of Apache
      ansible.builtin.yum:
        name: httpd
        state: latest
    - name: Copy file with owner and permissions
      ansible.builtin.copy:
        src: index.html
        dest: /var/www/html/index.html
    - name: Start service httpd, if not started
      ansible.builtin.service:
        name: httpd
        state: started
    - name: Start service httpd, if not started
      ansible.builtin.service:
        name: firewalld
        state: stopped
        enabled: no

    - name: Update package cache
      apt:
        update_cache: yes
      when: ansible_os_family == "Debian"


ansible-playbook -i inventory web.yaml -u root -k
Code language: JavaScript (javascript)
====================================================================
===================================================================

Sc1 - One Playbook is calling another playbook
Sc2 - One playbook is calling another tasks file



---
- name: Install and configure web server
  hosts: web

  tasks:
    - name: Install the latest version of Apache
      ansible.builtin.yum:
        name: httpd
        state: absent
    - name: Install the latest version of Apache
      ansible.builtin.yum:
        name: httpd
        state: latest


---
- name: Install and configure web server
  hosts: web

  tasks:
    - name: Copy file with owner and permissions
      ansible.builtin.copy:
        src: index.html
        dest: /var/www/html/index.html
    - name: Start service httpd, if not started
      ansible.builtin.service:
        name: httpd
        state: started
    - name: Start service httpd, if not started
      ansible.builtin.service:
        name: firewalld
        state: stopped
        enabled: no



One Playbook is calling another playbook
====================================
Mehtod 1- master.yaml
		play1
		play2

- import_playbook: play1.yaml
- import_playbook: play2.yaml




ansible-playbook -i inventory play1.yaml -u root -k
ansible-playbook -i inventory play2.yaml -u root -k
ansible-playbook -i inventory master.yaml -u root -k

Sc2 - One playbook is calling another tasks file
===================================================

---
- name: Install and configure web server
  hosts: web

  tasks:
    - name: Install the latest version of Apache
      ansible.builtin.yum:
        name: httpd
        state: absent
    - name: Install the latest version of Apache
      ansible.builtin.yum:
        name: httpd
        state: latest
    - include: tasks.yaml

============================================================
Vars
============================================================
IN PLAYBOOK

---
- name: Install and configure web server
  hosts: web
  vars:
    myname: rajesh
    age: 16
    package: httpd
    service: httpd

  tasks:
    - name: Install the latest version of Apache
      ansible.builtin.yum:
        name: "{{ package }}"
        state: absent
    - name: Install the latest version of Apache
      ansible.builtin.yum:
        name: "{{ service }}"
        state: latest
    - include: tasks.yaml
    - name: Print the gateway for each host when defined
      ansible.builtin.debug:
        msg: My name is {{ myname }} & my age is {{ age }}



    myname: rajesh in vars files
    age: 18
    package: httpd
    service: httpd


---
- name: Install and configure web server
  hosts: web
  vars:
    myname: rajesh
    age: 16
    package: httpd
    service: httpd
  vars_files:
    - "diffvars.yaml"
  vars_prompt:
    - name: "version"
      prompt: "Which version Do you want to install?"
      private: no

  tasks:
    - name: Install the latest version of Apache
      ansible.builtin.yum:
        name: "{{ package }}"
        state: absent
    - name: Install the latest version of Apache
      ansible.builtin.yum:
        name: "{{ service }}"
        state: latest
    - include: tasks.yaml
    - name: Print the gateway for each host when defined
      ansible.builtin.debug:
        msg: My name is {{ myname }} & my age is {{ age }}
    - name: Print the gateway for each host when defined
      ansible.builtin.debug:
        msg: Version is = {{ version }}  



---
- name: Install and configure web server
  hosts: web
  vars:
    myname: rajesh
    age: 16
    package: httpd
    service: httpd
  vars_files:
    - "diffvars.yaml"
  vars_prompt:
    - name: "version"
      prompt: "Which version Do you want to install?"
      private: no

  tasks:
    - name: Install the latest version of Apache
      ansible.builtin.yum:
        name: "{{ package }}"
        state: absent
    - name: Install the latest version of Apache
      ansible.builtin.yum:
        name: "{{ service }}"
        state: latest
    - include: tasks.yaml
    - name: include default step variables
      include_vars: task_vars.yaml
    - name: Print the gateway for each host when defined
      ansible.builtin.debug:
        msg: My name is {{ myname }} & my age is {{ age }}
    - name: Print the gateway for each host when defined
      ansible.builtin.debug:
        msg: Version is = {{ version }}
    - name: Ansible register variable basic example
      shell: "find *.txt"
      args:
        chdir: "/root/rajesh"
      register: find_output
    - debug:
        var: find_output
    - debug:
        var: find_output.stdout_lines
    - debug:
        var: find_output.stdout_lines[0]


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