---
- name: debug module demo
hosts: all
vars:
fruit: "Apple"
tasks:
- name: Debug Message Prints Hello World
ansible.builtin.debug:
- name: Customized Debug Message
ansible.builtin.debug:
msg: "Example Text Message"
- name: Display fruit Variable
ansible.builtin.debug:
var: fruit
- name: Using jinja Template to display fruit variable
ansible.builtin.debug:
msg: "The Fruit is {{ fruit }}"
- name: Task with Verbosity 2
ansible.builtin.debug:
verbosity: 2
![image](https://private-user-images.githubusercontent.com/1314201/303913391-ab35cfa5-6993-46bc-b14b-7fcdd091a0dd.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMzODMxOTQsIm5iZiI6MTcyMzM4Mjg5NCwicGF0aCI6Ii8xMzE0MjAxLzMwMzkxMzM5MS1hYjM1Y2ZhNS02OTkzLTQ2YmMtYjE0Yi03ZmNkZDA5MWEwZGQucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgxMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MTFUMTMyODE0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9OTM2M2YxM2VjZjA3MjBmZjRkMTYwNmIwNmEyOTE3NWYyMTU0NGUyMGY5NjNmY2ZkZjM5ODYzNTY5OGQ5YTZlNCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.y21Yu3vtHlS4HnJ3hWek8UO4S5iigf2eRLg9vIGLECY)
![image](https://private-user-images.githubusercontent.com/1314201/303913432-3fb38e53-9f8c-4d23-a02a-2a5725c48973.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMzODMxOTQsIm5iZiI6MTcyMzM4Mjg5NCwicGF0aCI6Ii8xMzE0MjAxLzMwMzkxMzQzMi0zZmIzOGU1My05ZjhjLTRkMjMtYTAyYS0yYTU3MjVjNDg5NzMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgxMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MTFUMTMyODE0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9M2RkOGJhZGVhNjE4ODNjNmYxN2Y4YjczMWMzZjgzMTlmOWIzMDJhZWVjZjRjNTc0MGU5MzA1N2I0YWZkZDVlNCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.OsdHSaCk_ONxAzOfhfQ3jtWa3oM-K0JT6CerZJJi7Zk)
---
- name: pause module demo
hosts: all
vars:
wait_seconds: 10
tasks:
- name: pause for {{ wait_seconds | int }} second(s)
ansible.builtin.pause:
seconds: "{{ wait_seconds | int }}"
- name: message
ansible.builtin.debug:
msg: "The end"
![image](https://private-user-images.githubusercontent.com/1314201/303917837-2ebf92b5-4eee-4616-b008-a9638f57b977.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMzODMxOTQsIm5iZiI6MTcyMzM4Mjg5NCwicGF0aCI6Ii8xMzE0MjAxLzMwMzkxNzgzNy0yZWJmOTJiNS00ZWVlLTQ2MTYtYjAwOC1hOTYzOGY1N2I5NzcucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgxMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MTFUMTMyODE0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YzJhN2E5MWUwMGVlMjc2ODVjZjk3ZjU0ZTI1ZTViN2I3NGE3NTMyOTNmNjI5Y2YyMWI0YzMyMTE0NzA5MzUxNSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.65gso1Cy-k8lGkas9Vg96-f0iPwwJPZJ0apwZ9GmPmI)
---
- name: extra variable demo
hosts: all
gather_facts: no
vars:
fruit: "banana"
tasks:
- name: print message
ansible.builtin.debug:
msg: "fruit is {{ fruit }}"
![image](https://private-user-images.githubusercontent.com/1314201/303918522-48d51b5a-f2b8-41aa-a381-dfa17f50f15a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMzODMxOTQsIm5iZiI6MTcyMzM4Mjg5NCwicGF0aCI6Ii8xMzE0MjAxLzMwMzkxODUyMi00OGQ1MWI1YS1mMmI4LTQxYWEtYTM4MS1kZmExN2Y1MGYxNWEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgxMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MTFUMTMyODE0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NWJkMDM5Y2EwNmE4ZWZlMjJkNGIxMjhlZDAzOWY5ZmY0YTBhNTNiNGNmMTVhMjVjNGQxMTQ0N2U3M2Y5MzViNSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.RL-Zz7CHYKZiXjkV-TJppvfUaFPXNwCKJbwk9CwgsdI)
In Ansible, breaking a string over multiple lines is accomplished using two main operators:
- | (Literal Block Scalar): This operator instructs Ansible to treat the string as a literal block scalar, preserving the newlines within the string.
- > (Folded Block Scalar): This operator tells Ansible to treat the string as a folded block scalar, collapsing all newlines into a single space.
- name: debug module demo
hosts: all
gather_facts: no
vars:
variable1: |
exactly as you see
will appear these three
lines of poetry
variable2: >
this is really a
single line of text
despite appearances
variable3: |-
exactly as you see
will appear these three
lines of poetry
variable4: >-
this is really a
single line of text
despite appearances
tasks:
- name: print variable1
ansible.builtin.debug:
var: variable1
- name: print variable2
ansible.builtin.debug:
var: variable2
- name: print variable3 with no newline at the end- Literal Block Scalar
ansible.builtin.debug:
var: variable3
- name: print variable3 with no newline between Strings- Literal Block Scalar
ansible.builtin.debug:
msg: "{{ variable3.split('\n') }}"
- name: print variable4 with no new line - Folded Block Scalar
ansible.builtin.debug:
var: variable4
![image](https://private-user-images.githubusercontent.com/1314201/303920988-35932a79-cf89-47ad-af94-ddff701f683f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMzODMxOTQsIm5iZiI6MTcyMzM4Mjg5NCwicGF0aCI6Ii8xMzE0MjAxLzMwMzkyMDk4OC0zNTkzMmE3OS1jZjg5LTQ3YWQtYWY5NC1kZGZmNzAxZjY4M2YucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgxMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MTFUMTMyODE0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YjZiYmYwYTE0ZDI0OGQwNzI4YzQ0OTkzOWM5ZDcxZDIyOGFjMmZkMGY5MzQ0YWU4NGY1NWU4NGU0MDA1YTVjMCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.5DdwRNjRqfbYKQCgTsTafC57SPQdEXPcyLWM_3dsTaU)
https://ansiblepilot.medium.com/ansible-terminology-ansible-hostname-vs-inventory-hostname-vs-ansible-fqdn-ae44d2acc484 https://www.middlewareinventory.com/blog/ansible-inventory_hostname-ansible_hostname-variables/
---
- name: remote environment demo
hosts: all
gather_facts: false
environment:
EXAMPLE: test1
tasks:
- name: diplay EXAMPLE Playbook level
ansible.builtin.command: "echo $EXAMPLE"
- name: diplay EXAMPLE Task Level
ansible.builtin.command: "echo $EXAMPLE"
environment:
EXAMPLE: test2
![image](https://private-user-images.githubusercontent.com/1314201/303924439-c0789872-3769-418b-b0e2-8ebfa7aac78c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMzODMxOTQsIm5iZiI6MTcyMzM4Mjg5NCwicGF0aCI6Ii8xMzE0MjAxLzMwMzkyNDQzOS1jMDc4OTg3Mi0zNzY5LTQxOGItYjBlMi04ZWJmYTdhYWM3OGMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgxMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MTFUMTMyODE0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MDY0ZmE4ZDk1YzZmZWQxOTJmNTY2YmU2OTY3ZmEyZmE1OGMzYTJmZmYzMzA2YzUxYzU5ZjNkMTUyY2JiM2I4NyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.GnN0PjVlFHa1_QOiI0INXFNQ67cEtrbhof8_fE-lQGk)
https://ansiblepilot.medium.com/execute-command-on-the-ansible-host-ansible-localhost-71fa92459fe1
https://www.shellhacks.com/ansible-run-shell-command-on-remote-host/
https://medium.com/margarytachepiga/ansible-beggining-b64d578ed7d5
---
- name: localhost demo
hosts: localhost
vars:
ansible_connection: local
ansible_python_interpreter: "{{ ansible_playbook_python }}"
tasks:
- name: print hostname
ansible.builtin.debug:
msg: "{{ inventory_hostname }} - {{ ansible_python_interpreter }}"
![image](https://private-user-images.githubusercontent.com/1314201/303929570-bc42de44-ccb1-4730-a4a0-0485db61beac.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjMzODMxOTQsIm5iZiI6MTcyMzM4Mjg5NCwicGF0aCI6Ii8xMzE0MjAxLzMwMzkyOTU3MC1iYzQyZGU0NC1jY2IxLTQ3MzAtYTRhMC0wNDg1ZGI2MWJlYWMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgxMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MTFUMTMyODE0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9Y2EyNDU1NzdjMTVjODcwOGY2MWU5YzYzZmE0MzQ5NzBiMGE1ZWUxZWE3NWU2N2EzMDA3MTM1NGFhMzAwNGRlNCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.vDHZG8c08T8rPuXCeAOhrYPWbXuY7xk4ORUN0iV09NA)
https://www.ansiblepilot.com/articles/ansible-modules-command-vs-shell/ to be watched again
https://www.educative.io/answers/how-to-filter-a-list-by-its-attributes-in-ansible