gpt4 book ai didi

powershell - 如何使用 ansible 读取 powershell 脚本返回的值

转载 作者:行者123 更新时间:2023-12-03 01:26:00 25 4
gpt4 key购买 nike

我正在尝试以下 Powershell 脚本:

Function jello-code {
return "jello"
}

jello-code
在 Ansible 剧本中,我有一个任务定义为
- name : run jello script.
win_shell: C:Projects\scripts\jello.ps1
args:
chdir: C:Projects\scripts
register : script_return
- debug : msg = {{script_return.stdout}}
目前调试任务显示的值为
ok: [clientmachine.com] => {
"msg": "Hello world!"
}
我总是得到相同的“Hello world!”信息。
我的目标是根据 Powershell 脚本返回的值执行其他任务。

最佳答案

发生这种情况是因为 debug 的默认消息模块是 Hello world!您可以引用 parameter msg 的文档默认值.
而且因为您的 YAML 语法是伪造的,所以您的 debug任务打印其默认值。
一个好的建议是避免混合 YAML 语法和旧的 key=value。一。
这方面的一个工作示例是:

- name: run jello script.
win_shell: C:Projects\scripts\jello.ps1
args:
chdir: C:Projects\scripts
register: script_return
- debug:
msg: "{{ script_return.stdout }}"
如果你坚持使用另一种语法——命名为 key=value - 但是,请注意,您的问题来自您在等号周围放置的空间。
以下是带和不带空格的不同行为:

  • - debug: msg={{script_return.stdout}}
    正确并打印
    "msg": "jello"

  • - debug: msg = {{script_return.stdout}}
    是假的和打印品
    "msg": "Hello world!"

  • - debug: msg ={{script_return.stdout}}
    是假的和打印品
    "msg": "Hello world!"

  • - debug: msg= {{script_return.stdout}}
    是假的和打印品
    "msg": ""

  • 因此,简而言之,在这种语法中,不要在等号周围添加空格。

    关于powershell - 如何使用 ansible 读取 powershell 脚本返回的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62858441/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com