├── ansible.cfg ├── vars ├── main.yml └── RedHat.yml ├── handlers └── main.yml ├── test.yml ├── meta └── main.yml ├── defaults └── main.yml ├── tasks └── main.yml ├── templates └── ntp.conf.j2 └── README.md /ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | roles_path = ../ 3 | -------------------------------------------------------------------------------- /vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # vars file for ntpd 3 | -------------------------------------------------------------------------------- /vars/RedHat.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # vars file for RedHat 3 | 4 | ntpd_package: ntp 5 | ntpd_daemon: ntpd 6 | -------------------------------------------------------------------------------- /handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # handlers file for ntpd 3 | 4 | - name: restart ntpd 5 | service: name={{ ntpd_daemon }} state=restarted 6 | -------------------------------------------------------------------------------- /test.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # test file 3 | 4 | - name: Install NTP Server. 5 | hosts: servers 6 | vars: 7 | ntpd_restrict_net: 8 | - { net: "192.168.1.0", mask: "255.255.255.0" } 9 | - { net: "192.168.2.0", mask: "255.255.255.0" } 10 | roles: 11 | - ansible-role-ntpd 12 | -------------------------------------------------------------------------------- /meta/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | galaxy_info: 3 | author: z@zstack.net 4 | description: Installs NTP Server on RedHat/CentOS servers. 5 | company: 6 | license: license (BSD, MIT) 7 | min_ansible_version: 1.8 8 | platforms: 9 | - name: EL 10 | versions: 11 | - 6 12 | - 7 13 | categories: 14 | - system 15 | dependencies: [] 16 | -------------------------------------------------------------------------------- /defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # defaults file for ntpd 3 | 4 | ntpd_ipv6_enable: true 5 | ntpd_logfile: /var/log/ntp.log 6 | ntpd_ntp_servers: 7 | - ntp.fudan.edu.cn prefer 8 | - ntp.api.bz 9 | - 127.127.1.0 10 | 11 | ntpd_restrict_net: [] 12 | # Full example: 13 | # ntpd_restrict_net: 14 | # - { net: "192.168.1.0", mask: "255.255.255.0" } 15 | -------------------------------------------------------------------------------- /tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # tasks file for ntpd 3 | 4 | - name: Include OS-specific variables. 5 | include_vars: "{{ ansible_os_family }}.yml" 6 | 7 | - name: Install NTP Server. 8 | yum: name={{ ntpd_package }} state=installed 9 | 10 | - name: Copy NTP configure file. 11 | template: src=ntp.conf.j2 dest=/etc/ntp.conf 12 | notify: 13 | - restart ntpd 14 | 15 | - name: Ensure NTP Service is started and enabled at system start. 16 | service: name="{{ ntpd_daemon }}" state=started enabled=yes 17 | -------------------------------------------------------------------------------- /templates/ntp.conf.j2: -------------------------------------------------------------------------------- 1 | restrict default kod nomodify notrap nopeer noquery 2 | restrict 127.0.0.1 3 | 4 | {% for net in ntpd_restrict_net %} 5 | restrict {{ net.net }} mask {{ net.mask }} nomodify notrap 6 | {% endfor %} 7 | 8 | {% if ntpd_ipv6_enable %} 9 | restrict -6 default kod nomodify notrap nopeer noquery 10 | restrict -6 ::1 11 | {% endif %} 12 | 13 | {% for server in ntpd_ntp_servers %} 14 | server {{ server }} 15 | {% endfor %} 16 | 17 | fudge 127.127.1.0 stratum 10 18 | 19 | logfile {{ ntpd_logfile }} 20 | driftfile /var/lib/ntp/drift 21 | includefile /etc/ntp/crypto/pw 22 | keys /etc/ntp/keys 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Ansible Role: ntpd 2 | 3 | Installs NTP Server on RedHat/CentOS servers. 4 | 5 | ## Requirements 6 | 7 | None. 8 | 9 | ## Role Variables 10 | 11 | ### `defaults/main.yml` 12 | 13 | * `ntpd_ipv6_enable: true` 14 | * `ntpd_logfile: /var/log/ntp.log` 15 | * `ntpd_ntp_servers:` 16 | ``` 17 | - ntp.fudan.edu.cn prefer 18 | - ntp.api.bz 19 | - 127.127.1.0 20 | ``` 21 | * `ntpd_restrict_net: []` 22 | 23 | ## Dependencies 24 | 25 | None. 26 | 27 | ## Example Playbook 28 | 29 | - hosts: servers 30 | vars: 31 | ntpd_restrict_net: 32 | - { net: "192.168.1.0", mask: "255.255.255.0" } 33 | roles: 34 | - ntpd 35 | 36 | ## License 37 | 38 | MIT / BSD 39 | 40 | ## Author Information 41 | 42 | z@zstack.net 43 | --------------------------------------------------------------------------------