YML(2)yml 语法
YAML 語(yǔ)法
來(lái)源:yaml
這個(gè)頁(yè)面提供一個(gè)正確的 YAML 語(yǔ)法的基本概述, 它被用來(lái)描述一個(gè) playbooks(我們的配置管理語(yǔ)言).
我們使用 YAML 是因?yàn)樗?XML 或 JSON 是一種利于人們讀寫(xiě)的數(shù)據(jù)格式. 此外在大多數(shù)變成語(yǔ)言中有使用 YAML 的庫(kù).
Attention
幾個(gè)語(yǔ)法要點(diǎn)很簡(jiǎn)單,然而沒(méi)有分號(hào)的語(yǔ)法需要注意縮進(jìn)規(guī)則:同一層的變量要有相同的縮進(jìn),不然會(huì)將\t或\n當(dāng)做字符串。注意空格。
基本的 YAML
對(duì)于 Ansible, 每一個(gè) YAML 文件都是從一個(gè)列表開(kāi)始. 列表中的每一項(xiàng)都是一個(gè)鍵值對(duì), 通常它們被稱(chēng)為一個(gè) “哈希” 或 “字典”. 所以, 我們需要知道如何在 YAML 中編寫(xiě)列表和字典.
YAML 還有一個(gè)小的怪癖. 所有的 YAML 文件(無(wú)論和 Ansible 有沒(méi)有關(guān)系)開(kāi)始行都應(yīng)該是?---. 這是 YAML 格式的一部分, 表明一個(gè)文件的開(kāi)始.
列表中的所有成員都開(kāi)始于相同的縮進(jìn)級(jí)別, 并且使用一個(gè)?"-?"?作為開(kāi)頭(一個(gè)橫杠和一個(gè)空格):
--- # 一個(gè)美味水果的列表 - Apple - Orange - Strawberry - Mango
一個(gè)字典是由一個(gè)簡(jiǎn)單的?鍵:?值?的形式組成(這個(gè)冒號(hào)后面必須是一個(gè)空格):
--- # 一位職工的記錄 name: Example Developer job: Developer skill: Elite
字典也可以使用縮進(jìn)形式來(lái)表示, 如果你喜歡這樣的話(huà):
---
# 一位職工的記錄
{name: Example Developer, job: Developer, skill: Elite}
Ansible并不是太多的使用這種格式, 但是你可以通過(guò)以下格式來(lái)指定一個(gè)布爾值(true/fase):
--- create_key: yes needs_agent: no knows_oop: True likes_emacs: TRUE uses_cvs: false
讓我們把目前所學(xué)到的 YAML 例子組合在一起. 這些在 Ansible 中什么也干不了, 但這些格式將會(huì)給你感覺(jué):
--- # 一位職工記錄 name: Example Developer job: Developer skill: Elite employed: True foods:- Apple- Orange- Strawberry- Mango languages:ruby: Elitepython: Elitedotnet: Lame
這就是你開(kāi)始編寫(xiě)?Ansible?playbooks 所需要知道的所有 YAML 語(yǔ)法.
Gotchas
盡管 YAML 通常是友好的, 但是下面將會(huì)導(dǎo)致一個(gè) YAML 語(yǔ)法錯(cuò)誤:
foo: somebody said I should put a colon here: so I did
你需要使用引號(hào)來(lái)包裹任何包含冒號(hào)的哈希值, 像這樣:
foo: "somebody said I should put a colon here: so I did"
然后這個(gè)冒號(hào)將會(huì)被結(jié)尾.
此外, Ansible 使用 “{{ var }}” 來(lái)引用變量. 如果一個(gè)值以 “{” 開(kāi)頭, YAML 將認(rèn)為它是一個(gè)字典, 所以我們必須引用它, 像這樣:
foo: "{{ variable }}" So do it,and change it,no regret!
轉(zhuǎn)載于:https://www.cnblogs.com/lexiaofei/p/6806753.html
總結(jié)
以上是生活随笔為你收集整理的YML(2)yml 语法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【傻瓜教程】CentOS 7 下 LNM
- 下一篇: java中数组的复制