Просмотр исходного кода

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 лет назад
Родитель
Сommit
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

Загрузка…
Отмена
Сохранить