从bash向Ansible任务返回值



我从可解析任务中调用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   

最新更新