feat: add droneci module

- add droneci module for server
- add droneci/server role
- add consul query for droneci service
- manage certificates, ssh principals, consul services/checks
This commit is contained in:
2024-08-24 00:34:15 +10:00
parent 8fad79f2bc
commit 5d36a4053b
8 changed files with 150 additions and 0 deletions
+24
View File
@@ -0,0 +1,24 @@
class droneci (
Hash $env_vars = {},
String $docker_image = 'drone/drone:2',
Array[String] $ports = [],
Array[String] $volumes = [],
Stdlib::Absolutepath $env_file = '/etc/sysconfig/droneci',
) {
# Create the environment file from a template
file { $env_file:
ensure => file,
content => template('droneci/droneci_env.erb'),
mode => '0644',
}
# Define the systemd service for Drone CI
systemd::unit_file { 'droneci.service':
ensure => present,
content => template('droneci/droneci_service.erb'),
enable => true,
active => true,
subscribe => File[$env_file],
}
}
@@ -0,0 +1,3 @@
<% @env_vars.each do |key, value| -%>
<%= key.upcase %>=<%= value %>
<% end -%>
@@ -0,0 +1,20 @@
[Unit]
Description=Drone CI Service
After=docker.service
Requires=docker.service
[Service]
ExecStart=/usr/bin/docker run --rm \
--name=drone \
<% @ports.each do |port| -%>
-p <%= port %> \
<% end -%>
<% @volumes.each do |volume| -%>
--mount <%= volume %> \
<% end -%>
--env-file <%= @env_file %> \
<%= @docker_image %>
Restart=always
[Install]
WantedBy=multi-user.target