65 lines
1.7 KiB
Ruby
65 lines
1.7 KiB
Ruby
#
|
|
# Cookbook:: kosmos_drone
|
|
# Recipe:: default
|
|
#
|
|
|
|
package "docker-compose"
|
|
domain = "drone.kosmos.org"
|
|
deploy_path = "/opt/drone"
|
|
upstream_port = 3002
|
|
credentials = data_bag_item("credentials", "drone")
|
|
|
|
directory deploy_path do
|
|
action :create
|
|
end
|
|
|
|
template "#{deploy_path}/docker-compose.yml" do
|
|
source "docker-compose.yml.erb"
|
|
sensitive true
|
|
mode 0640
|
|
variables upstream_port: upstream_port,
|
|
domain: domain,
|
|
gitea_server: "https://#{node["kosmos_gitea"]["nginx"]["domain"]}",
|
|
client_id: credentials['client_id'],
|
|
client_secret: credentials['client_secret'],
|
|
rpc_secret: credentials['rpc_secret'],
|
|
max_procs: 4
|
|
end
|
|
|
|
systemd_unit "drone.service" do
|
|
content({Unit: {
|
|
Description: "drone service with docker compose",
|
|
Requires: "docker.service",
|
|
After: "docker.service",
|
|
},
|
|
Service: {
|
|
Restart: "always",
|
|
WorkingDirectory: deploy_path,
|
|
ExecStart: "/usr/bin/docker-compose up",
|
|
ExecStartPre: "/usr/bin/docker-compose rm -f",
|
|
ExecStop: "/usr/bin/docker-compose down",
|
|
},
|
|
Install: {
|
|
WantedBy: "multi-user.target",
|
|
}})
|
|
action [:create, :enable, :start]
|
|
end
|
|
|
|
template "#{node['nginx']['dir']}/sites-available/#{domain}" do
|
|
source "nginx_conf.erb"
|
|
owner 'www-data'
|
|
mode 0640
|
|
variables server_name: domain,
|
|
ssl_cert: "/etc/letsencrypt/live/#{domain}/fullchain.pem",
|
|
ssl_key: "/etc/letsencrypt/live/#{domain}/privkey.pem",
|
|
upstream_port: upstream_port
|
|
|
|
notifies :reload, 'service[nginx]', :delayed
|
|
end
|
|
|
|
nginx_site domain do
|
|
action :enable
|
|
end
|
|
|
|
nginx_certbot_site domain
|