我们现在很多时候在真正执行我们的playbook 之前,都希望dry run一下,确定一下playbook 将要进行的修改是否会引发Outage
但是由于是dry run, 如果有一些task 需要使用到前边task register的变量,那么因为是dry run, 前边的task 没有执行,没有成功的注册变量,导致dry run的时候失败,但是在真正执行playbook时则会成功
例如:
1 2 3 4 5 6 7 8 |
- name: scan for bitbucket ssh public key shell: "echo 1" register: test_output ignore_errors: yes - name: output it debug: var: test_output |
注意:在ansible 2.9已经规避了这个问题,也就说新版本不会报错,但是旧版本就不可以了,例如2.8
如果我们想在dry 模式下跳过一下命令,我们需要在需要跳过的task下假如:
1 |
when: not ansible_check_mode |
这样的话我们task 仅仅会在正常模式的情况下才会执行
Latest posts by Zhiming Zhang (see all)
- aws eks node 自动化扩展工具 Karpenter - 8月 10, 2022
- ReplicationController and ReplicaSet in Kubernetes - 12月 20, 2021
- public key fingerprint - 5月 27, 2021
123 2020/06/01 15:57
我这边也遇到了同样的问题,但是我安装了ansible 2.9.0,并没有解决这个问题
Zhiming Zhang 博主 2020/06/09 13:55
@ 我现在都是老老实实加上when