There are many boring tasks in your daily job which can be automated easily if you know some of the tools like here, Ansible. Let's explore more on how to use the variables in the playbooks.
In this post we will be covering :
- Basic datatypes
- List variables and using them
- Dictionary variable and accessing them
Variables and Datatypes in Ansible
In Ansible variables can be defined under global tasks or they can be defined at local to a task level. support all the Python supported datatypes.--- # Filename: varibles_datatypes.yml - name: varibles in ansible hosts: localhost gather_facts: false vars: a: "Vybhava Technologies" b: yes n: 100 m: 500.99 tasks: - debug: msg: - "a= {{ a }} a type: {{ a |type_debug }}" - "b= {{ b }} b type: {{ b |type_debug }}" - "n= {{ n }} n type: {{ n |type_debug }}" - "m= {{ m }} m type: {{ m |type_debug }}"The execution output is :
ansible-playbook varibles_datatypes.yml
Screenshot
Ansible Lists
In Ansible List object is similar to the Python list. Which can be assigned alist variable within a single line or lease it can be represented in the column which will start by using "-" for each element. Here I've experimented with two options.
# File: hello.yml - name: List variables from ansible playbook hosts: localhost gather_facts: no vars: mylearning_list: ['Linux','git','Jenkins','Docker','Kubernetes','Ansible'] tasks: - name: printing list debug: msg: - "mylearning_list:" - "{{ mylearning_list }}" - name: Concatenate a list to string set_fact: my_string: "{{ mylearning_list | join(',') }}" - name: Print the String debug: msg: "{{ my_string }}" - name: printing list element debug: msg: "mylearning_list: {{ mylearning_list[1] }}" - name: printing list range of elements debug: msg: - "mylearning_list[3:5]:" - "{{ myle
Ansible list of element usage |
hosts: localhost gather_facts: no vars: devops_team: - srinu - rajshekhar - arun - charan - suresh - elavarsi tasks: - name: Display all elements of List debug: msg: "{{ devops_team }}" - name: Display a elements of List debug: msg: "{{ devops_team[3] }}" - name: Display rage of elements from List debug: msg: "{{ devops_team[3:6] }}" ~
Ansible Dictionaries
The python dictionaries can be used in the Ansible plays. The representation is within {} when we have few key:value
The data item will be stored with key and value
We can dfine a dictionary variable as two forms : 1. single line
osfam_web: {"el": "httpd", "ubuntu": "apache2"}
2. multiline form
osfam_web: el: httpd ubuntu: apache2Example Execution
[ansible@master qa]$ cat mydict.yml --- # Filename: mydict.yml - name: Dictionaries in ansible hosts: localhost gather_facts: false vars: osfam: {"el":"httpd","ubuntu":"apache2"} tasks: - debug: msg: - "osfam.keys {{ osfam.keys() }}" - "osfam {{ osfam }}" - "osfam type {{ osfam |type_debug }}" - "osfam[el] {{ osfam['el'] }}"Execution output
ansible-playbook mydict.yml
No comments:
Post a Comment