Ansible将事实值分配给变量



我是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线缺少一个空间。

最新更新