YAML檔案語法簡介

2021-07-11 18:51:00 字數 1611 閱讀 1075

yaml是一種利於人們讀寫的資料格式. 現在很多系統例如spring,ansible,ror等都支援yaml配置檔案,yaml由於其良好的可讀性,越來月流行。此外在大多數變成語言中有使用 yaml 的庫.

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

對於 ansible, 每乙個 yaml 檔案都是從乙個列表開始. 列表中的每一項都是乙個鍵值對, 通常它們被稱為乙個 「雜湊」 或 「字典」. 所以, 我們需要知道如何在 yaml 中編寫列表和字典.

yaml 還有乙個小的怪癖. 所有的 yaml 檔案(無論和 ansible 有沒有關係)開始行都應該是 —. 這是 yaml 格式的一部分, 表明乙個檔案的開始.

列表中的所有成員都開始於相同的縮排級別, 並且使用乙個 「- 」 作為開頭(乙個橫槓和乙個空格):

orange

strawberry

mango

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

---

# 一位職工的記錄

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

讓我們把目前所學到的 yaml 例子組合在一起. 這些在 ansible 中什麼也幹不了, 但這些格式將會給你感覺:

---

# 一位職工記錄

name: example developer

job: developer

skill: elite

employed: true

foods:

-orange

-strawberry

-mango

languages:

ruby: elite

python: elite

dotnet: lame

這就是你開始編寫 ansible playbooks 所需要知道的所有 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 使用 「}」 來引用變數. 如果乙個值以 「}」

yaml 語法簡介

優點 yaml是一種簡潔的非標記語言,yaml以資料為中心,使用空白,縮排,分行組織資料,從而使得表示更加簡潔易讀。缺點 對格式的要求太過嚴格。語法規則 大小寫敏感 使用縮排表示層級關係 縮排時不允許使用tab鍵,只允許使用空格 縮排的空格數目不重要,只要相同層級的元素左側對齊即可 表示注釋,從這個...

YAML檔案簡介

使用空格 space 縮排表示分層,不同層次之間的縮排可以使用不同的空格數目,但是同層元素一定左對齊,即前面空格數目相同 不能使用 tab,各個系統 tab對應的 space 數目可能不同,導致層次混亂 表示注釋,只能單行注釋,從 開始處到行尾 破折號後面跟乙個空格 a dash and space...

YAML 檔案語法

預設的模板檔案是 docker compose.yml,其中定義的每個服務都必須通過 image 指令指定映象或 build 指令 需要 dockerfile 來自動構建。其它大部分指令都跟 docker run 中的類似。如果使用 build 指令,在 dockerfile 中設定的選項 例如 c...