Files
tankz/config/service.rb

53 lines
1.2 KiB
Ruby

module Service
class Manager
def initialize(env)
@env = env
end
def execute(action, command)
Airbrussh.configure do |config|
config.command_output = true
end
service_role = "service_role_#{action}".to_sym
role = fetch(service_role)
on roles(role) do
execute :sudo, "/bin/systemctl #{command} #{action}"
end
end
end
end
services = %w{tankz}
namespace :service do
task :restart, :param do |task, args|
services = args[:param] ? [args[:param]] : services
services.each { |service|
Service::Manager.new(self).execute(service, 'restart')
}
end
task :stop, :param do |task, args|
services = args[:param] ? [args[:param]] : services
services.each { |service|
Service::Manager.new(self).execute(service, 'stop')
}
end
task :start, :param do |task, args|
services = args[:param] ? [args[:param]] : services
services.each { |service|
Service::Manager.new(self).execute(service, 'start')
}
end
task :status, :param do |task, args|
services = args[:param] ? [args[:param]] : services
services.each { |service|
Service::Manager.new(self).execute(service, 'status')
}
end
end
set :service_role_tankz, :app