我是ansible的新手,我正在编写一个小型剧本,它必须从目标主机收集事实值并将其用作剧中的变量。有人可以帮我怎么做。
---
- hosts: all
gather_facts: True
become: true
become_method: sudo
become_user: root
vars:
BUILD_PATH: /opt/services/dev
pre_tasks:
- setup:
filter: ansible_env
- set_fact:
tag: "{{ ansible_env.DATA_AGGREGATOR_ENV }}"
- debug: var=ENV
tasks:
- name: Copy to Build to DATA
shell: cp -pr {{ BUILD_PATH }} {{ ENV }}
注意:DATA_AGGREGATOR_ENV是在所有服务器中定义的环境变量,其值因服务器而异。
答案 0 :(得分:0)
您设置变量tag
,但使用变量ENV
。
如果要使用ENV
变量,则必须设置ENV
变量。
- set_fact:
ENV: "{{ ansible_env.DATA_AGG_ENV }}"
如果您设置了tag
变量,则必须使用tag
变量。
shell: cp -pr {{ BUILD_PATH }} {{ tag }}
btw:filter
行没有空格。