]> git.openstreetmap.org Git - chef.git/commitdiff
Enssure we wait for the grafana server to be fully started master
authorTom Hughes <tom@compton.nu>
Wed, 4 Mar 2026 20:26:51 +0000 (20:26 +0000)
committerTom Hughes <tom@compton.nu>
Wed, 4 Mar 2026 20:26:51 +0000 (20:26 +0000)
cookbooks/prometheus/metadata.rb
cookbooks/prometheus/recipes/server.rb
cookbooks/tools/files/default/local-bin/wait-for-port [new file with mode: 0755]
cookbooks/tools/recipes/default.rb

index e3f4dc4d58fa507d59f19caee1a825351524c656..25ff3d821606cfd91f45c4e338520491cc7a2d6d 100644 (file)
@@ -11,3 +11,5 @@ depends           "apt"
 depends           "awscli"
 depends           "hardware"
 depends           "networking"
+depends           "systemd"
+depends           "tools"
index 81d00b98c5faac4baafd5be3c7f4b9ad084e1061..4b75de5032abf8ffd67bb48f43249998ab209b1a 100644 (file)
@@ -21,6 +21,7 @@ include_recipe "apache"
 include_recipe "apt::grafana"
 include_recipe "awscli"
 include_recipe "networking"
+include_recipe "tools"
 
 passwords = data_bag_item("prometheus", "passwords")
 tokens = data_bag_item("prometheus", "tokens")
@@ -355,6 +356,12 @@ template "/etc/grafana/grafana.ini" do
   variables :passwords => passwords
 end
 
+systemd_service "grafana-server-wait-for-port" do
+  service "grafana-server"
+  dropin "wait-for-port"
+  exec_start_post "/usr/local/bin/wait-for-port 3000"
+end
+
 service "grafana-server" do
   action [:enable, :start]
   subscribes :restart, "template[/etc/grafana/grafana.ini]"
diff --git a/cookbooks/tools/files/default/local-bin/wait-for-port b/cookbooks/tools/files/default/local-bin/wait-for-port
new file mode 100755 (executable)
index 0000000..cd4db79
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+while [ -z "$(ss -Htl sport = :$1)" ]
+do
+  sleep 1
+done
index a51879e67a0302d8b2031d20264e70d1dc78e43e..a0729afeacded063553f18a1b551b1a57a003666 100644 (file)
@@ -51,6 +51,17 @@ service "rsyslog" do
   supports :status => true, :restart => true, :reload => true
 end
 
+# Install some common tools
+remote_directory "/usr/local/bin" do
+  source "local-bin"
+  owner "root"
+  group "root"
+  mode "755"
+  files_owner "root"
+  files_group "root"
+  files_mode "755"
+end
+
 # Remove some unused and unwanted packages
 package %w[mlocate whoopsie] do
   action :purge