소스 검색

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…
취소
저장