註冊變量:web
變量的另外一個用途是將一條命令的運行結果保存到變量中,供後面的playbook使用。例如:shell
- hosts: webserversspa
tasks:server
- shell: /usr/bin/fooblog
register: foo_resultip
ignore_errors: True 使用ignore_errors來忽略錯誤信息變量
- shell: /usr/bin/barwebserver
when: foo_result.rc == 5command
條件語句:方法
在某些狀況下,一個變量的值能夠依賴於其餘變量的值,固然也會影響Ansible的執行過程。
下面主要介紹When聲明.
tasks:
- name: "shutdown Debian flavored systems"
command: /sbin/shutdown -t now
when: ansible_os_family == "Debian"
下面再看一個示例,經過判斷一條命令執行結果作不一樣分支的二級處理。
tasks:
- command: /bin/false 沒有 - name 時,此行將被默認成爲標題--- TASK: [command: /bin/false]
register: myresult
ignore_errors: True
- command: /bin/something
when: myresult|failed
- command: /bin/something_else
when: myresult|success
- command: /bin/still/something_else
when: myresult|skipped
其中success爲Ansible內部過濾器方法,返回True表明命令運行成功。
---------------------------------------------------------------------------
[root@localhost when]# cat main.yml
- hosts: webservers
tasks:
- name: haha
command: /bin/uname
register: result
ignore_errors: True
- command: /bin/df
when: result|failed
register: aaa
- command: /bin/ls
when: result|success
- command: /bin/lsblk
when: aaa|skipped
執行後的結果以下: