Network Time Protocol (NTP)¶
The NTP module configures NTP services. If NTP is not installed on the system, but NTP configuration is specified, NTP will be installed.
For a full list of keys, refer to the NTP module schema.
Available keys:¶
servers
: List of NTP servers to sync with.pools
: List of NTP pool servers to sync with. Pools are typically DNS hostnames which resolve to different specific servers to load balance a set of services.
Each server in the list will be added in list-order in the format:
[pool|server] <server entry> iburst
If no servers or pools are defined but NTP is enabled, then cloud-init will render the distro default list of pools:
pools = [
'0.{distro}.pool.ntp.org',
'1.{distro}.pool.ntp.org',
'2.{distro}.pool.ntp.org',
'3.{distro}.pool.ntp.org',
]
So putting these together, we can see a straightforward example:
#cloud-config
ntp:
pools: ['0.company.pool.ntp.org', '1.company.pool.ntp.org', 'ntp.myorg.org']
servers: ['my.ntp.server.local', 'ntp.ubuntu.com', '192.168.23.2']
Override NTP with chrony¶
Here we override NTP with chrony configuration on Ubuntu. The example uses cloud-init’s default chrony configuration.
1#cloud-config
2ntp:
3 enabled: true
4 ntp_client: chrony # Uses cloud-init default chrony configuration
Custom NTP client config¶
This example provides a custom NTP client configuration.
1#cloud-config
2ntp:
3 enabled: true
4 ntp_client: myntpclient
5 config:
6 confpath: /etc/myntpclient/myntpclient.conf
7 check_exe: myntpclientd
8 packages:
9 - myntpclient
10 service_name: myntpclient
11 template: |
12 ## template:jinja
13 # My NTP Client config
14 {% if pools -%}# pools{% endif %}
15 {% for pool in pools -%}
16 pool {{pool}} iburst
17 {% endfor %}
18 {%- if servers %}# servers
19 {% endif %}
20 {% for server in servers -%}
21 server {{server}} iburst
22 {% endfor %}
23 {% if peers -%}# peers{% endif %}
24 {% for peer in peers -%}
25 peer {{peer}}
26 {% endfor %}
27 {% if allow -%}# allow{% endif %}
28 {% for cidr in allow -%}
29 allow {{cidr}}
30 {% endfor %}
31 pools: [0.int.pool.ntp.org, 1.int.pool.ntp.org, ntp.myorg.org]
32 servers:
33 - ntp.server.local
34 - ntp.ubuntu.com
35 - 192.168.23.2
36 allow:
37 - 192.168.23.0/32
38 peers:
39 - km001
40 - km002