ansible-install | ansible | ansible-ntp | ansible-rhel
setup timezone, manually sync, configure ntp and hardware clock
mkdir /etc/ansible/group_vars/ cd /etc/ansible/group_vars/ vi hosts.yml timezone: Europe/Paris ntpservers: - ntp_address1 - ntp_address2
get some clean ntp.conf
sample for every target system and tune it accordingly
sed '/^$/d; /^#/d' /etc/ntp.conf > /etc/ansible/ntp.clean.conf vi /etc/ansible/ntp.conf {%for ntpserver in ntpservers %} server {{ ntpserver }} iburst {% endfor %}
vi /etc/ansible/ntp.rhel.conf driftfile /var/lib/ntp/drift restrict default nomodify notrap nopeer noquery restrict 127.0.0.1 restrict ::1 {%for ntpserver in ntpservers %} server {{ ntpserver }} iburst {% endfor %} includefile /etc/ntp/crypto/pw keys /etc/ntp/keys disable monitor
vi /etc/ansible/ntp.ubuntu.conf driftfile /var/lib/ntp/ntp.drift leapfile /usr/share/zoneinfo/leap-seconds.list statistics loopstats peerstats clockstats filegen loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegen clockstats file clockstats type day enable {%for ntpserver in ntpservers %} server {{ ntpserver }} iburst {% endfor %} restrict -4 default kod notrap nomodify nopeer noquery limited restrict -6 default kod notrap nomodify nopeer noquery limited restrict 127.0.0.1 restrict ::1 restrict source notrap nomodify noquery
vi /etc/ansible/ntp.slack.conf server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10 {%for ntpserver in ntpservers %} server {{ ntpserver }} iburst {% endfor %} statsdir /var/lib/ntp/stats logfile /var/log/ntp driftfile /var/lib/ntp/drift pidfile /var/run/ntpd.pid restrict default limited kod nomodify notrap nopeer noquery restrict -6 default limited kod nomodify notrap nopeer noquery restrict 127.0.0.1 restrict ::1
vi /etc/ansible/ntp.rhel.yml - hosts: hosts tasks: - name: timezone {{ timezone }} shell: timedatectl set-timezone {{ timezone }} - name: pkg ntpdate yum: name=ntpdate state=present - name: pkg ntp yum: name=ntp state=present - name: NTP down service: name=ntpd state=stopped enabled=yes - name: sync against {{ ntpservers[0] }} shell: ntpdate -u {{ ntpservers[0] }} - name: ntp conf pointing to {{ ntpservers }} template: src=ntp.rhel.conf dest=/etc/ntp.conf - name: NTP up service: name=ntpd state=started enabled=yes - name: hardware clock sync shell: hwclock --utc --systohc
draft – slackpkg check works
vi /etc/ansible/ntp.slack.yml - hosts: hosts tasks: - name: install ntp on slackware slackpkg: name=ntp state=present - name: NTP down service: name=ntpd state=stopped enabled=yes - name: sync against {{ ntpservers[0] }} shell: ntpdate -u {{ ntpservers[0] }} - name: ntp conf pointing to {{ ntpservers }} template: src=ntp.clean-slack.conf dest=/etc/ntp.conf - name: NTP up service: name=ntpd state=started enabled=yes - name: hardware clock sync shell: hwclock --utc --systohc
apply and check on the target systems
ansible-playbook ntp.ubuntu.yml ansible-playbook ntp.slack.yml ansible hosts -m shell -a "ls -lhF /etc/localtime" ansible hosts -m shell -a "ntpq -p" ansible hosts -m shell -a "ntpdc -c sysinfo" ansible hosts -m shell -a "grep ^server /etc/ntp.conf" ansible hosts -m shell -a "date"
http://www.opensourcerers.org/setting-up-ntp-via-ansible-in-my-private-lab/
https://stackoverflow.com/questions/36667042/how-to-specify-an-array-or-list-element-fact-with-yaml
community.general.slackpkg – Package manager for Slackware >= 12.2 https://docs.ansible.com/ansible/latest/collections/community/general/slackpkg_module.html