:is => %w(simple forking oneshot dbus notify idle)
property :limit_nofile, Fixnum
property :environment, Hash, :default => {}
-property :environment_file, String
+property :environment_file, [String, Hash]
property :user, String
property :group, String
property :exec_start_pre, String
property :pid_file, String
action :create do
+ service_variables = new_resource.to_hash
+
+ if environment_file.is_a?(Hash)
+ template "/etc/default/#{name}" do
+ cookbook "systemd"
+ source "environment.erb"
+ owner "root"
+ group "root"
+ mode 0o640
+ variables :environment => environment_file
+ end
+
+ service_variables[:environment_file] = "/etc/default/#{name}"
+ end
+
template "/etc/systemd/system/#{name}.service" do
cookbook "systemd"
source "service.erb"
owner "root"
group "root"
mode 0o644
- variables new_resource.to_hash
+ variables service_variables
end
execute "systemctl-reload-#{name}.service" do
end
action :delete do
+ file "/etc/default/#{name}" do
+ action :delete
+ only_if { environment_file.is_a?(Hash) }
+ end
+
file "/etc/systemd/system/#{name}.service" do
action :delete
end
systemd_service "cgimap" do
description "OpenStreetMap API Server"
type "forking"
- environment "CGIMAP_HOST" => database_host,
- "CGIMAP_DBNAME" => "openstreetmap",
- "CGIMAP_USERNAME" => "rails",
- "CGIMAP_PASSWORD" => db_passwords["rails"],
- "CGIMAP_OAUTH_HOST" => node[:web][:database_host],
- "CGIMAP_PIDFILE" => "#{node[:web][:pid_directory]}/cgimap.pid",
- "CGIMAP_LOGFILE" => "#{node[:web][:log_directory]}/cgimap.log",
- "CGIMAP_MEMCACHE" => memcached_servers.join(","),
- "CGIMAP_RATELIMIT" => "204800",
- "CGIMAP_MAXDEBT" => "250"
+ environment_file "CGIMAP_HOST" => database_host,
+ "CGIMAP_DBNAME" => "openstreetmap",
+ "CGIMAP_USERNAME" => "rails",
+ "CGIMAP_PASSWORD" => db_passwords["rails"],
+ "CGIMAP_OAUTH_HOST" => node[:web][:database_host],
+ "CGIMAP_PIDFILE" => "#{node[:web][:pid_directory]}/cgimap.pid",
+ "CGIMAP_LOGFILE" => "#{node[:web][:log_directory]}/cgimap.log",
+ "CGIMAP_MEMCACHE" => memcached_servers.join(","),
+ "CGIMAP_RATELIMIT" => "204800",
+ "CGIMAP_MAXDEBT" => "250"
user "rails"
exec_start "/usr/bin/openstreetmap-cgimap --daemon --port 8000 --instances 30#{switches}"
exec_reload "/bin/kill -HUP $MAINPID"