ansible是否可以将win_shell主机的适当变量处理为多个任务?

ansible是否可以将win_shell主机的适当变量处理为多个任务?,ansible,Ansible,我想知道在任务中的win\u shell模块中定义的变量是否可以由主机保存,或者换句话说,当我想在另一个win\u shell任务中重复使用时,是否可以保存到主机中。 我是否也需要使用'{{shell_var}}'语法才能将变量与ansible一起使用 下面是一个带有注释的yaml示例 - name: Windows Playbook block block: # define a variable in win_shell - na

我想知道在任务中的
win\u shell
模块中定义的变量是否可以由主机保存,或者换句话说,当我想在另一个
win\u shell
任务中重复使用时,是否可以保存到主机中。

我是否也需要使用
'{{shell_var}}'
语法才能将变量与ansible一起使用

下面是一个带有注释的yaml示例

- name: Windows Playbook block
      block:
      
        # define a variable in win_shell  
        - name: define_variable_1_win
          win_shell : |
            $variable_1 = c:\
          win_stat: 
            path: 'variable_1'  
          register: variable_1_stat
          ignore_errors: yes
          
        # define a variable in win_shell using previous shell variable  
        - name: define_variable_2_win
          win_shell : |
            $variable_2 = -join ("$variable_1","test.txt")
          when: variable_1_stat.stat.exists
          win_stat: 
            path: 'variable_2'  
          register: variable_2_stat
          ignore_errors: yes

ansible为它必须在主机上执行的每个任务建立一个新连接(因此是一个新会话)。shell中的变量在会话之间不存在。您必须在同一个脚本中定义这两个变量,并在后续脚本中再次传递它们(如果需要)。