[英]Return value from bash to Ansible task
我从 ansible 任务调用 bash 脚本。 该脚本执行某些操作并向控制台返回一个动态的 URL,例如https://example.com/v1
。
我想知道是否可以将 URL 解析为 ansible 变量? 一个选项是将它写入文件,但我想尽可能避免这种方法。
在 Ansible 中注册一个任务的 output 是通过 key register
完成的。
它可以添加到您希望重复使用的任何任务上 output。
在您的情况下,由于您的脚本确实写入了控制台,因此写入了stdout stream ,您应该使用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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.