首页 文章

ansible将事实值分配给变量

提问于
浏览
-1

我是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

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

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

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

    或者,如果已设置 tag 变量,则必须使用 tag 变量 .

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

    顺便说一句: filter 行没有空格 .

相关问题