条件判断在 Ansible 任务中的使用频率非常高。有些任务使用带有幂等性检查的模块,比如 yum 和 apt 模块可以检测软件包是否已被
安装,而在这个过程中我们不用做太多的人工干预
when
案例:
有一款软件版本号为 4.6.1,现在有一个任务需要通过判断软件的版本号来确定要不要执行接下来的任务,如果主版本号为 4 就执行任
务,其他版本则不执行。
使用点号”.”进行软件版本号分割,取第一个主版本号对比
1
2
3- name: 当软件版本号为4时进行操作
[task here]
when: soft_version.splilt('.')[0] == '4'
变量注册器register
大部分情况下,我们使用注册器用来接收 shell 命令的返回结果,结果中包含标准输出(stdout)和错误输出(stderr)。使用下面一段代
码即可调用注册器来获取 shell 命令的返回结果。
1
2- shell: my_command_here
register: my_command_result
命令结果获取完成之后,可以使用注册变量的 stdout 方法来读取标准输出的内容:my_command_result.stdout; 使用 stderr 方法来
读取标准输入的内容: my_command_result.stderr。
1
2
3
4- command: my-app --status
register: myapp_result
- comman