我从可解析任务中调用bash脚本。脚本执行某些操作,并向控制台返回一个动态URL,比如https://example.com/v1
。
我想知道是否可以将URL解析为可解析的变量?一种选择是将其写入文件,但如果可能的话,我希望避免这种方法。
在Ansible中注册任务的输出是通过键register
完成的
它可以添加到您希望重用输出的任何任务中。
在您的情况下,由于您的脚本确实写入控制台,因此写入stdout流,因此应该使用stdout
字段。
根据战术手册
- hosts: all
gather_facts: no
tasks:
- shell: echo 'https://example.com/v1'
register: url
- debug:
msg: "{{ url.stdout }}"
它产生了回顾:
PLAY [all] *********************************************************************************************************
TASK [shell] *******************************************************************************************************
changed: [localhost]
TASK [debug] *******************************************************************************************************
ok: [localhost] => {
"msg": "https://example.com/v1"
}
PLAY RECAP *********************************************************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0