溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

學(xué)習(xí)ansible playbook之前先了解下YAML語法

發(fā)布時間:2020-07-09 13:12:15 來源:網(wǎng)絡(luò) 閱讀:273 作者:TtrToby 欄目:開發(fā)技術(shù)

YAML 語法

本文來自于:http://www.ansible.com.cn/docs/YAMLSyntax.html


這個頁面提供一個正確的 YAML 語法的基本概述, 它被用來描述一個 playbooks(我們的配置管理語言).

我們使用 YAML 是因為它像 XML 或 JSON 是一種利于人們讀寫的數(shù)據(jù)格式. 此外在大多數(shù)變成語言中有使用 YAML 的庫.

你可能希望讀 Playbooks 實踐中如何使用的.

基本的 YAML

對于 Ansible, 每一個 YAML 文件都是從一個列表開始. 列表中的每一項都是一個鍵值對, 通常它們被稱為一個 “哈?!?或 “字典”. 所以, 我們需要知道如何在 YAML 中編寫列表和字典.

YAML 還有一個小的怪癖. 所有的 YAML 文件(無論和 Ansible 有沒有關(guān)系)開始行都應(yīng)該是 ---.  這是 YAML 格式的一部分, 表明一個文件的開始.

列表中的所有成員都開始于相同的縮進級別, 并且使用一個 "- " 作為開頭(一個橫杠和一個空格):

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

一個字典是由一個簡單的 鍵: 的形式組成(這個冒號后面必須是一個空格):

---
# 一位職工的記錄
name: Example Developer
job: Developer
skill: Elite

字典也可以使用縮進形式來表示, 如果你喜歡這樣的話:

---
# 一位職工的記錄
{name: Example Developer, job: Developer, skill: Elite}

Ansible并不是太多的使用這種格式, 但是你可以通過以下格式來指定一個布爾值(true/fase):

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

讓我們把目前所學(xué)到的 YAML 例子組合在一起. 這些在 Ansible 中什么也干不了, 但這些格式將會給你感覺:

---
# 一位職工記錄
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 通常是友好的, 但是下面將會導(dǎo)致一個 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"

然后這個冒號將會被結(jié)尾.

此外, Ansible 使用 “` var `” 來引用變量. 如果一個值以 “{” 開頭, YAML 將認為它是一個字典, 所以我們必須引用它, 像這樣:

foo: "{{ variable }}"
向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI