如何仅一次一次为主机组动态生成变量

时间:2019-09-02 12:42:16

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

我的all.yml group_vars中有静态主机,我想从REST API的响应中生成一些变量。我可以在任务中使用uri模块并注册该剧本的变量,但我认为它会为每个主机调用api。

但是我想通过在播放开始时仅调用一次api来创建变量,因此所有主机都可以使用它。我该怎么办?

1 个答案:

答案 0 :(得分:2)

  问:我想通过在播放开始时只调用一次api来创建变量,因此所有主机都可以使用它。我该怎么办?

A:在任务中用MyPropertyA注册的变量可用于所有主机。下面的剧本

run_once: true

给予

- hosts: all
  tasks:
    - command: date
      register: result
      run_once: true
    - set_fact:
        started_at: "{{ result.stdout }}"
    - debug:
        var: started_at