YAML语法搞定ansible playbook

基本的 YAMLhtml

对于 Ansible, 每个 YAML 文件都是从一个列表开始. 列表中的每一项都是一个键值对, 一般它们被称为一个 “哈希” 或 “字典”. 因此, 咱们须要知道如何在 YAML 中编写列表和字典.python

YAML 还有一个小的怪癖. 全部的 YAML 文件(不管和 Ansible 有没有关系)开始行都应该是 ---. 这是 YAML 格式的一部分, 代表一个文件的开始.linux

列表中的全部成员都开始于相同的缩进级别, 而且使用一个 "- " 做为开头(一个横杠和一个空格):ruby

# 一个美味水果的列表
- Apple
- Orange
- Strawberry
- Mango

一个字典是由一个简单的 键: 值 的形式组成(这个冒号后面必须是一个空格):oop

---
# 一位职工的记录
name: Example Developer
job: Developer
skill: Elite

字典也可使用缩进形式来表示, 若是你喜欢这样的话:htm

---
# 一位职工的记录
{name: Example Developer, job: Developer, skill: Elite}

Ansible并非太多的使用这种格式, 可是你能够经过如下格式来指定一个布尔值(true/fase):emacs

---
create_key: yes
needs_agent: no
knows_oop: True
likes_emacs: TRUE
uses_cvs: false

让咱们把目前所学到的 YAML 例子组合在一块儿. 这些在 Ansible 中什么也干不了, 但这些格式将会给你感受:it

---
# 一位职工记录
name: Example Developer
job: Developer
skill: Elite
employed: True
foods:
    - Apple
    - Orange
    - Strawberry
    - Mango
languages:
    ruby: Elite
    python: Elite
    dotnet: Lame

这就是你开始编写Ansibleplaybooks 所须要知道的全部 YAML 语法.变量

Gotchas语法

尽管 YAML 一般是友好的, 可是下面将会致使一个 YAML 语法错误:

foo: somebody said I should put a colon here: so I did

你须要使用引号来包裹任何包含冒号的哈希值, 像这样:

foo: "somebody said I should put a colon here: so I did"

而后这个冒号将会被结尾.

此外, Ansible 使用 “{{ var }}” 来引用变量. 若是一个值以 “{” 开头, YAML 将认为它是一个字典, 因此咱们必须引用它, 像这样:

foo: "{{ variable }}"

本文地址:http://www.linuxprobe.com/ansible-playbook-use-yaml.html

相关文章
相关标签/搜索