gpt4 book ai didi

Ansible 在单个任务中注册多个变量

转载 作者:行者123 更新时间:2023-12-02 21:25:03 46 4
gpt4 key购买 nike

我有一个 ansible 任务,我想在其中注册多个变量,我该如何实现?列表或逗号分隔的字符串似乎不起作用。

我想做这样的事情:

- name: my task
module_name:
<some more params>
register: [var1, var2]

如果我添加 register: var1\n register: var2 那么只有第二个被注册。

编辑:好吧,我认为我的困惑在于变量注册的工作原理。因此,当您注册:any_var_name时,新创建的变量包含任务的整个输出。然后您可以按照接受的答案中的任何方式访问它。

最佳答案

不,这是不可能的。

Ansible(从当前版本 2.4 开始)不允许注册模块的部分输出(或其几个不同部分)。

您只能注册完整结果,并在要执行的任务中提取部分结果。

例如,如果您想获取 command 模块的 std_outstd_err,您需要执行两个任务:

- command: myscript.sh
register: cmd_res
- set_fact:
std_out: "{{ cmd_res.stdout }}"
std_err: "{{ cmd_res.stderr }}"

而且你不能一次性做到这一点,如下所示:

- command: myscript.sh
# this code does not work!
register:
std_out: result.stdout
std_err: result.stderr

关于Ansible 在单个任务中注册多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46608715/

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