したのような playbook を書いて実行した時、
- name: debug
hosts: all
connection: local
gather_facts: false
tasks:
- shell: echo 'foo'
register: result
when: true
- shell: echo 'bar'
register: result
when: false
- debug: var=result
debug
の結果を
TASK: [debug var=result] ******************************************************
ok: [localhost] => {
"result": {
"changed": true,
"cmd": "echo 'foo' ",
"delta": "0:00:00.004067",
"end": "2014-07-17 23:30:29.543649",
"invocation": {
"module_args": "echo 'foo'",
"module_name": "shell"
},
"rc": 0,
"start": "2014-07-17 23:30:29.539582",
"stderr": "",
"stdout": "foo",
"stdout_lines": [
"foo"
]
}
}
↑こういうのだと期待してたのに、実際のところ
PLAY [debug] ******************************************************************
TASK: [shell echo 'foo'] ******************************************************
changed: [localhost]
TASK: [shell echo 'bar'] ******************************************************
skipping: [localhost]
TASK: [debug var=result] ******************************************************
ok: [localhost] => {
"result": {
"changed": false,
"skipped": true
}
}
こうなってしまう。
いや、register
ごとskipしてほしいんですけど。
ある変数にregister
するactionの実行を条件によって分岐させたいんだけどいいやりかたないかなぁ。