Ansible 編寫迴圈和條件任務

2022-09-06 20:15:12 字數 2198 閱讀 3604

1️⃣:ansible支援使用loop關鍵字對一組專案迭代任務,可以配置迴圈以利用列表中的各個專案、列表中各個檔案的內容、生成的數字序列或更為複雜的結構來重複任務

1、簡單迴圈

1️⃣:簡單迴圈對一組專案迭代任務。loop關鍵字新增到任務中,將應對其迭代任務的專案列表取為值。迴圈變數item儲存每個迭代過程中使用的值

2️⃣:此外、還可以通過變數給loop提供所使用的的列表

2、迴圈雜湊或字典列表

1️⃣:loop列表不需要是簡單值列表

3、將register變數於loop一起使用

1️⃣: 在上面的例子中,results鍵包含乙個列表。在下面,修改了playbook,使第二個任務迭代此列表

ansible可使用conditionals在符合特定條件時執行任務或play。例如,可以利用乙個條件在ansible安裝或配置服務前確定受管主機上的可用記憶體

1、條件任務語法

1️⃣:when語句用於有條件地執行任務;它取要測試的條件為值。如果條件滿足,則執行任務。如果條件不滿足,則跳過任務

2️⃣:處理條件時可使用的一些運算示例

操作示例

等於(值為字串)

ansible_machine == "x86_64"

等於(值為數字)

max_memory == 512

小於

min_memory < 128

大於

min_memory > 256

小於等於

min_memory <= 256

大於等於

min_memory >= 512

不等於

min_memory != 512

變數存在

min_memory is defined

變數不存在

min_memory is not defined

布林變數是true。1、true或yes的求值為true

memory_**ailable

布林變數是false。0、false或no的求值為false

not memory_**ailable

第乙個變數的值存在,作為第二個變數的列表中的值

ansible_distribution in supported_distros

2、測試多個條件

1️⃣:乙個when語句可用於評估多個條件:使用andor關鍵字組合條件,並使用括號分組條件

2️⃣:使用and語句運算時,兩個條件必須為真,才能滿足整個條件語句

3️⃣:使用or語句時,其中任一條件為真時,就能滿足條件語句

1、使用loop和when組合使用

2、使用register和when組合使用

實施處理程式

Ansible系列 六 迴圈和條件判斷

我寫了更完善的ansible專欄文章 一步到位玩兒透ansible ansible系列文章 ansible中的迴圈都是借助迭代來實現的。基本都是以 with 開頭。以下是常見的幾種迴圈。ansibel支援迭代功能。例如,有一大堆要輸出的命令 一大堆要安裝的軟體包 一大堆要copy的檔案等等。例如,要...

ruby 條件和迴圈

1.1 if else 語句if conditional then code elsif conditional then code end值為false和nil為假,其他都為真。請注意關鍵字elsif。通常我們省略保留字then,但若想在一行內寫出完整的 if 式,則使用then。例子如下 x 1...

條件和迴圈語句

python條件語句是通過一條或多條語句的執行結果 true或者false 來決定執行的 塊。if 判斷條件 執行語句 else 執行語句 開始有縮排的概念 基本判斷語句 age 12 if age 18 print 18歲以下不宜 if語句後面必須有 自動縮排 if語句寫完後,要退回原有縮排繼續寫...