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使用一種比較直白的方法來描述自己的任務配置檔案 劇...