Ansible:命令模块未插入shell变量

时间:2018-11-09 16:29:01

标签: shell ansible command

以下命令很可能失败,因为它无法内插shell变量packdir

  - name: archive_artifacts.yml --> Clear git history from packs directories
    command: 'for packdir in {{ packs_dir }}/*; do rm -rf {{ packs_dir }}/"${packdir}"/.git; done'
    args:
      chdir: "{{ temp_build_directory }}"

packs_dir是特定角色的defaults/main.yml中的变量:

packs_dir: "packs"

是否可以使用命令模块替换ansible shell变量?

1 个答案:

答案 0 :(得分:0)

  

有没有一种方法可以使命令模块同时替换ansible和shell变量?

是的。确保在运行命令的主机,用户和外壳程序的环境中都存在shell变量。

- hosts: localhost
  vars:
    env_variable: SHELL
  tasks:
    - command: "echo ${{ env_variable }}"
      register: result
    - debug: msg="{{ result.stdout }}"