kubekey/builtin/capkk/roles/init/init-os/tasks/init_ntpserver.yaml
liujian 86ff6371b6
Uninstall docker interface (#2478)
Signed-off-by: joyceliu <joyceliu@yunify.com>
Co-authored-by: joyceliu <joyceliu@yunify.com>
2025-03-05 18:55:12 +08:00

52 lines
2.1 KiB
YAML

---
- name: Configure ntp server
command: |
chronyConfigFile={{ if or (.os.release.ID | eq "ubuntu") (.os.release.ID_LIKE | eq "debian") }}"/etc/chrony/chrony.conf"{{ else }}"/etc/chrony.conf"{{ end }}
# clear old server
sed -i '/^server/d' $chronyConfigFile
sed -i 's/^pool /#pool /g' $chronyConfigFile
sed -i '/^allow/d' $chronyConfigFile
sed -i '/^local/d' $chronyConfigFile
# add base config
echo "allow 0.0.0.0/0" >> $chronyConfigFile
echo "allow ::/0" >> $chronyConfigFile
echo "local stratum 10" >> $chronyConfigFile
# add server config
{{- range $server := (.ntp.servers | fromJson) }}
{{- $internalIPv4 := "" }}
{{- $internalIPv6 := "" }}
{{- range $.inventory_hosts }}
{{- if eq .hostname $server }}
{{- $internalIPv4 = .internal_ipv4 | default "" }}
{{- $internalIPv6 = .internal_ipv6 | default "" }}
{{- end }}
{{- end }}
# add ntp server: {{ $server }}
{{- if $internalIPv4 }}
grep -q '^server {{ $internalIPv4 }} iburst' $chronyConfigFile || sed '1a server {{ $internalIPv4 }} iburst' -i $chronyConfigFile
{{- end }}
{{- if $internalIPv6 }}
grep -q '^server {{ $internalIPv6 }} iburst' $chronyConfigFile || sed '1a server [{{ $internalIPv6 }}] iburst' -i $chronyConfigFile
{{- end }}
{{- if and (eq $internalIPv4 "") (eq $internalIPv6 "") }}
grep -q '^server {{ $server }} iburst' $chronyConfigFile || sed '1a server {{ $server }} iburst' -i $chronyConfigFile
{{- end }}
{{- end }}
when:
- .ntp.enabled
- .ntp.servers | fromJson | len | lt 0
- name: Set timezone
command: |
timedatectl set-timezone {{ .timezone }}
timedatectl set-ntp {{ and .ntp.enabled (.ntp.servers | fromJson | len | lt 0) }}
when: or (and .ntp.enabled (.ntp.servers | fromJson | len | lt 0)) (.timezone | ne "")
- name: Restart ntp server
command: |
{{- if or (.os.release.ID | eq "ubuntu") (.os.release.ID_LIKE | eq "debian") }}
systemctl restart chrony.service
{{- end }}
systemctl restart chronyd.service
when: or (and .ntp.enabled (.ntp.servers | fromJson | len | lt 0)) (.timezone | ne "")