ansible-playbook 利用when和register獲取命令的輸出

u201017971發表於2018-08-13

獲取執行命令的輸出 –Register

獲取命令輸出,檢測是否執行正常或失敗。可以通過使用 register 關鍵字來實現獲取輸出。register 關鍵字可以儲存指定命令的輸出結果到一個自定義的變數中,我們通過訪問這個自定義變數就可以獲取到命令的輸出結果。Register 的使用如下:

- name: echo date 
  command: date 
  register: date_output 

 - name: echo date_output 
  command: echo "30"
  when: date_output.stdout.split(' ')[2] == "30"

這裡第 1 個 task 是執行了一個 date 命令,register 關鍵字將 date 命令的輸出儲存到 date_output 變數名。第 2 個 task 對輸出進行分析,並使用 when 對關鍵字對分析後的進行判斷,如果匹配,則執行這個 task,不匹配就不執行。這裡要重點說下的,因為 register 獲取到的輸出內容都是字串,而 ansible 又是 python 寫的,你可以使用 python 字串的方法對其做處理,比如本文中使用的 split,還可以使用 find 方法。

相關文章