以下命令很可能失败,因为它无法内插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
变量?
答案 0 :(得分:0)
有没有一种方法可以使命令模块同时替换ansible和shell变量?
是的。确保在运行命令的主机,用户和外壳程序的环境中都存在shell变量。
- hosts: localhost
vars:
env_variable: SHELL
tasks:
- command: "echo ${{ env_variable }}"
register: result
- debug: msg="{{ result.stdout }}"