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:
@@ -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
|
||||
Reference in New Issue
Block a user