注册变量: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
执行后的结果以下: