Add community prometheus cookbook

This commit is contained in:
Greg Karekinian
2026-07-03 16:35:26 +02:00
parent ec73dd5b57
commit 4cd6c41254
29 changed files with 1430 additions and 0 deletions
+98
View File
@@ -0,0 +1,98 @@
# frozen_string_literal: true
provides :prometheus_install
unified_mode true
use '_partial/_common'
use '_partial/_prometheus'
default_action :install
action_class do
include PrometheusCookbook::Helpers
end
action :install do
user new_resource.user do
system true
shell '/bin/false'
home new_resource.install_dir
not_if { new_resource.use_existing_user || new_resource.user == 'root' }
end
directory new_resource.install_dir do
owner new_resource.user
group new_resource.group
mode '0755'
recursive true
end
directory new_resource.log_dir do
owner new_resource.user
group new_resource.group
mode '0755'
recursive true
end
directory new_resource.storage_path do
owner new_resource.user
group new_resource.group
mode '0755'
recursive true
end
case new_resource.install_method
when 'binary'
package %w(tar bzip2)
ark install_dir_name(new_resource.install_dir) do
url new_resource.binary_url
checksum new_resource.checksum
version new_resource.version
prefix_root Chef::Config['file_cache_path']
path install_dir_parent(new_resource.install_dir)
owner new_resource.user
group new_resource.group
extension new_resource.file_extension unless new_resource.file_extension.empty?
action :put
end
when 'shell_binary'
package %w(tar bzip2)
remote_file "#{Chef::Config[:file_cache_path]}/prometheus-#{new_resource.version}.tar.gz" do
source new_resource.binary_url
checksum new_resource.checksum
action :create
notifies :run, 'execute[install_prometheus_archive]', :immediately
end
execute 'install_prometheus_archive' do
command "tar -xzf #{Chef::Config[:file_cache_path]}/prometheus-#{new_resource.version}.tar.gz -C #{new_resource.install_dir} --strip-components=1"
action :nothing
end
when 'source'
build_essential 'install compilation tools'
package %w(curl git-core mercurial gzip sed)
git "#{Chef::Config[:file_cache_path]}/prometheus-#{new_resource.version}" do
repository new_resource.source_repository
revision new_resource.source_revision
action :checkout
end
bash 'compile_prometheus_source' do
cwd "#{Chef::Config[:file_cache_path]}/prometheus-#{new_resource.version}"
environment(
'PATH' => "/usr/local/go/bin:#{ENV.fetch('PATH', nil)}",
'GOPATH' => '/opt/go:/opt/go/src/github.com/prometheus/promu/vendor'
)
code <<~EOH
make build
mv prometheus #{new_resource.install_dir}
cp -R console_libraries #{new_resource.install_dir}
cp -R consoles #{new_resource.install_dir}
EOH
end
end
end