Ansible Variable Lab & Excercise – Part 2

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

Assigment 1 – Create a playbook and setup a webserver(httpd) and use httpd as a variable decalared in role var file

---
-name: webserver
 host:web
 vars_files:
   - var-file.yml

 tasks:
 -name: Install latest httpd
  yum:
     name: "{{packname}}"
     state: latest
 - name: Start service httpd, if not started
   ansible.builtin.service:
      name: "{{packname}}"
      state: startedCode language: JavaScript (javascript)

Assigment 2 – Create a playbook and setup a webserver(httpd) and use httpd as a variable declared using prompt.

---
-name: webserver
 host: web
 vars_prompt:
   - name: "webserver"
      prompt: "Which webserver do you want to install?"
      private: false
 tasks:
 - yum:
    name: "{{ webserver }}"
    state: latest
 - name: Start service httpd, if not started
    ansible.builtin.service:
      name: "{{ webserver }}"
      state: startedCode language: PHP (php)

Assigment 3 – Create a playbook and setup a webserver(httpd) and find a list of .txt file in some directory and output using register variables

---
-name: webserver
 host:web
 vars:
   webserver: httpd

 tasks:
 -name: Install latest httpd
  yum:
    name: "{{ webserver }}"
    state: latest
 - name: Start service httpd, if not started
    ansible.builtin.service:
      name: "{{ webserver }}"
      state: started
 -name: Listing .txt files
    shell: "find *.txt"
    args:
      chdir: "/home/centos/ansible/sanchita"
    register: find_output
 - name: Print the vars
   ansible.builtin.debug:
     var: find_output.stdout_lines
    Code language: PHP (php)

Assigment 4 – Create a playbook and setup a webserver(httpd), copy a index.html and interpolate variables in template file decalared in playbook.

---
-name: webserver
 host:web
 vars:
   webserver: httpd
 
 tasks:
 -name: Install latest httpd
  yum:
    name: "{{ webserver }}"
    state: latest
 - name: copy index.html
   ansible.builtin.template:
     src: index.html.j2
     dest: /var/www/html/
 - name: Start service httpd, if not started
   ansible.builtin.service:
     name: "{{ webserver }}"
     state: startedCode language: JavaScript (javascript)