将角色默认值与运行时变量合并

时间:2018-11-23 02:04:32

标签: ansible

假设我具有以下文件的角色org.foo

defaults/main.yml

service_conf:
  includes:
    - "thing.conf"
  main:
    host: "foo.example.com"
    port: 1234
    # plus a whole bunch more

templates/service.conf.j2

{% for value in service_conf.includes %}
include '{{ value }}'
{% endfor %}

{% for key,value in service_conf.main.iteritems() %}
{{ key }} = '{{ value }}'
{% endfor %}

在某个时候我想要执行的任务:

  1. 将一项附加到service_conf.includes
  2. 添加或修改service_conf.main中的条目

我该怎么做?

我已经像下面那样尝试过set_fact,但是最终替换了默认值而不是对其进行了修改。

- name: adjust config
  set_fact:
    service_conf:
      main:
        host: 'app.domain.com'
        port: '5678'
        tls: 'yes'
  when: condition = 'happened'

0 个答案:

没有答案