How to create basic loop using with_items in ansible playbook?

Create a ansible config file as ansible.cfg file in your project directory:

[defaults]
inventory = hosts

Create a hosts file as hosts in the project directory

[webservers]
 ansnode1 ansible_ssh_host=192.168.56.202 ansible_python_interpreter=/usr/bin/python
 ansnode2 ansible_ssh_host=192.168.56.203 ansible_python_interpreter=/usr/bin/python

[webservers:vars]
 ansible_port=22
 http_port=8080

[dbservers]
 ansnode3 ansible_ssh_host=192.168.56.204 ansible_python_interpreter=/usr/bin/python
 ansnode4 ansible_ssh_host=192.168.56.205 ansible_python_interpreter=/usr/bin/python

[dev:children]
 webservers
 dbservers

Create a file named called as motd_playbook.yml in your project directory

---
 # YAML documents begin with the document separator ---
 # The minus in YAML this indicates a list item. The Playbook contains a list
 # of plays, with each play being a dictionary

- name: 'Basic play loop using with with_items'

  # Target: where our play will run and options it will run with
  hosts: all

  # Task: the list of tasks that will be executed within the playbook
  tasks:
    - name: Configuring a MOTD (message of the day)
     copy:
       content: "Welcome to {{ item }} Linux - Ansible Rocks !!\n"
       dest: /etc/motd
    notify: MOTD changed
    with_items: ['OracleLinux','Ubuntu']
    when: ansible_distribution == item

  # Handlers: handlers that are executed as a notify key from a task
  handlers:
    - name: MOTD changed
      debug:
        msg: The MOTD was changed

# Three dots indicate the end of a YAML document
 ...

Become a Subscriber
Get the Notify on latest Videos in your Desktop and Mobile . We never spam!
Popular Videos
Read next

Get Esxi host name by vm name using pyvmomi

Get Esxi host name by vm name using pyvmomi Import necessary modules from pyVim and pyVmomi libraries. SmartConnect is used for connecting to the ESXi host or vCenter, and vim contains the VMware Infrastructure (vSphere) model. Complete Code

December 13, 2023