繁体   English   中英

返回值从 bash 到 Ansible 任务

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM