Security Automation with Ansible 2
上QQ阅读APP看书,第一时间看更新

YAML syntax for writing Ansible playbooks

Ansible playbooks are written in YAML, which stands for YAML Ain't Markup Language

According to the official document (http://yaml.org/spec/current.html):

YAML Ain’t Markup Language (abbreviated YAML) is a data serialization language designed to be human-friendly and work well with modern programming languages for everyday tasks.

Ansible uses YAML because it is easier for humans to read and write than other common data formats, such as XML or JSON. 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.

YAML files should end with .yaml or .yml. YAML is case sensitive.
You can also use linters, such as www.yamllint.com, or your text editor plugins for linting YAML syntax, which help you to troubleshoot any syntax errors and so on. 

Here is an example of a simple playbook to showcase YAML syntax from Ansible documentation (http://docs.ansible.com/ansible/playbooks_intro.html#playbook-language-example):

- hosts: webservers
  vars:
    http_port: 80
    max_clients: 200
  remote_user: root
tasks: - name: Ensure apache is at the latest version yum:
name: httpd
state: latest
- name: Write the apache config file template:
src: /srv/httpd.j2
dest: /etc/httpd.conf

notify: - restart apache
- name: Ensure apache is running (and enable it at boot) service:
name: httpd
state: started
enabled: yes
handlers: - name: Restart apache service:
name: httpd
state: restarted