YAML: Difference between revisions
(→YAML) |
(→YAML) |
||
Line 3: | Line 3: | ||
YAML Syntax — Ansible Documentation - https://docs.ansible.com/ansible/2.5/reference_appendices/YAMLSyntax.html#yaml-syntax | YAML Syntax — Ansible Documentation - https://docs.ansible.com/ansible/2.5/reference_appendices/YAMLSyntax.html#yaml-syntax | ||
Comment | == Comment == | ||
<pre> | <pre> | ||
# this is a comment | # this is a comment | ||
</pre> | </pre> | ||
== --- == | |||
All YAML files (regardless of their association with Ansible or not) can optionally begin with --- and end with ... This is part of the YAML format and indicates the start and end of a document. | All YAML files (regardless of their association with Ansible or not) can optionally begin with --- and end with ... This is part of the YAML format and indicates the start and end of a document. | ||
Line 20: | Line 23: | ||
</pre> | </pre> | ||
== List == | |||
Python Note: This is equivalent to Pythons List: fruits = ['Apple', 'Orange', ''']. | |||
All members of a list are lines beginning at the same indentation level starting with a "- " (a dash and a space): | All members of a list are lines beginning at the same indentation level starting with a "- " (a dash and a space): | ||
List: | |||
<pre> | <pre> | ||
--- | --- | ||
# A list of tasty fruits | # A list of tasty fruits | ||
fruits: | fruits: | ||
- Apple | |||
- Orange | |||
- Strawberry | |||
- Mango | |||
... | ... | ||
</pre> | </pre> | ||
== Dictionary == | |||
Python note: This is equivalent to Python Dictionary: martin = {'name': 'Martin', 'job': 'Dev': 'skill': 'Elite'} | |||
Dictionary: | Dictionary: | ||
Line 37: | Line 50: | ||
# An employee record | # An employee record | ||
martin: | martin: | ||
name: Martin D'vloper | |||
job: Developer | |||
skill: Elite | |||
</pre> | </pre> | ||
Abbreviated list / dictonary: | Compact Abbreviated list / dictonary: | ||
<pre> | <pre> | ||
martin: {name: Martin D'vloper, job: Developer, skill: Elite} | martin: {name: Martin D'vloper, job: Developer, skill: Elite} | ||
Line 48: | Line 61: | ||
</pre> | </pre> | ||
Boolean | == Boolean Values == | ||
<pre> | <pre> | ||
create_key: yes | create_key: yes | ||
Line 56: | Line 70: | ||
uses_cvs: false | uses_cvs: false | ||
</pre> | </pre> | ||
== Block Text == | |||
Literal Block Scalar: (indentation ignored) | Literal Block Scalar: (indentation ignored) | ||
Line 63: | Line 79: | ||
will appear these three | will appear these three | ||
lines of poetry | lines of poetry | ||
</pre> | |||
Literal Block Scalar - folded to one line: (indentation ignored) | |||
<pre> | |||
fold_newlines: > | fold_newlines: > | ||
this is really a | this is really a | ||
Line 70: | Line 89: | ||
</pre> | </pre> | ||
Variables: | == Injected Variables - NOT YAML == | ||
This is not a YAML standard, but is a common theme used by things applications like Ansible. | |||
Injected Variables: | |||
<pre> | <pre> | ||
foo: "{{ variable }}" | foo: "{{ variable }}" | ||
foo: {{ variable }} | |||
</pre> | </pre> | ||
Revision as of 20:54, 25 February 2024
YAML
YAML Syntax — Ansible Documentation - https://docs.ansible.com/ansible/2.5/reference_appendices/YAMLSyntax.html#yaml-syntax
Comment
# this is a comment
---
All YAML files (regardless of their association with Ansible or not) can optionally begin with --- and end with ... This is part of the YAML format and indicates the start and end of a document.
# file test.yaml - yamllint doesn't care if there is a comment before --- --- test: name: big test # yamllint will check for --- by default # yamllint likes an empty new line at end of file, ??most of the time??, even after ... # yamllint will NOT check for ... by default ...
List
Python Note: This is equivalent to Pythons List: fruits = ['Apple', 'Orange', ].
All members of a list are lines beginning at the same indentation level starting with a "- " (a dash and a space):
List:
--- # A list of tasty fruits fruits: - Apple - Orange - Strawberry - Mango ...
Dictionary
Python note: This is equivalent to Python Dictionary: martin = {'name': 'Martin', 'job': 'Dev': 'skill': 'Elite'}
Dictionary:
# An employee record martin: name: Martin D'vloper job: Developer skill: Elite
Compact Abbreviated list / dictonary:
martin: {name: Martin D'vloper, job: Developer, skill: Elite} fruits: ['Apple', 'Orange', 'Strawberry', 'Mango']
Boolean Values
create_key: yes needs_agent: no knows_oop: True likes_emacs: TRUE uses_cvs: false
Block Text
Literal Block Scalar: (indentation ignored)
include_newlines: | exactly as you see will appear these three lines of poetry
Literal Block Scalar - folded to one line: (indentation ignored)
fold_newlines: > this is really a single line of text despite appearances
Injected Variables - NOT YAML
This is not a YAML standard, but is a common theme used by things applications like Ansible.
Injected Variables:
foo: "{{ variable }}" foo: {{ variable }}
yamllint
See yamllint
Install:
apt install yamllint
Use:
yamllint file.yaml
Note:
- Defaults to max lines 80 limit
Doc:
https://yamllint.readthedocs.io/en/stable/