Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash Ansible在任务内创建可重用的动态环境变量_Bash_Ansible - Fatal编程技术网

Bash Ansible在任务内创建可重用的动态环境变量

Bash Ansible在任务内创建可重用的动态环境变量,bash,ansible,Bash,Ansible,在Ansible中执行任务期间,是否可以设置可重用的动态环境变量? 像这样: Ansible正在为每个单独的命令执行子shell。不能从子shell在父进程中设置变量 不要使用raw。如果您绝对必须使用raw,请尝试重新思考。 如果您仍然必须这样做,它仍然会创建一个子shell,并且不会执行您想要的操作 您需要将该值移动到ansible父进程 - command: curl --silent http://127.0.0.1:1234/secret register: tmpvar # p

在Ansible中执行任务期间,是否可以设置可重用的动态环境变量? 像这样:


Ansible正在为每个单独的命令执行子shell。不能从子shell在父进程中设置变量

不要使用
raw
。如果您绝对必须使用
raw
,请尝试重新思考。 如果您仍然必须这样做,它仍然会创建一个子shell,并且不会执行您想要的操作

您需要将该值移动到ansible父进程

- command: curl --silent http://127.0.0.1:1234/secret
  register: tmpvar

# pull just the bit you want - tmpvar has lots of extraneous stuff
- set_fact:
    SECRET: "{{ tmpvar.stdout }}"

- shell: |
    SECRET="{{ SECRET }}"
    echo $SECRET

那么您希望什么时候解析变量呢?cron模块在这里是一个糟糕的例子。我更新了问题,使之更简单。这里不需要环境变量。但可能吗?这取决于。你对是/否答案感兴趣吗?这不是它的目的。也没有真正需要shell赋值,但是我认为它可能会影响到您要做的事情~耸耸肩~
- command: curl --silent http://127.0.0.1:1234/secret
  register: tmpvar

# pull just the bit you want - tmpvar has lots of extraneous stuff
- set_fact:
    SECRET: "{{ tmpvar.stdout }}"

- shell: |
    SECRET="{{ SECRET }}"
    echo $SECRET