Ansible playbook 流程控制語句

2021-10-04 10:59:00 字數 1678 閱讀 2685

1. when條件判斷

[root@test2 playbook]

# cat test.yml

--- - hosts: all

remote_user: root

tasks:

- name: shut down the db server

service: name=mysqld state=stopped

when: ansible_eth0.ipv4.address ==

"10.0.102.162"

#這裡使用了when條件語句

2. failed_when 和changed_when

由failed_when 和changed_when來判斷playbook是否執行成功和是狀態是否發生改變。

---

-hosts

: localhost

remote_user

: root

tasks:-

name

: command

command

: /bin/false

ignore_errors

: yes

-name

: another

debug

:msg

:"this is the pring info"

這個例子中,command 命令明顯就會返回乙個false , 這個時候ansible-playbook就知道這個task failed,但是,有些時候,需要通過返回的字串來判斷是否failed。

-

name

: fail task when the command error output prints failed

command

: /usr/bin/example-command -x -y -z

register

: command_result

failed_when

:"'failed' in command_result.stderr"

也就是說,只有在返回結果**現字串『failed』,才認為的task 失敗了

類似的有changed_when

tasks:-

shell

: /usr/bin/billybass -

-mode="take me to the river"

register

: bass_result

changed_when

:"bass_result.rc != 2"

# this will never report 'changed' status

-shell

: wall 'beep'

changed_when

:false

在使用command /shell 模組的時候ansible playbook 會按照自己的判斷來決定是否changed了,有時候僅僅是ls 了一下, ansible-playbook 也會認為是changed了,可能這並不是想要的,這個時候就要用例子中方法來修改task的狀態了。

————blueicex 2020/03/26 18:00 [email protected]

ansible playbook建立使用者

建立失敗,沒有許可權,授權 2.建立使用者及密碼 3.引入使用者列表檔案建立使用者,密碼加密 root server1 ansible cat createuser.yml hosts localhost vars files userlist.yml tasks name create user ...

ansible playbook同步模組

deploy.yml 需要變數傳參 hosts sudo yes tasks synchronize src dest archive no recursive yes rsync opts update,exclude git 執行 傳參 extra vars archive 是否採用歸檔模式同步...

ansible playbook使用簡介

ansible模組有copy file cron group user yum service get url command script shell raw ping 下面來介紹playbook 像很多其他服務配置檔案管理方式一樣,ansible使用一種比較直白的方法來描述自己的任務配置檔案 劇...