我是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是所有服务器中定义的环境变量,并且该值因一台服务器而异。
您设置了变量tag
,但是您使用变量ENV
。
如果要使用ENV
变量,则必须设置ENV
变量。
- set_fact:
ENV: "{{ ansible_env.DATA_AGG_ENV }}"
,或者如果您设置了tag
变量。
tag
变量。
shell: cp -pr {{ BUILD_PATH }} {{ tag }}
btw:filter
线缺少一个空间。