Difference between revisions of "Introduction to YAML"

From CDOT Wiki
Jump to: navigation, search
(Some examples: file written in YAML)
(Some examples: file written in YAML)
 
Line 19: Line 19:
 
= Some examples: file written in YAML =
 
= Some examples: file written in YAML =
 
== YAML File and Python ==
 
== YAML File and Python ==
 +
File name: students.yaml
 
<pre>
 
<pre>
 
students:   
 
students:   
Line 33: Line 34:
 
{'id_number': 112001987, 'name': 'Raymond', 'program': 'CNS'}]}
 
{'id_number': 112001987, 'name': 'Raymond', 'program': 'CNS'}]}
 
</pre>
 
</pre>
 +
The contents of students.yaml can be created by the following python code:
 +
<pre>
 +
#!/usr/bin/env python3
 +
import yaml
  
 +
students = {'students': [{'name': 'David', 'id_number': '012345678', 'program': 'CTY'},
 +
            {'name': 'Raymond', 'id_number': 112001987, 'program': 'CNS'}]}
 +
 +
print(yaml.dump(students))
 +
</pre>
 
== Ansible playbooks ==
 
== Ansible playbooks ==
 
File Name: get_os_version.yaml
 
File Name: get_os_version.yaml

Latest revision as of 01:02, 25 November 2019

What is YAML?

  • YAML stands for "YAML Ain’t markup language"
  • It is a human-readable data serialization language that is used in Ansible to package output and its playbooks

What are the major components in YAML?

  • declarations: name: 'yum'
  • lists:
- 'item_a'
- 'item_b'
- 'item_c'
  • associative arrays:
item_a:
name: 'Name A'
id: '12345678'
item_b:
name: 'Name B'
id: '98765432'

Some examples: file written in YAML

YAML File and Python

File name: students.yaml

students:   
  - name: David     
    id_number: 012345678     
    program: CTY   
  - name: Raymond
    id_number: 112001987
    program: CNS 

The above file contains data equivalent to the following dictionary data object in Python:

{'students': [{'id_number': '012345678', 'name': 'David', 'program': 'CTY'}, 
{'id_number': 112001987, 'name': 'Raymond', 'program': 'CNS'}]}

The contents of students.yaml can be created by the following python code:

#!/usr/bin/env python3
import yaml

students = {'students': [{'name': 'David', 'id_number': '012345678', 'program': 'CTY'},
            {'name': 'Raymond', 'id_number': 112001987, 'program': 'CNS'}]}

print(yaml.dump(students))

Ansible playbooks

File Name: get_os_version.yaml

---
- hosts: all
  remote_user: rchan
  tasks:
  - name: Print Linux distribution and version
    debug:
       msg: '{{ ansible_distribution }} {{ ansible_distribution_version }}'

The file above contains data equivalent to the following data object in Python:

[{'hosts': 'all', 'remote_user': 'rchan', 'tasks': [{'debug': {'msg': '{{ ansible_distribution }}
 {{ ansible_distribution_version }}'}, 'name': 'Print Linux distribution and version'}]}]