基本的 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