mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2026-02-16 10:40:04 -03:30
add-managed-ntp-support (#9027)
This commit is contained in:
@@ -62,3 +62,40 @@ pkg_install_retries: 4
|
||||
|
||||
# Check if access_ip responds to ping. Set false if your firewall blocks ICMP.
|
||||
ping_access_ip: true
|
||||
|
||||
## NTP Settings
|
||||
# Start the ntpd or chrony service and enable it at system boot.
|
||||
ntp_enabled: false
|
||||
# The package to install which provides NTP functionality.
|
||||
# The default is ntp for most platforms, or chrony on RHEL/CentOS 7 and later.
|
||||
# The ntp_package can be one of ['ntp','chrony']
|
||||
ntp_package: >-
|
||||
{% if ansible_os_family == "RedHat" -%}
|
||||
chrony
|
||||
{%- else -%}
|
||||
ntp
|
||||
{%- endif -%}
|
||||
|
||||
# Manage the NTP configuration file.
|
||||
ntp_manage_config: false
|
||||
# Specify the NTP servers
|
||||
# Only takes effect when ntp_manage_config is true.
|
||||
ntp_servers:
|
||||
- "0.pool.ntp.org iburst"
|
||||
- "1.pool.ntp.org iburst"
|
||||
- "2.pool.ntp.org iburst"
|
||||
- "3.pool.ntp.org iburst"
|
||||
# Restrict NTP access to these hosts.
|
||||
# Only takes effect when ntp_manage_config is true.
|
||||
ntp_restrict:
|
||||
- "127.0.0.1"
|
||||
- "::1"
|
||||
# The NTP driftfile path
|
||||
# Only takes effect when ntp_manage_config is true.
|
||||
ntp_driftfile: /var/lib/ntp/ntp.drift
|
||||
# Enable tinker panic is useful when running NTP in a VM environment.
|
||||
# Only takes effect when ntp_manage_config is true.
|
||||
ntp_tinker_panic: false
|
||||
|
||||
# Force sync time immediately after the ntp installed, which is useful in in newly installed system.
|
||||
ntp_force_sync_immediately: false
|
||||
|
||||
@@ -120,3 +120,9 @@
|
||||
service:
|
||||
name: systemd-resolved
|
||||
state: restarted
|
||||
|
||||
- name: Preinstall | restart ntp
|
||||
service:
|
||||
name: "{{ ntp_service_name }}"
|
||||
state: restarted
|
||||
when: ntp_enabled
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
---
|
||||
- name: Ensure NTP package
|
||||
package:
|
||||
name:
|
||||
- "{{ ntp_package }}"
|
||||
state: present
|
||||
|
||||
- name: Disable systemd-timesyncd
|
||||
service:
|
||||
name: systemd-timesyncd.service
|
||||
enabled: false
|
||||
state: stopped
|
||||
failed_when: false
|
||||
|
||||
- name: Set fact NTP settings
|
||||
set_fact:
|
||||
ntp_config_file: >-
|
||||
{% if ntp_package == "ntp" -%}
|
||||
/etc/ntp.conf
|
||||
{%- elif ansible_os_family in ['RedHat', 'Suse'] -%}
|
||||
/etc/chrony.conf
|
||||
{%- else -%}
|
||||
/etc/chrony/chrony.conf
|
||||
{%- endif -%}
|
||||
ntp_service_name: >-
|
||||
{% if ntp_package == "chrony" -%}
|
||||
chronyd
|
||||
{%- elif ansible_os_family == 'RedHat' -%}
|
||||
ntpd
|
||||
{%- else -%}
|
||||
ntp
|
||||
{%- endif %}
|
||||
|
||||
- name: Generate NTP configuration file.
|
||||
template:
|
||||
src: "{{ ntp_config_file | basename }}.j2"
|
||||
dest: "{{ ntp_config_file }}"
|
||||
mode: 0644
|
||||
notify: Preinstall | restart ntp
|
||||
when:
|
||||
- ntp_manage_config
|
||||
|
||||
- name: Stop the NTP Deamon For Sync Immediately # `ntpd -gq`,`chronyd -q` requires the ntp daemon stop
|
||||
service:
|
||||
name: "{{ ntp_service_name }}"
|
||||
state: stopped
|
||||
when:
|
||||
- ntp_force_sync_immediately
|
||||
|
||||
- name: Force Sync NTP Immediately
|
||||
command: >-
|
||||
timeout -k 60s 60s
|
||||
{% if ntp_package == "ntp" -%}
|
||||
ntpd -gq
|
||||
{%- else -%}
|
||||
chronyd -q
|
||||
{%- endif -%}
|
||||
when:
|
||||
- ntp_force_sync_immediately
|
||||
|
||||
- name: Ensure NTP service is started and enabled
|
||||
service:
|
||||
name: "{{ ntp_service_name }}"
|
||||
state: started
|
||||
enabled: true
|
||||
@@ -66,6 +66,13 @@
|
||||
tags:
|
||||
- bootstrap-os
|
||||
|
||||
- import_tasks: 0081-ntp-configurations.yml
|
||||
when:
|
||||
- not dns_late
|
||||
- ntp_enabled
|
||||
tags:
|
||||
- bootstrap-os
|
||||
|
||||
- import_tasks: 0090-etchosts.yml
|
||||
when:
|
||||
- not dns_late
|
||||
|
||||
27
roles/kubernetes/preinstall/templates/chrony.conf.j2
Normal file
27
roles/kubernetes/preinstall/templates/chrony.conf.j2
Normal file
@@ -0,0 +1,27 @@
|
||||
# {{ ansible_managed }}
|
||||
|
||||
# Specify one or more NTP servers.
|
||||
# Use public servers from the pool.ntp.org project.
|
||||
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
|
||||
{% for server in ntp_servers %}
|
||||
server {{ server }}
|
||||
{% endfor %}
|
||||
|
||||
# Record the rate at which the system clock gains/losses time.
|
||||
driftfile /var/lib/chrony/drift
|
||||
|
||||
{% if ntp_tinker_panic is sameas true %}
|
||||
# Force time sync if the drift exceeds the threshold specified
|
||||
# Usefull for VMs that can be paused and much later resumed.
|
||||
makestep 1.0 -1
|
||||
{% else %}
|
||||
# Allow the system clock to be stepped in the first three updates
|
||||
# if its offset is larger than 1 second.
|
||||
makestep 1.0 3
|
||||
{% endif %}
|
||||
|
||||
# Enable kernel synchronization of the real-time clock (RTC).
|
||||
rtcsync
|
||||
|
||||
# Specify directory for log files.
|
||||
logdir /var/log/chrony
|
||||
45
roles/kubernetes/preinstall/templates/ntp.conf.j2
Normal file
45
roles/kubernetes/preinstall/templates/ntp.conf.j2
Normal file
@@ -0,0 +1,45 @@
|
||||
# {{ ansible_managed }}
|
||||
|
||||
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help
|
||||
|
||||
driftfile {{ ntp_driftfile }}
|
||||
|
||||
{% if ntp_tinker_panic is sameas true %}
|
||||
# Always reset the clock, even if the new time is more than 1000s away
|
||||
# from the current system time. Usefull for VMs that can be paused
|
||||
# and much later resumed.
|
||||
tinker panic 0
|
||||
{% endif %}
|
||||
|
||||
# Specify one or more NTP servers.
|
||||
# Use public servers from the pool.ntp.org project.
|
||||
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
|
||||
{% for item in ntp_servers %}
|
||||
pool {{ item }}
|
||||
{% endfor %}
|
||||
|
||||
# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
|
||||
# details. The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
|
||||
# might also be helpful.
|
||||
#
|
||||
# Note that "restrict" applies to both servers and clients, so a configuration
|
||||
# that might be intended to block requests from certain clients could also end
|
||||
# up blocking replies from your own upstream servers.
|
||||
|
||||
# By default, exchange time with everybody, but don't allow configuration.
|
||||
restrict -4 default kod notrap nomodify nopeer noquery limited
|
||||
restrict -6 default kod notrap nomodify nopeer noquery limited
|
||||
|
||||
# Local users may interrogate the ntp server more closely.
|
||||
{% for item in ntp_restrict %}
|
||||
restrict {{ item }}
|
||||
{% endfor %}
|
||||
|
||||
# Needed for adding pool entries
|
||||
restrict source notrap nomodify noquery
|
||||
|
||||
# Disable the monitoring facility to prevent amplification attacks using ntpdc
|
||||
# monlist command when default restrict does not include the noquery flag. See
|
||||
# CVE-2013-5211 for more details.
|
||||
# Note: Monitoring will not be disabled with the limited restriction flag.
|
||||
disable monitor
|
||||
Reference in New Issue
Block a user