]> git.openstreetmap.org Git - chef.git/blob - cookbooks/ntp/recipes/default.rb
Merge remote-tracking branch 'github/pull/695'
[chef.git] / cookbooks / ntp / recipes / default.rb
1 #
2 # Cookbook:: ntp
3 # Recipe:: default
4 #
5 # Copyright:: 2010, OpenStreetMap Foundation.
6 # Copyright:: 2009, Opscode, Inc
7 #
8 # Licensed under the Apache License, Version 2.0 (the "License");
9 # you may not use this file except in compliance with the License.
10 # You may obtain a copy of the License at
11 #
12 #     https://www.apache.org/licenses/LICENSE-2.0
13 #
14 # Unless required by applicable law or agreed to in writing, software
15 # distributed under the License is distributed on an "AS IS" BASIS,
16 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 # See the License for the specific language governing permissions and
18 # limitations under the License.
19
20 include_recipe "prometheus"
21
22 package %w[
23   chrony
24   tzdata
25 ]
26
27 execute "dpkg-reconfigure-tzdata" do
28   action :nothing
29   command "/usr/sbin/dpkg-reconfigure -f noninteractive tzdata"
30   user "root"
31   group "root"
32 end
33
34 link "/etc/localtime" do
35   to "/usr/share/zoneinfo/#{node[:ntp][:tz]}"
36   owner "root"
37   group "root"
38   notifies :run, "execute[dpkg-reconfigure-tzdata]", :immediately
39 end
40
41 template "/etc/chrony/chrony.conf" do
42   source "chrony.conf.erb"
43   owner "root"
44   group "root"
45   mode "644"
46   notifies :restart, "service[chrony]"
47 end
48
49 service "systemd-timesyncd" do
50   action [:stop, :disable]
51 end
52
53 systemd_service "chrony-restart" do
54   service "chrony"
55   dropin "restart"
56   restart "on-failure"
57   notifies :restart, "service[chrony]"
58 end
59
60 service "chrony" do
61   action [:enable, :start]
62 end
63
64 prometheus_exporter "chrony" do
65   port 9123
66 end
67
68 # chrony occasionally marks all servers offline during a network outage.
69 # force online all sources during a chef run
70 execute "chronyc-online" do
71   command "/usr/bin/chronyc online"
72   user "root"
73   group "root"
74   ignore_failure true
75 end