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...