Project

General

Profile

« Previous | Next » 

Revision 65d1b8de

Added by Alex Fisher over 7 years ago

fixes #17125 - Prompt for Windows service name

Useful if you need to install multiple proxy services on the same
Windows server.

View differences:

extra/register-service.rb
cmd = "#{ruby} -C #{working_dir} \"#{executable}\""
puts "Installing #{cmd} as a service"
default_user = ENV["USERNAME"]
default_user = ENV["USERDOMAIN"] + '\\' + default_user if ENV["USERDOMAIN"]
default_user = ENV["USERNAME"]
default_user = ENV["USERDOMAIN"] + '\\' + default_user if ENV["USERDOMAIN"]
default_service_name = 'smart proxy'
puts "This service must run as a user with permission to execute the netsh dhcp script"
puts 'The acount can be local or a domain account. If it is a domain account then use the domain\account syntax'
user = ask("Run this service as this user? ") {|u| u.default = default_user}
pass1 = ask("Enter the user's password ") {|p| p.echo = "x"}
service_name = ask("Enter the name of the service ") {|s| s.default = default_service_name}
user = ask("Run this service as this user? ") {|u| u.default = default_user}
pass1 = ask("Enter the user's password ") {|p| p.echo = "x"}
description = 'Foreman Smart Proxy'
description += " (#{service_name})" unless service_name == default_service_name
begin
Service.stop("smart proxy") rescue nil
Service.delete("smart proxy") rescue nil
Service.stop(service_name) rescue nil
Service.delete(service_name) rescue nil
Service.create(
:service_name =>'smart proxy',
:service_name => service_name,
:host => nil,
:service_type => Service::WIN32_OWN_PROCESS,
:description => 'Foreman Smart Proxy',
:description => description,
:start_type => Service::AUTO_START,
:error_control => Service::ERROR_NORMAL,
:binary_path_name => cmd,
:service_start_name => user,
:password => pass1,
:display_name => 'Foreman Smart Proxy'
)
Service.start('smart proxy')
:display_name => description
)
Service.start(service_name)
rescue => e
puts "There was a problem registering the service: " + e.message
puts 'Check log file for details'
end
end

Also available in: Unified diff