How to create with_items in python list format?

How to create basic loop using with_items in python list format 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
 ...

Leave a Reply

Your email address will not be published. Required fields are marked *