幫助中心
技術(shù)運(yùn)維百科
YAML語(yǔ)法搞定ansible playbook
2017-06-16 15:20:31
  對(duì)于 Ansible, 每一個(gè) YAML 文件都是從一個(gè)列表開(kāi)始. 列表中的每一項(xiàng)都是一個(gè)鍵值對(duì), 通常它們被稱為一個(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)表示, 如果你喜歡這樣的話:   ---   # 一位職工的記錄   {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: Elite   python: Elite   dotnet: Lame   這就是你開(kāi)始編寫(xiě)Ansibleplaybooks 所需要知道的所有 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 }}"
新客優(yōu)惠
特價(jià) 酷睿i3系列
性價(jià)比熱銷(xiāo)推薦,年銷(xiāo)量第一
1180/月起
USA-IDC為您提供免備案服務(wù)器 0元試用
立即聯(lián)系在線客服,即可申請(qǐng)免費(fèi)產(chǎn)品試用服務(wù)
立即申請(qǐng)