我有一个register测试包安装的任务:
tasks:
- name: test for nginx
command: dpkg -s nginx-common
register: nginx_installed
Run Code Online (Sandbox Code Playgroud)
每次运行都会报告为"更改":
TASK: [test for nginx] ********************************************************
changed: [vm1]
Run Code Online (Sandbox Code Playgroud)
我不认为这是一个改变...它是在上次运行时安装的,并且仍在安装此次运行.是的,不是一个大的,只是那些不整洁的OCD类型问题之一.
我做错了吗?有没有一种方法可以使用register而不会一直被视为一种变化?
[verbose]输出是不整齐的,但是我发现获得正确返回码的唯一方法.
TASK: [test for nginx] ********************************************************
changed: [vm1] => {"changed": true, "cmd": ["dpkg", "-s", "nginx-common"], "delta": "0:00:00.010231", "end": "2014-05-30 12:16:40.604405", "rc": 0, "start": "2014-05-30 12:16:40.594174", "stderr": "", "stdout": "Package: nginx-common\nStatus: install ok
...
\nHomepage: http://nginx.net"}
Jak*_*tka 36
它的官方文档中描述这里.
tasks:
- name: test for nginx
command: dpkg -s nginx-common
register: nginx_installed
changed_when: false
Run Code Online (Sandbox Code Playgroud)
它是command导致状态改变的模块,而不是register参数。
您可以设置changed_when:为仅在某些内容发生变化时才为真的内容(另请参见failed_when)。如果您的任务没有改变任何东西,您可能还想设置check_mode。(特别是如果其他步骤取决于该值)
这给出:
tasks:
- name: test for nginx
command: dpkg -s nginx-common
register: nginx_installed
changed_when: False
failed_when: False # dpkg -s returns 1 when packages is not found
check_mode: yes # this can safely run in check_mode
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14272 次 |
| 最近记录: |