瀏覽代碼

feat(config): allow differents options for server and pool

Pool and server configuration may have different options but it's not
currently possible.
In order to solve that, the template is changed to accept pool
or server specification as a dictionnary, specifying at least the
pool/server name and if wanted the pool/server options. If no options
are specified, it'll use chrony.options.
In order to not break anything the template is checking if the server/pool
specification is a dictionnary or not, and acts accordingly.

Fixes: #27
Signed-off-by: Arnaud Patard <apatard@hupstream.com>
tags/v1.3.0
Arnaud Patard 3 年之前
父節點
當前提交
7d680a1a60
共有 3 個文件被更改,包括 18 次插入4 次删除
  1. +8
    -0
      chrony/files/default/chrony.conf.jinja
  2. +6
    -4
      pillar.example
  3. +4
    -0
      test/integration/default/controls/config_spec.rb

+ 8
- 0
chrony/files/default/chrony.conf.jinja 查看文件

@@ -5,13 +5,21 @@

{%- if chrony.ntpservers is defined %}
{% for server in chrony.ntpservers -%}
{% if server is mapping %}
server {{ server.name }} {{ server.options | default(chrony.options) }}
{% else %}
server {{ server }} {{ chrony.options }}
{% endif %}
{% endfor %}
{%- endif %}

{%- if chrony.pool is defined %}
{% for pool in chrony.pool -%}
{% if pool is mapping %}
pool {{ pool.name }} {{ pool.options | default(chrony.options) }}
{% else %}
pool {{ pool }} {{ chrony.options }}
{% endif %}
{% endfor %}
{% endif %}


+ 6
- 4
pillar.example 查看文件

@@ -3,13 +3,15 @@
---
chrony:
ntpservers:
- '0.debian.pool.ntp.org'
- '1.centos.pool.ntp.org'
- name: '0.debian.pool.ntp.org'
options: iburst
- name: '1.centos.pool.ntp.org'
- '2.arch.pool.ntp.org'
- '3.gentoo.pool.ntp.org'
pool:
- '0.debian.pool.ntp.org'
- '1.centos.pool.ntp.org'
- name: '0.debian.pool.ntp.org'
options: iburst
- name: '1.centos.pool.ntp.org'
- '2.arch.pool.ntp.org'
- '3.gentoo.pool.ntp.org'
allow:

+ 4
- 0
test/integration/default/controls/config_spec.rb 查看文件

@@ -30,5 +30,9 @@ control 'Chrony configuration' do
its('content') { should include keyfile }
its('content') { should include driftfile }
its('content') { should include logdir }
its('content') { should include 'server 0.debian.pool.ntp.org iburst' }
its('content') { should include 'server 1.centos.pool.ntp.org' }
its('content') { should include 'pool 0.debian.pool.ntp.org iburst' }
its('content') { should include 'pool 1.centos.pool.ntp.org' }
end
end

Loading…
取消
儲存