Ansible之playbook,yaml檔案詳解

2022-08-19 19:48:12 字數 1016 閱讀 9630

要學好ansible,playbook是必須的,

playbook是yaml檔案格式,這令很多初次接觸yaml檔案的朋友痛苦不堪,什麼時候會用到 "-" 什麼時候不用到"-" 頭大

不廢話,本文將結合python來問做yaml檔案的詳解

首先我們寫簡單的yaml,此段yaml語言和playbook無關,但是對於認識yaml非常有幫助

這是我寫的乙個簡單的yaml,但是對認識yaml很有幫組,閒話不說我們看是解析,這個yaml

運用python對yaml解析了以後

看著是不是很眼熟,對是乙個json字串

也就是key-value的形式,大部分程式語言都可以將json翻譯成自己的資料型別

首先我們來解析這串字串

(key-hostname,value-centos),(key-hosts,value-['10.0.0.1','10.0.0.2','10.0.0.3']),(key-name,value-'test dev prd')

於是我們得知

2. hostname對應的是乙個字串

3.」-「  ip位址,表示的是乙個列表,或者叫陣列。

4.而不加「-」 的解析出來是帶空格的字串

那我們再看乙個yaml:

比上次那個稍稍複雜了一些

這個我給排下版:

'[,]'

}這個json字串

陣列是由兩個json字串

在json字串中有乙個特點,很重要的特點就是key不允許有重複。

陣列的特性,允許重複,但是實際工作中我們要用到重複的key怎麼辦,把它變成陣列

於是我們就可以需要在寫yaml的時候在需要用重複的key前面加 「-」 至於值什麼時候需要加 -,就看你希望以那種資料型別來解析這個值了

Ansible 小手冊系列 九(Playbook)

playbook是由乙個或多個 play 組成的列表。play的主要功能在於將事先歸併為一組的主機裝扮成事先通過ansible中的task定義好的角色。從根本上來講所謂task無非是呼叫ansible的乙個module。將多個play組織在乙個playbook中即可以讓它們聯同起來按事先編排的機制同...

ansible寫乙個簡單的playbook

實現的功能很簡單,就是通過ansible批量完成某個賬戶sudo許可權的開通或關閉 group vars 放置各種變數的目錄,我這裡沒用 hosts 主機和組配置,預設為 etc ansible hosts roles 角色目錄,裡邊可以有多個角色,這裡只配置了乙個common common fil...

ansible之handlers之關於觸發事件

觸發器的作用是主要當我們關注的事件發生變化的時候,我們所要進行的操作。notify 這個action可用於再每個play的最後觸發,這樣可以避免有多次改變時每次都執行制定的操作。取而代之的就是當這些所有的變化發生完成後一次性執行制定的操作。再notify中列出的操作成為handler,即notify...