0
Iエラーを投げていない、次のコードを持っていますが、事実はここ ansible解析余分のvarの使用デフォルト正規表現が失敗した場合
- shell: echo '{{ p }}'
register: results
- debug:
var: results
- set_fact:
myrepo: "{{ results.stdout | regex_search(regexp,'\\1') | default ({'0':'global'}) }}"
vars:
regexp: '(.*)/(.*)'
コマンドがある出力
TASK [command] **************************************************************************************************************************************************************************************
changed: [localhost]
TASK [debug] ****************************************************************************************************************************************************************************************
ok: [localhost] => {
"results": {
"changed": true,
"cmd": "echo 'tim'",
"delta": "0:00:00.095831",
"end": "2017-09-06 16:37:19.977023",
"rc": 0,
"start": "2017-09-06 16:37:19.881192",
"stderr": "",
"stderr_lines": [],
"stdout": "tim",
"stdout_lines": [
"tim"
]
}
}
TASK [set_fact] *************************************************************************************************************************************************************************************
ok: [localhost]
TASK [debug] ****************************************************************************************************************************************************************************************
ok: [localhost] => {
"myrepo": ""
}
で空でありますansible-playbook -i hosts -c local file.yml --extra-vars "p=tim"
正規表現の結果は、値がUndefinの場合のみdefaultフィルタがトリガされたパラメータを指定せずに