├── vars ├── main.yml └── RedHat.yml ├── handlers └── main.yml ├── defaults └── main.yml ├── meta └── main.yml ├── templates └── ntp.conf.j2 ├── README.md └── tasks └── main.yml /vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # file: roles/ntp/vars/main.yml 3 | # vars file for ntp 4 | -------------------------------------------------------------------------------- /vars/RedHat.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # file: roles/ntp/vars/RedHat.yml 3 | # vars file for RedHat 4 | 5 | ntp_daemon: ntpd 6 | -------------------------------------------------------------------------------- /handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # file: roles/ntp/handlers/main.yml 3 | # handlers file for ntp 4 | 5 | - name: restart ntpd 6 | service: name=ntpd state=restarted 7 | -------------------------------------------------------------------------------- /defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # file: roles/ntp/defaults/main.yml 3 | # defaults file for ntp 4 | 5 | ntp_enabled: true 6 | ntp_timezone: Asia/Shanghai 7 | 8 | ntp_servers: 9 | - ntp.fudan.edu.cn prefer 10 | - ntp.api.bz 11 | - 127.127.1.0 12 | -------------------------------------------------------------------------------- /meta/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | galaxy_info: 3 | author: z@zstack.net 4 | description: NTP installation and configuration for Linux. 5 | company: "" 6 | license: license (BSD, MIT) 7 | min_ansible_version: 1.6 8 | platforms: 9 | - name: EL 10 | versions: 11 | - 6 12 | - 7 13 | categories: 14 | - system 15 | dependencies: [] 16 | -------------------------------------------------------------------------------- /templates/ntp.conf.j2: -------------------------------------------------------------------------------- 1 | restrict default kod nomodify notrap nopeer noquery 2 | restrict -6 default kod nomodify notrap nopeer noquery 3 | 4 | restrict 127.0.0.1 5 | restrict -6 ::1 6 | 7 | {% for server in ntp_servers %} 8 | server {{ server }} 9 | {% endfor %} 10 | 11 | fudge 127.127.1.0 stratum 10 12 | 13 | driftfile /var/lib/ntp/drift 14 | includefile /etc/ntp/crypto/pw 15 | keys /etc/ntp/keys 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Role Name: NTP 2 | 3 | Installs NTP on RedHat/CentOS. 4 | 5 | ## Requirements 6 | 7 | None. 8 | 9 | ## Role Variables 10 | 11 | ### `defaults/main.yml` 12 | *default lower priority variables for this role* 13 | 14 | * `ntp_enabled: true` 15 | * `ntp_timezone: Asia/Shanghai` 16 | 17 | * `ntp_servers:` 18 | ``` 19 | - ntp.fudan.edu.cn prefer 20 | - ntp.api.bz 21 | - 127.127.1.0 22 | ``` 23 | 24 | ### `vars/RedHat.yml` 25 | 26 | * `ntp_daemon: ntpd` 27 | 28 | ## Dependencies 29 | 30 | None. 31 | 32 | ## Example Playbook 33 | 34 | - name: Install NTP 35 | hosts: servers 36 | vars: 37 | ntp_timezone: Asia/Shanghai 38 | ntp_servers: 39 | - 192.168.100.1 40 | roles: 41 | - ntp 42 | 43 | ## License 44 | 45 | MIT / BSD 46 | 47 | ## Author Information 48 | 49 | z@zstack.net 50 | -------------------------------------------------------------------------------- /tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # file: roles/ntp/tasks/main.yml 3 | # tasks file for ntp 4 | 5 | - name: Include OS-specific variables. 6 | include_vars: "{{ ansible_os_family }}.yml" 7 | 8 | - name: Set the correct timezone. 9 | file: path=/etc/localtime src="/usr/share/zoneinfo/{{ ntp_timezone }}" state=link force=yes 10 | tags: ntp 11 | 12 | - name: Install NTP (RedHat). 13 | yum: name=ntp state=installed 14 | when: ansible_os_family == 'RedHat' 15 | 16 | - name: Be sure ntp is configured 17 | template: src=ntp.conf.j2 dest=/etc/ntp.conf 18 | notify: 19 | - restart ntpd 20 | 21 | - name: Ensure NTP is running and enabled at system start. 22 | service: 23 | name: "{{ ntp_daemon }}" 24 | state: started 25 | enabled: yes 26 | when: ntp_enabled 27 | 28 | - name: Ensure NTP is stopped and disabled at system start. 29 | service: 30 | name: "{{ ntp_daemon }}" 31 | state: stopped 32 | enabled: no 33 | when: not ntp_enabled 34 | --------------------------------------------------------------------------------