ansible将事实值分配给变量

时间:2017-09-13 06:30:04

标签: ansible ansible-2.x ansible-inventory ansible-facts

我是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是在所有服务器中定义的环境变量,其值因服务器而异。

1 个答案:

答案 0 :(得分:0)

您设置变量tag,但使用变量ENV

如果要使用ENV变量,则必须设置ENV变量。

- set_fact:
    ENV: "{{ ansible_env.DATA_AGG_ENV }}"

如果您设置了tag变量,则必须使用tag变量。

    shell: cp -pr {{ BUILD_PATH }} {{ tag }}

btw:filter行没有空格。