BREAKING CHANGE: `chrony.removed` replaced by `.clean` states.tags/v1.0.0
# -*- coding: utf-8 -*- | |||||
# vim: ft=sls | |||||
include: | |||||
- .service.clean | |||||
- .config.clean | |||||
- .package.clean |
{% from slspath+"/map.jinja" import chrony with context %} | |||||
include: | |||||
- chrony | |||||
chrony_config: | |||||
file.managed: | |||||
- name: {{ chrony.config }} | |||||
- source: {{ chrony.config_src }} | |||||
- template: jinja | |||||
- defaults: | |||||
slspath: {{ slspath|yaml_encode }} | |||||
- user: root | |||||
- group: root | |||||
- mode: 644 | |||||
- watch_in: | |||||
- service: chrony |
# -*- coding: utf-8 -*- | |||||
# vim: ft=sls | |||||
{#- Get the `tplroot` from `tpldir` #} | |||||
{%- set tplroot = tpldir.split('/')[0] %} | |||||
{%- set sls_service_clean = tplroot ~ '.service.clean' %} | |||||
{%- from tplroot ~ "/map.jinja" import chrony with context %} | |||||
include: | |||||
- {{ sls_service_clean }} | |||||
chrony-config-clean-file-absent: | |||||
file.absent: | |||||
- name: {{ chrony.config }} | |||||
- require: | |||||
- sls: {{ sls_service_clean }} |
# -*- coding: utf-8 -*- | |||||
# vim: ft=sls | |||||
{#- Get the `tplroot` from `tpldir` #} | |||||
{%- set tplroot = tpldir.split('/')[0] %} | |||||
{%- set sls_package_install = tplroot ~ '.package.install' %} | |||||
{%- from tplroot ~ "/map.jinja" import chrony with context %} | |||||
{%- from tplroot ~ "/libtofs.jinja" import files_switch with context %} | |||||
include: | |||||
- {{ sls_package_install }} | |||||
chrony-config-file-file-managed: | |||||
file.managed: | |||||
- name: {{ chrony.config }} | |||||
- source: {{ files_switch(['chrony.conf', 'chrony.conf.jinja'], | |||||
lookup='chrony-config-file-file-managed' | |||||
) | |||||
}} | |||||
- mode: 644 | |||||
- user: root | |||||
- group: root | |||||
- template: jinja | |||||
- context: | |||||
chrony: {{ chrony|json }} | |||||
- require: | |||||
- sls: {{ sls_package_install }} |
# -*- coding: utf-8 -*- | |||||
# vim: ft=sls | |||||
include: | |||||
- .file |
# Default lookup dictionary | |||||
# -*- coding: utf-8 -*- | |||||
# vim: ft=yaml | |||||
--- | |||||
chrony: | chrony: | ||||
package: chrony | package: chrony | ||||
service: chronyd | |||||
service: | |||||
name: chronyd | |||||
config: /etc/chrony.conf | config: /etc/chrony.conf | ||||
config_src: salt://{{ slspath }}/files/chrony_config | |||||
ntpservers: [ '0.us.pool.ntp.org', | |||||
'1.us.pool.ntp.org', | |||||
'2.us.pool.ntp.org', | |||||
'3.us.pool.ntp.org' | |||||
] | |||||
ntpservers: | |||||
- '0.us.pool.ntp.org' | |||||
- '1.us.pool.ntp.org' | |||||
- '2.us.pool.ntp.org' | |||||
- '3.us.pool.ntp.org' | |||||
options: iburst | options: iburst | ||||
logdir: /var/log/chrony | logdir: /var/log/chrony | ||||
keyfile: /etc/chrony.keys | keyfile: /etc/chrony.keys | ||||
driftfile: /var/lib/chrony/drift | driftfile: /var/lib/chrony/drift | ||||
otherparams: [ 'rtcsync', | |||||
'makestep 10 3', | |||||
'stratumweight 0', | |||||
'bindcmdaddress 127.0.0.1', | |||||
'bindcmdaddress ::1', | |||||
'commandkey 1', | |||||
'generatecommandkey', | |||||
'noclientlog', | |||||
'logchange 0.5', | |||||
] | |||||
allow: [ '10/8', '192.168/16', '172.16/12' ] | |||||
otherparams: | |||||
- 'rtcsync' | |||||
- 'makestep 10 3' | |||||
- 'stratumweight 0' | |||||
- 'bindcmdaddress 127.0.0.1' | |||||
- 'bindcmdaddress ::1' | |||||
- 'noclientlog' | |||||
- 'logchange 0.5' | |||||
allow: | |||||
- '10/8' | |||||
- '192.168/16' | |||||
- '172.16/12' |
{% from slspath+"/map.jinja" import chrony as config with context %} | |||||
# This file is managed by salt | |||||
{% for server in config.ntpservers -%} | |||||
server {{ server }} {{ config.options }} | |||||
{% endfor %} | |||||
keyfile {{ config.keyfile }} | |||||
driftfile {{ config.driftfile }} | |||||
{% if config.allow is defined %} | |||||
{% for allowed in config.get('allow', []) -%} | |||||
allow {{ allowed }} | |||||
{% endfor %} | |||||
{%- endif %} | |||||
logdir {{ config.logdir }} | |||||
{% for param in config.get('otherparams', []) -%} | |||||
{{ param }} | |||||
{% endfor %} |
######################################################################## | |||||
# File managed by Salt at <{{ source }}>. | |||||
# Your changes will be overwritten. | |||||
######################################################################## | |||||
{% for server in chrony.ntpservers -%} | |||||
server {{ server }} {{ chrony.options }} | |||||
{% endfor %} | |||||
keyfile {{ chrony.keyfile }} | |||||
driftfile {{ chrony.driftfile }} | |||||
{% if chrony.allow is defined %} | |||||
{% for allowed in chrony.get('allow', []) -%} | |||||
allow {{ allowed }} | |||||
{% endfor %} | |||||
{%- endif %} | |||||
logdir {{ chrony.logdir }} | |||||
{% for param in chrony.get('otherparams', []) -%} | |||||
{{ param }} | |||||
{% endfor %} |
{% from slspath+"/map.jinja" import chrony with context %} | |||||
# -*- coding: utf-8 -*- | |||||
# vim: ft=sls | |||||
chrony: | |||||
pkg.installed: | |||||
- name: {{ chrony.package }} | |||||
service.running: | |||||
- enable: True | |||||
- name: {{ chrony.service }} | |||||
- require: | |||||
- pkg: {{ chrony.package }} | |||||
include: | |||||
- .package | |||||
- .config | |||||
- .service |
{%- macro files_switch(source_files, | |||||
lookup=None, | |||||
default_files_switch=['id', 'os_family'], | |||||
indent_width=6, | |||||
v1_path_prefix='') %} | |||||
{#- | |||||
Returns a valid value for the "source" parameter of a "file.managed" | |||||
state function. This makes easier the usage of the Template Override and | |||||
Files Switch (TOFS) pattern. | |||||
Params: | |||||
* source_files: ordered list of files to look for | |||||
* lookup: key under '<tplroot>:tofs:source_files' to override | |||||
list of source files | |||||
* default_files_switch: if there's no config (e.g. pillar) | |||||
'<tplroot>:tofs:files_switch' this is the ordered list of grains to | |||||
use as selector switch of the directories under | |||||
"<path_prefix>/files" | |||||
* indent_witdh: indentation of the result value to conform to YAML | |||||
* v1_path_prefix: (deprecated) only used for injecting a path prefix into | |||||
the source, to support older TOFS configs | |||||
Example (based on a `tplroot` of `xxx`): | |||||
If we have a state: | |||||
Deploy configuration: | |||||
file.managed: | |||||
- name: /etc/yyy/zzz.conf | |||||
- source: {{ files_switch(['/etc/yyy/zzz.conf', '/etc/yyy/zzz.conf.jinja'], | |||||
lookup='Deploy configuration' | |||||
) }} | |||||
- template: jinja | |||||
In a minion with id=theminion and os_family=RedHat, it's going to be | |||||
rendered as: | |||||
Deploy configuration: | |||||
file.managed: | |||||
- name: /etc/yyy/zzz.conf | |||||
- source: | |||||
- salt://xxx/files/theminion/etc/yyy/zzz.conf | |||||
- salt://xxx/files/theminion/etc/yyy/zzz.conf.jinja | |||||
- salt://xxx/files/RedHat/etc/yyy/zzz.conf | |||||
- salt://xxx/files/RedHat/etc/yyy/zzz.conf.jinja | |||||
- salt://xxx/files/default/etc/yyy/zzz.conf | |||||
- salt://xxx/files/default/etc/yyy/zzz.conf.jinja | |||||
- template: jinja | |||||
#} | |||||
{#- Get the `tplroot` from `tpldir` #} | |||||
{%- set tplroot = tpldir.split('/')[0] %} | |||||
{%- set path_prefix = salt['config.get'](tplroot ~ ':tofs:path_prefix', tplroot) %} | |||||
{%- set files_dir = salt['config.get'](tplroot ~ ':tofs:dirs:files', 'files') %} | |||||
{%- set files_switch_list = salt['config.get']( | |||||
tplroot ~ ':tofs:files_switch', | |||||
default_files_switch | |||||
) %} | |||||
{#- Lookup source_files (v2), files (v1), or fallback to source_files parameter #} | |||||
{%- set src_files = salt['config.get']( | |||||
tplroot ~ ':tofs:source_files:' ~ lookup, | |||||
salt['config.get']( | |||||
tplroot ~ ':tofs:files:' ~ lookup, | |||||
source_files | |||||
) | |||||
) %} | |||||
{#- Only add to [''] when supporting older TOFS implementations #} | |||||
{%- set path_prefix_exts = [''] %} | |||||
{%- if v1_path_prefix != '' %} | |||||
{%- do path_prefix_exts.append(v1_path_prefix) %} | |||||
{%- endif %} | |||||
{%- for path_prefix_ext in path_prefix_exts %} | |||||
{%- set path_prefix_inc_ext = path_prefix ~ path_prefix_ext %} | |||||
{#- For older TOFS implementation, use `files_switch` from the config #} | |||||
{#- Use the default, new method otherwise #} | |||||
{%- set fsl = salt['config.get']( | |||||
tplroot ~ path_prefix_ext|replace('/', ':') ~ ':files_switch', | |||||
files_switch_list | |||||
) %} | |||||
{#- Append an empty value to evaluate as `default` in the loop below #} | |||||
{%- if '' not in fsl %} | |||||
{%- do fsl.append('') %} | |||||
{%- endif %} | |||||
{%- for fs in fsl %} | |||||
{%- for src_file in src_files %} | |||||
{%- if fs %} | |||||
{%- set fs_dir = salt['config.get'](fs, fs) %} | |||||
{%- else %} | |||||
{%- set fs_dir = salt['config.get'](tplroot ~ ':tofs:dirs:default', 'default') %} | |||||
{%- endif %} | |||||
{%- set url = '- salt://' ~ '/'.join([ | |||||
path_prefix_inc_ext, | |||||
files_dir, | |||||
fs_dir, | |||||
src_file.lstrip('/') | |||||
]) %} | |||||
{{ url | indent(indent_width, true) }} | |||||
{%- endfor %} | |||||
{%- endfor %} | |||||
{%- endfor %} | |||||
{%- endmacro %} |
{## start with defaults from defaults.yaml ##} | |||||
{% import_yaml slspath+"/defaults.yaml" as defaults %} | |||||
{% import_yaml slspath+"/osmap.yaml" as osmap %} | |||||
# -*- coding: utf-8 -*- | |||||
# vim: ft=jinja | |||||
{% set chrony = salt['grains.filter_by']( | |||||
defaults, | |||||
merge=salt['grains.filter_by']( | |||||
osmap, | |||||
grain='os_family', | |||||
merge=salt['pillar.get']('chrony', {}), | |||||
), | |||||
base='chrony' | |||||
{#- Get the `tplroot` from `tpldir` #} | |||||
{%- set tplroot = tpldir.split('/')[0] %} | |||||
{#- Start imports as #} | |||||
{%- import_yaml tplroot ~ "/defaults.yaml" as default_settings %} | |||||
{%- import_yaml tplroot ~ "/osfamilymap.yaml" as osfamilymap %} | |||||
{%- import_yaml tplroot ~ "/osmap.yaml" as osmap %} | |||||
{%- import_yaml tplroot ~ "/osfingermap.yaml" as osfingermap %} | |||||
{%- set defaults = salt['grains.filter_by'](default_settings, | |||||
default='chrony', | |||||
merge=salt['grains.filter_by'](osfamilymap, grain='os_family', | |||||
merge=salt['grains.filter_by'](osmap, grain='os', | |||||
merge=salt['grains.filter_by'](osfingermap, grain='osfinger', | |||||
merge=salt['pillar.get']('chrony:lookup', default={}) | |||||
) | |||||
) | |||||
) | |||||
) %} | ) %} | ||||
{# Debian distros check /etc/default/rcS to determine UTC setting #} | |||||
{% if grains['os_family'] == "Debian" %} | |||||
{% if salt['cmd.run']('grep UTC=no /etc/default/rcS', output_loglevel='quiet') %} | |||||
{%- if chrony['otherparams'] and 'rtconutc' in chrony['otherparams'] %} | |||||
{% do chrony['otherparams'].remove('rtconutc') %} | |||||
{%- endif %} | |||||
{% endif %} | |||||
{% endif %} | |||||
{#- Merge the chrony pillar #} | |||||
{%- set chrony = salt['pillar.get']('chrony', default=defaults, merge=True) %} |
# -*- coding: utf-8 -*- | |||||
# vim: ft=yaml | |||||
# | |||||
# Setup variables using grains['os_family'] based logic. | |||||
# You just need to add the key:values for an `os_family` that differ | |||||
# from `defaults.yaml`. | |||||
# Only add an `os_family` which is/will be supported by the formula | |||||
# | |||||
# If you do not need to provide defaults via the `os_family` grain, | |||||
# you will need to provide at least an empty dict in this file, e.g. | |||||
# osfamilymap: {} | |||||
--- | |||||
Debian: | |||||
service: | |||||
name: chrony | |||||
config: /etc/chrony/chrony.conf | |||||
ntpservers: | |||||
- '0.debian.pool.ntp.org' | |||||
- '1.debian.pool.ntp.org' | |||||
- '2.debian.pool.ntp.org' | |||||
- '3.debian.pool.ntp.org' | |||||
options: offline minpoll 8 | |||||
keyfile: /etc/chrony/chrony.keys | |||||
driftfile: /var/lib/chrony/chrony.drift | |||||
otherparams: | |||||
- 'log tracking measurements statistics' | |||||
- 'maxupdateskew 100.0' | |||||
- 'dumponexit' | |||||
- 'dumpdir /var/lib/chrony' | |||||
- 'commandkey 1' | |||||
- 'local stratum 10' | |||||
- 'rtconutc' | |||||
RedHat: | |||||
ntpservers: | |||||
- '0.centos.pool.ntp.org' | |||||
- '1.centos.pool.ntp.org' | |||||
- '2.centos.pool.ntp.org' | |||||
- '3.centos.pool.ntp.org' | |||||
otherparams: | |||||
- 'rtcsync' | |||||
- 'makestep 10 3' | |||||
- 'stratumweight 0' | |||||
- 'bindcmdaddress 127.0.0.1' | |||||
- 'bindcmdaddress ::1' | |||||
- 'commandkey 1' | |||||
- 'generatecommandkey' | |||||
- 'noclientlog' | |||||
- 'logchange 0.5' | |||||
openSUSE: | |||||
ntpservers: | |||||
- '0.arch.opensuse.ntp.org' | |||||
- '1.arch.opensuse.ntp.org' | |||||
- '2.arch.opensuse.ntp.org' | |||||
- '3.opensuse.pool.ntp.org' | |||||
otherparams: | |||||
- 'rtcsync' | |||||
- 'makestep 10 3' | |||||
- 'maxdistance 6' | |||||
- 'logchange 0.1' | |||||
Gentoo: | |||||
package: net-misc/chrony | |||||
config: /etc/chrony/chrony.conf | |||||
ntpservers: | |||||
- '0.gentoo.pool.ntp.org' | |||||
- '1.gentoo.pool.ntp.org' | |||||
- '2.gentoo.pool.ntp.org' | |||||
- '3.gentoo.pool.ntp.org' | |||||
otherparams: | |||||
- 'rtconutc' | |||||
- 'rtcsync' | |||||
Arch: | |||||
ntpservers: | |||||
- '0.arch.pool.ntp.org' | |||||
- '1.arch.pool.ntp.org' | |||||
- '2.arch.pool.ntp.org' | |||||
otherparams: | |||||
- 'rtconutc' | |||||
- 'rtcsync' |
# -*- coding: utf-8 -*- | |||||
# vim: ft=yaml | |||||
# | |||||
# Setup variables using grains['osfinger'] based logic. | |||||
# You just need to add the key:values for an `osfinger` that differ | |||||
# from `defaults.yaml` + `os_family.yaml` + `osmap.yaml`. | |||||
# Only add an `osfinger` which is/will be supported by the formula | |||||
# | |||||
# If you do not need to provide defaults via the `os_finger` grain, | |||||
# you will need to provide at least an empty dict in this file, e.g. | |||||
# osfingermap: {} | |||||
--- | |||||
# os: Ubuntu | |||||
Ubuntu-18.04: {} | |||||
# os: CentOS | |||||
CentOS-6: {} | |||||
CentOS-7: {} |
# OS parameters overriding common defaults(.yaml) | |||||
# -*- coding: utf-8 -*- | |||||
# vim: ft=yaml | |||||
# | |||||
# Setup variables using grains['os'] based logic. | |||||
# You just need to add the key:values for an `os` that differ | |||||
# from `defaults.yaml` + `os_family.yaml`. | |||||
# Only add an `os` which is/will be supported by the formula | |||||
# | |||||
# If you do not need to provide defaults via the `os` grain, | |||||
# you will need to provide at least an empty dict in this file, e.g. | |||||
# osmap: {} | |||||
--- | |||||
# os_family: Debian | |||||
Ubuntu: {} | |||||
Debian: | |||||
service: chrony | |||||
config: /etc/chrony/chrony.conf | |||||
ntpservers: [ '0.debian.pool.ntp.org', | |||||
'1.debian.pool.ntp.org', | |||||
'2.debian.pool.ntp.org', | |||||
'3.debian.pool.ntp.org', ] | |||||
options: offline minpoll 8 | |||||
keyfile: /etc/chrony/chrony.keys | |||||
driftfile: /var/lib/chrony/chrony.drift | |||||
otherparams: [ 'log tracking measurements statistics', | |||||
'maxupdateskew 100.0', | |||||
'dumponexit', | |||||
'dumpdir /var/lib/chrony', | |||||
'commandkey 1', | |||||
'local stratum 10', | |||||
'rtconutc', ] | |||||
Raspbian: {} | |||||
RedHat: | |||||
ntpservers: [ '0.centos.pool.ntp.org', | |||||
'1.centos.pool.ntp.org', | |||||
'2.centos.pool.ntp.org', | |||||
'3.centos.pool.ntp.org', ] | |||||
otherparams: [ 'rtcsync', | |||||
'makestep 10 3', | |||||
'stratumweight 0', | |||||
'bindcmdaddress 127.0.0.1', | |||||
'bindcmdaddress ::1', | |||||
'commandkey 1', | |||||
'generatecommandkey', | |||||
'noclientlog', | |||||
'logchange 0.5', ] | |||||
# os_family: RedHat | |||||
Fedora: {} | |||||
Arch: | |||||
ntpservers: [ '0.arch.pool.ntp.org', | |||||
'1.arch.pool.ntp.org', | |||||
'2.arch.pool.ntp.org' ] | |||||
otherparams: [ 'rtconutc', | |||||
'rtcsync', ] | |||||
CentOS: {} | |||||
Gentoo: | |||||
package: net-misc/chrony | |||||
service: chronyd | |||||
config: /etc/chrony/chrony.conf | |||||
ntpservers: [ '0.gentoo.pool.ntp.org', | |||||
'1.gentoo.pool.ntp.org', | |||||
'2.gentoo.pool.ntp.org', | |||||
'3.gentoo.pool.ntp.org', ] | |||||
options: iburst | |||||
driftfile: /var/lib/chrony/drift | |||||
otherparams: [ 'rtconutc', | |||||
'rtcsync', ] | |||||
# os_family: Gentoo | |||||
Gentoo: {} | |||||
Suse: | |||||
ntpservers: [ '0.arch.opensuse.ntp.org', | |||||
'1.arch.opensuse.ntp.org', | |||||
'2.arch.opensuse.ntp.org', | |||||
'3.opensuse.pool.ntp.org', ] | |||||
otherparams: [ 'rtcsync', | |||||
'makestep 10 3', | |||||
'maxdistance 6', | |||||
'logchange 0.1', ] | |||||
# os_family: Suse | |||||
Suse: {} | |||||
# os_family: Arch | |||||
Arch: {} |
# -*- coding: utf-8 -*- | |||||
# vim: ft=sls | |||||
{#- Get the `tplroot` from `tpldir` #} | |||||
{%- set tplroot = tpldir.split('/')[0] %} | |||||
{%- set sls_config_clean = tplroot ~ '.config.clean' %} | |||||
{%- from tplroot ~ "/map.jinja" import chrony with context %} | |||||
include: | |||||
- {{ sls_config_clean }} | |||||
chrony-package-clean-pkg-removed: | |||||
pkg.removed: | |||||
- name: {{ chrony.pkg }} | |||||
- require: | |||||
- sls: {{ sls_config_clean }} |
# -*- coding: utf-8 -*- | |||||
# vim: ft=sls | |||||
include: | |||||
- .install |
# -*- coding: utf-8 -*- | |||||
# vim: ft=sls | |||||
{#- Get the `tplroot` from `tpldir` #} | |||||
{%- set tplroot = tpldir.split('/')[0] %} | |||||
{%- from tplroot ~ "/map.jinja" import chrony with context %} | |||||
chrony-package-install-pkg-installed: | |||||
pkg.installed: | |||||
- name: {{ chrony.package }} |
{% from slspath+"/map.jinja" import chrony with context %} | |||||
chrony_removed: | |||||
service.dead: | |||||
- enable: False | |||||
- name: {{ chrony.service }} | |||||
pkg.removed: | |||||
- name: {{ chrony.package }} | |||||
- require: | |||||
- service: chrony_removed |
# -*- coding: utf-8 -*- | |||||
# vim: ft=sls | |||||
{#- Get the `tplroot` from `tpldir` #} | |||||
{%- set tplroot = tpldir.split('/')[0] %} | |||||
{%- from tplroot ~ "/map.jinja" import chrony with context %} | |||||
chrony-service-clean-service-dead: | |||||
service.dead: | |||||
- name: {{ chrony.service.name }} | |||||
- enable: False |
# -*- coding: utf-8 -*- | |||||
# vim: ft=sls | |||||
include: | |||||
- .running |
# -*- coding: utf-8 -*- | |||||
# vim: ft=sls | |||||
{#- Get the `tplroot` from `tpldir` #} | |||||
{%- set tplroot = tpldir.split('/')[0] %} | |||||
{%- set sls_config_file = tplroot ~ '.config.file' %} | |||||
{%- from tplroot ~ "/map.jinja" import chrony with context %} | |||||
include: | |||||
- {{ sls_config_file }} | |||||
chrony-service-running-service-running: | |||||
service.running: | |||||
- name: {{ chrony.service.name }} | |||||
- enable: True | |||||
- require: | |||||
- sls: {{ sls_config_file }} |
Please see :ref:`How to contribute <CONTRIBUTING>` for more details. | Please see :ref:`How to contribute <CONTRIBUTING>` for more details. | ||||
Available states | Available states | ||||
================ | |||||
---------------- | |||||
.. contents:: | .. contents:: | ||||
:local: | :local: | ||||
``chrony`` | ``chrony`` | ||||
---------- | |||||
^^^^^^^^^^ | |||||
Installs the chrony package. | |||||
*Meta-state (This is a state that includes other states)*. | |||||
This installs the chrony package, | |||||
manages the chrony configuration file and then | |||||
starts the associated chrony service. | |||||
``chrony.package`` | |||||
^^^^^^^^^^^^^^^^^^ | |||||
This state will install the chrony package only. | |||||
``chrony.config`` | ``chrony.config`` | ||||
----------------- | |||||
This state manages the file ``chrony.conf`` under ``/etc`` (template found in "chrony/files"). The configuration is populated by values in "chrony/map.jinja" based on the package's default values (and RedHat, Debian, Suse and Arch family distribution specific values), which can then be overridden by values of the same name in pillar. | |||||
^^^^^^^^^^^^^^^^^ | |||||
This state will configure the chrony service and has a dependency on ``chrony.install`` | |||||
via include list. | |||||
``chrony.service`` | |||||
^^^^^^^^^^^^^^^^^^ | |||||
This state will start the chrony service and has a dependency on ``chrony.config`` | |||||
via include list. | |||||
``chrony.clean`` | |||||
^^^^^^^^^^^^^^^^ | |||||
*Meta-state (This is a state that includes other states)*. | |||||
this state will undo everything performed in the ``chrony`` meta-state in reverse order, i.e. | |||||
stops the service, | |||||
removes the configuration file and | |||||
then uninstalls the package. | |||||
``chrony.service.clean`` | |||||
^^^^^^^^^^^^^^^^^^^^^^^^ | |||||
This state will stop the chrony service and disable it at boot time. | |||||
``chrony.config.clean`` | |||||
^^^^^^^^^^^^^^^^^^^^^^^ | |||||
This state will remove the configuration of the chrony service and has a | |||||
dependency on ``chrony.service.clean`` via include list. | |||||
``chrony.package.clean`` | |||||
^^^^^^^^^^^^^^^^^^^^^^^^ | |||||
``chrony.removed`` | |||||
----------------- | |||||
Stops the service and uninstalls the package. | |||||
This state will remove the chrony package and has a depency on | |||||
``chrony.config.clean`` via include list. |
state_top: | state_top: | ||||
base: | base: | ||||
'*': | '*': | ||||
# - chrony | |||||
- chrony.config | |||||
- chrony | |||||
pillars: | pillars: | ||||
top.sls: | top.sls: | ||||
base: | base: |
chrony: | chrony: | ||||
ntpservers: | ntpservers: | ||||
- 'ntp0.nl.net' | |||||
- 'ntp1.nl.net' | |||||
- 'ntp2.nl.net' | |||||
- 'ntp.xs4all.nl' | |||||
- '0.nl.pool.ntp.org' | |||||
- '1.nl.pool.ntp.org' | |||||
- '2.nl.pool.ntp.org' | |||||
- '3.nl.pool.ntp.org' | |||||
- '0.debian.pool.ntp.org' | |||||
- '1.centos.pool.ntp.org' | |||||
- '2.arch.pool.ntp.org' | |||||
- '3.gentoo.pool.ntp.org' | |||||
allow: | |||||
- '10/8' | |||||
- '192.168/16' | |||||
- '172.16/12' | |||||
otherparams: | |||||
- 'rtcsync' | |||||
- 'makestep 10 3' | |||||
- 'stratumweight 0' | |||||
- 'bindcmdaddress 127.0.0.1' | |||||
- 'bindcmdaddress ::1' | |||||
- 'commandkey 1' | |||||
- 'generatecommandkey' | |||||
- 'noclientlog' | |||||
- 'logchange 0.5' | |||||
# tofs: | |||||
# # The files_switch key serves as a selector for alternative | |||||
# # directories under the formula files directory. See TOFS pattern | |||||
# # doc for more info. | |||||
# # Note: Any value not evaluated by `config.get` will be used literally. | |||||
# # This can be used to set custom paths, as many levels deep as required. | |||||
# files_switch: | |||||
# - any/path/can/be/used/here | |||||
# - id | |||||
# - osfinger | |||||
# - os | |||||
# - os_family | |||||
# # All aspects of path/file resolution are customisable using the options below. | |||||
# # This is unnecessary in most cases; there are sensible defaults. | |||||
# path_prefix: template_alt | |||||
# dirs: | |||||
# files: files_alt | |||||
# default: default_alt | |||||
# source_files: | |||||
# chrony-config-file-file-managed: | |||||
# - 'chrony_alt.conf' | |||||
# - 'chrony_alt.conf.jinja' |