diff --git a/app/controllers/admin/site_panel_controller.rb b/app/controllers/admin/site_panel_controller.rb index 27cce94..db40102 100644 --- a/app/controllers/admin/site_panel_controller.rb +++ b/app/controllers/admin/site_panel_controller.rb @@ -277,6 +277,7 @@ class Admin::SitePanelController < OrbitAdminController git_extension_url = "http://gitlab.tp.rulingcom.com/core/default-modules.git" site_server = SiteServer.where(:server_name=>site_construct.server_type).first ip = site_server.ip + server_port = site_server.port user = site_server.account password = site_server.password site_name = site_construct.site_name @@ -287,11 +288,11 @@ class Admin::SitePanelController < OrbitAdminController site_construct_id = site_construct.id.to_s if params[:site_construct][:copy_id].blank? Thread.new do - system("bundle exec rake create_site:create_site['#{git_template_url}','#{git_extension_url}','#{git_url}','#{ip}','#{user}','#{password}','#{site_name}','#{domain_name}','#{port}','#{db_name}','#{path}','#{site_construct_id}']") + system("bundle exec rake create_site:create_site['#{git_template_url}','#{git_extension_url}','#{git_url}','#{ip}','#{server_port}','#{user}','#{password}','#{site_name}','#{domain_name}','#{port}','#{db_name}','#{path}','#{site_construct_id}']") end else Thread.new do - system("bundle exec rake create_site:copy_site['#{ip}','#{user}','#{password}','#{site_name}','#{domain_name}','#{port}','#{db_name}','#{path}','#{site_construct_id}','#{params[:site_construct][:copy_id]}',#{site_construct.only_copy_installed_module}]") + system("bundle exec rake create_site:copy_site['#{ip}','#{server_port}', #{user}','#{password}','#{site_name}','#{domain_name}','#{port}','#{db_name}','#{path}','#{site_construct_id}','#{params[:site_construct][:copy_id]}',#{site_construct.only_copy_installed_module}]") end end redirect_to "#{admin_site_panel_sites_list_path}?id=#{site_construct_id}" @@ -307,6 +308,7 @@ class Admin::SitePanelController < OrbitAdminController git_extension_url = "http://gitlab.tp.rulingcom.com/core/default-modules.git" site_server = SiteServer.where(:server_name=>site_construct.server_type).first ip = site_server.ip + server_port = site_server.port user = site_server.account password = site_server.password site_name = site_construct.site_name @@ -317,11 +319,11 @@ class Admin::SitePanelController < OrbitAdminController site_construct_id = params[:id] if site_construct.copy_id Thread.new do - system("bundle exec rake create_site:copy_site['#{ip}','#{user}','#{password}','#{site_name}','#{domain_name}','#{port}','#{db_name}','#{path}','#{site_construct_id}','#{site_construct.copy_id}',#{site_construct.only_copy_installed_module}]") + system("bundle exec rake create_site:copy_site['#{ip}','#{server_port}','#{user}','#{password}','#{site_name}','#{domain_name}','#{port}','#{db_name}','#{path}','#{site_construct_id}','#{site_construct.copy_id}',#{site_construct.only_copy_installed_module}]") end else Thread.new do - system("bundle exec rake create_site:create_site['#{git_template_url}','#{git_extension_url}','#{git_url}','#{ip}','#{user}','#{password}','#{site_name}','#{domain_name}','#{port}','#{db_name}','#{path}','#{site_construct_id}']") + system("bundle exec rake create_site:create_site['#{git_template_url}','#{git_extension_url}','#{git_url}','#{ip}','#{server_port}','#{user}','#{password}','#{site_name}','#{domain_name}','#{port}','#{db_name}','#{path}','#{site_construct_id}']") end end render :json =>{"success"=>true} diff --git a/app/models/site_server.rb b/app/models/site_server.rb index dfe232c..c7e06c8 100644 --- a/app/models/site_server.rb +++ b/app/models/site_server.rb @@ -9,7 +9,8 @@ class SiteServer field :default_domain_names, type: Array, default: [] field :domain_name , type: String ,default: '' field :domain_names, type: Array, default: [] - field :ip , type: String ,default: '' + field :ip , type: String , default: '' + field :port, type: String, default: '22' field :account , type: String ,default: '' field :password , type: String ,default: '' field :active , type: Boolean ,default: true diff --git a/app/views/admin/site_panel/_server_manager_index.html.erb b/app/views/admin/site_panel/_server_manager_index.html.erb index 9a42d14..136382b 100644 --- a/app/views/admin/site_panel/_server_manager_index.html.erb +++ b/app/views/admin/site_panel/_server_manager_index.html.erb @@ -30,6 +30,7 @@ Sites amount Server name IP + Port Certbot Action @@ -48,6 +49,7 @@ <%=site_server.server_name%><%= 'X'.html_safe if !(site_server.active) %> <%=site_server.ip%> + <%=site_server.port%> <% if site_server.has_certbot%> <%= t("client_management.alreay_install") %> diff --git a/app/views/admin/site_panel/edit_server_info.html.erb b/app/views/admin/site_panel/edit_server_info.html.erb index 03d5016..80ed58d 100644 --- a/app/views/admin/site_panel/edit_server_info.html.erb +++ b/app/views/admin/site_panel/edit_server_info.html.erb @@ -124,6 +124,12 @@ <%= f.text_field :ip,{:id=>'ip'} %> +
+ +
+ <%= f.text_field :port,{:id=>'port'} %> +
+
diff --git a/lib/tasks/add_cert_ver_for_site.rake b/lib/tasks/add_cert_ver_for_site.rake index 09b9e76..d0f500f 100644 --- a/lib/tasks/add_cert_ver_for_site.rake +++ b/lib/tasks/add_cert_ver_for_site.rake @@ -8,7 +8,7 @@ namespace :create_site do site_server = site_construct.site_server if !site_server.nil? && !site_construct.cert_ver_location_path.blank? && !site_construct.cert_ver_file_content.nil? @password = site_server.password - Net::SSH.start(site_server.ip , site_server.account , password: site_server.password) do |ssh| + Net::SSH.start(site_server.ip , site_server.account , { password: site_server.password, port: site_server.port}) do |ssh| nginx_path = site_construct.nginx_file cert_ver_file_content = site_construct.cert_ver_file_content location_path = site_construct.cert_ver_location_path diff --git a/lib/tasks/change_backup_setting.rake b/lib/tasks/change_backup_setting.rake index 38e9370..6017921 100644 --- a/lib/tasks/change_backup_setting.rake +++ b/lib/tasks/change_backup_setting.rake @@ -19,18 +19,19 @@ namespace :exec_commands do @thread.update(:status=>{"infos"=>[],"status"=>"execing"}) end ip = site_server.ip + server_port = site_server.port user = site_server.account password = site_server.password @password = password begin - Net::SSH.start(ip , user , password: password) do |ssh| + Net::SSH.start(ip , user , { password: password, port: server_port}) do |ssh| end rescue Net::SSH::HostKeyMismatch system("ssh-keygen -f \"$HOME/.ssh/known_hosts\" -R #{ip}") rescue Errno::ENOTTY system("ssh-add \"$HOME/.ssh/id_rsa\"") end - Net::SSH.start(ip , user , password: password) do |ssh| + Net::SSH.start(ip , user , { password: password, port: server_port}) do |ssh| @no_stdout = true crontab_lines_str = exec_ssh_command_by_sudo_and_see_output(ssh,"sudo -p 'sudo password:' crontab -l", false, true) if site_server.site_server_file_backups.count != 0 diff --git a/lib/tasks/change_site_cert.rake b/lib/tasks/change_site_cert.rake index f9cb279..e63902e 100644 --- a/lib/tasks/change_site_cert.rake +++ b/lib/tasks/change_site_cert.rake @@ -31,7 +31,7 @@ namespace :create_site do tmp_is_certbot = (args.is_certbot == "true") if !site_server.nil? @password = site_server.password - Net::SSH.start(site_server.ip , site_server.account , password: site_server.password) do |ssh| + Net::SSH.start(site_server.ip , site_server.account , { password: site_server.password, port: site_server.port}) do |ssh| redirect_to_https = args.redirect_to_https ? true : (@site_construct.redirect_to_https rescue false) if tmp_is_certbot || (@site_cert.is_certbot rescue false) domain_names = site_constructs.flat_map{|site_construct| site_construct.domain_name.strip.split(" ")}.select{|d| d.present? && d.match(/^[\d\.]+$/).nil?} diff --git a/lib/tasks/change_site_server_name.rake b/lib/tasks/change_site_server_name.rake index 8067491..93c3706 100644 --- a/lib/tasks/change_site_server_name.rake +++ b/lib/tasks/change_site_server_name.rake @@ -10,7 +10,7 @@ namespace :create_site do if !site_server.nil? @password = site_server.password update_infos("Starting change domain name and ports.") - Net::SSH.start(site_server.ip , site_server.account , password: site_server.password) do |ssh| + Net::SSH.start(site_server.ip , site_server.account , { password: site_server.password, port: site_server.port}) do |ssh| @site_construct.update(:domain_name=>args.server_name) if args.port.present? all_ports = args.port.split('////') diff --git a/lib/tasks/copy_site.rake b/lib/tasks/copy_site.rake index 27d760c..69faec9 100644 --- a/lib/tasks/copy_site.rake +++ b/lib/tasks/copy_site.rake @@ -2,7 +2,7 @@ require 'net/ssh' require 'pathname' namespace :create_site do desc "Copy Site from another site" - task :copy_site,[:ip,:user,:password,:site_name,:domain_name,:port,:db_name,:path,:site_construct_id,:template_site_construct_id,:only_copy_installed_module] => :environment do |task,args| + task :copy_site,[:ip, :server_port,:user,:password,:site_name,:domain_name,:port,:db_name,:path,:site_construct_id,:template_site_construct_id,:only_copy_installed_module] => :environment do |task,args| @password = args.password template_site = SiteConstruct.find(args.template_site_construct_id) if args.site_construct_id.blank? @@ -24,14 +24,14 @@ namespace :create_site do @site_construct.update(:status=>"creating") @site_construct.update!(:infos=>[]) begin - Net::SSH.start(args.ip , args.user , password: args.password) do |ssh| + Net::SSH.start(args.ip , args.user , { password: args.password, port: args.server_port}) do |ssh| end rescue Net::SSH::HostKeyMismatch system("ssh-keygen -f \"$HOME/.ssh/known_hosts\" -R #{args.ip}") rescue Errno::ENOTTY system("ssh-add \"$HOME/.ssh/id_rsa\"") end - Net::SSH.start(args.ip , args.user , password: args.password) do |ssh| + Net::SSH.start(args.ip , args.user , { password: args.password, port: args.server_port}) do |ssh| update_infos("setting nginx for #{args.site_name}") nginx_setting_texts = @site_construct.generate_nginx_text exec_ssh_command_by_sudo_for_copy(ssh,"touch /etc/nginx/orbit_sites/#{@site_construct.get_site_name}") diff --git a/lib/tasks/create_site.rake b/lib/tasks/create_site.rake index 9c23656..9128559 100644 --- a/lib/tasks/create_site.rake +++ b/lib/tasks/create_site.rake @@ -2,7 +2,7 @@ require 'net/ssh' require 'pathname' namespace :create_site do desc "Create Site Script" - task :create_site,[:git_template_url,:git_extension_url,:git_url,:ip,:user,:password,:site_name,:domain_name,:port,:db_name,:path,:site_construct_id] => :environment do |task,args| + task :create_site,[:git_template_url,:git_extension_url,:git_url,:ip, :server_port,:user,:password,:site_name,:domain_name,:port,:db_name,:path,:site_construct_id] => :environment do |task,args| @password = args.password if args.site_construct_id.blank? @site_construct = SiteConstruct.new @@ -22,14 +22,14 @@ namespace :create_site do @site_construct.update(:status=>"creating") @site_construct.update!(:infos=>[]) begin - Net::SSH.start(args.ip , args.user , password: args.password) do |ssh| + Net::SSH.start(args.ip , args.user , { password: args.password, port: args.server_port}) do |ssh| end rescue Net::SSH::HostKeyMismatch system("ssh-keygen -f \"$HOME/.ssh/known_hosts\" -R #{args.ip}") rescue Errno::ENOTTY system("ssh-add \"$HOME/.ssh/id_rsa\"") end - Net::SSH.start(args.ip , args.user , password: args.password) do |ssh| + Net::SSH.start(args.ip , args.user , { password: args.password, port: args.server_port}) do |ssh| update_infos("setting nginx for #{args.site_name}") nginx_setting_texts = @site_construct.generate_nginx_text exec_ssh_command_by_sudo_for_create(ssh,"touch /etc/nginx/orbit_sites/#{@site_construct.get_site_name}") diff --git a/lib/tasks/delete_dbs.rake b/lib/tasks/delete_dbs.rake index 473bd0c..dad32cf 100644 --- a/lib/tasks/delete_dbs.rake +++ b/lib/tasks/delete_dbs.rake @@ -5,19 +5,20 @@ namespace :create_site do task :delete_dbs,[:server_name,:dbs] => :environment do |task,args| site_server = SiteServer.where(:server_name=>args.server_name).first ip = site_server.ip + server_port = site_server.port user = site_server.account password = site_server.password @password = password dbs = args.dbs.split begin - Net::SSH.start(ip , user , password: password) do |ssh| + Net::SSH.start(ip , user , { password: password, port: server_port}) do |ssh| end rescue Net::SSH::HostKeyMismatch system("ssh-keygen -f \"$HOME/.ssh/known_hosts\" -R #{ip}") rescue Errno::ENOTTY system("ssh-add \"$HOME/.ssh/id_rsa\"") end - Net::SSH.start(ip , user , password: password) do |ssh| + Net::SSH.start(ip , user , { password: password, port: server_port}) do |ssh| dbs.each do |db| puts "deleting database #{db}" exec_ssh_command_by_sudo(ssh,"bash -l -c 'echo \"db.dropDatabase()\" | mongo --shell \'#{db}\''") diff --git a/lib/tasks/delete_site.rake b/lib/tasks/delete_site.rake index 068a31e..e98e2d7 100644 --- a/lib/tasks/delete_site.rake +++ b/lib/tasks/delete_site.rake @@ -6,19 +6,20 @@ namespace :create_site do @site_construct = SiteConstruct.find(args.site_construct_id) site_server = SiteServer.where(:server_name=>@site_construct.server_type).first ip = site_server.ip + server_port = site_server.port user = site_server.account password = site_server.password @password = password begin begin - Net::SSH.start(ip , user , password: password) do |ssh| + Net::SSH.start(ip , user , { password: password, port: server_port}) do |ssh| end rescue Net::SSH::HostKeyMismatch system("ssh-keygen -f \"$HOME/.ssh/known_hosts\" -R #{ip}") rescue Errno::ENOTTY system("ssh-add \"$HOME/.ssh/id_rsa\"") end - Net::SSH.start(ip , user , password: password) do |ssh| + Net::SSH.start(ip , user , { password: password, port: server_port}) do |ssh| @site_construct.update!(:infos=>[]) if @site_construct.status != "closed" update_infos("Closing site #{@site_construct.site_name}...") diff --git a/lib/tasks/detect_sites.rake b/lib/tasks/detect_sites.rake index ecbaf92..9a4a0f5 100644 --- a/lib/tasks/detect_sites.rake +++ b/lib/tasks/detect_sites.rake @@ -23,7 +23,7 @@ namespace :create_site do @password = @site_server.password begin begin - Net::SSH.start(@site_server.ip , @site_server.account , password: @site_server.password) do |ssh| + Net::SSH.start(@site_server.ip , @site_server.account , { password: @site_server.password, port: @site_server.port}) do |ssh| end rescue Net::SSH::HostKeyMismatch system("ssh-keygen -f \"$HOME/.ssh/known_hosts\" -R #{@site_server.ip}") @@ -34,7 +34,7 @@ namespace :create_site do next end @no_stdout = true - Net::SSH.start(@site_server.ip , @site_server.account , password: @site_server.password) do |ssh| + Net::SSH.start(@site_server.ip , @site_server.account , { password: @site_server.password, port: @site_server.port}) do |ssh| certbot_path = exec_ssh_command_by_sudo_and_see_output(ssh,"bash -l -c 'which certbot certbot-auto'",false,true).strip.split("\n")[0] @site_server.has_certbot = certbot_path.present? @site_server.save diff --git a/lib/tasks/exec_command.rake b/lib/tasks/exec_command.rake index a53e3be..84021bc 100644 --- a/lib/tasks/exec_command.rake +++ b/lib/tasks/exec_command.rake @@ -56,18 +56,19 @@ namespace :exec_commands do end site_servers.each do |site_server| ip = site_server.ip + server_port = site_server.port user = site_server.account password = site_server.password @password = password begin - Net::SSH.start(ip , user , password: password) do |ssh| + Net::SSH.start(ip , user , { password: password, port: server_port}) do |ssh| end rescue Net::SSH::HostKeyMismatch system("ssh-keygen -f \"$HOME/.ssh/known_hosts\" -R #{ip}") rescue Errno::ENOTTY system("ssh-add \"$HOME/.ssh/id_rsa\"") end - Net::SSH.start(ip , user , password: password) do |ssh| + Net::SSH.start(ip , user , { password: password, port: server_port}) do |ssh| @site_construct.update!(:infos=>[]) rescue nil if args.type == 'close_site' exec_ssh_command_by_sudo_and_see_output(ssh,"chmod 777 #{@site_construct.path}/#{@site_construct.site_name} -R",false) diff --git a/lib/tasks/install_certbot.rake b/lib/tasks/install_certbot.rake index ea8c0f6..4675472 100644 --- a/lib/tasks/install_certbot.rake +++ b/lib/tasks/install_certbot.rake @@ -23,7 +23,7 @@ namespace :create_site do @password = @site_server.password begin begin - Net::SSH.start(@site_server.ip , @site_server.account , password: @site_server.password) do |ssh| + Net::SSH.start(@site_server.ip , @site_server.account , { password: @site_server.password, port: @site_server.port}) do |ssh| end rescue Net::SSH::HostKeyMismatch system("ssh-keygen -f \"$HOME/.ssh/known_hosts\" -R #{@site_server.ip}") @@ -33,7 +33,7 @@ namespace :create_site do update_thread_infos(e.to_s) next end - Net::SSH.start(@site_server.ip , @site_server.account , password: @site_server.password) do |ssh| + Net::SSH.start(@site_server.ip , @site_server.account , { password: @site_server.password, port: @site_server.port}) do |ssh| certbot_path = exec_ssh_command_by_sudo_and_see_output(ssh,"bash -l -c 'which certbot'",false,true).strip snap_path = exec_ssh_command_by_sudo_and_see_output(ssh,"bash -l -c 'which snap'",false,true).strip already_apt_update = false diff --git a/lib/tasks/test_ssh.rake b/lib/tasks/test_ssh.rake index 0097b54..742f3ea 100644 --- a/lib/tasks/test_ssh.rake +++ b/lib/tasks/test_ssh.rake @@ -5,7 +5,7 @@ namespace :create_site do desc "Test ssh" task :test_ssh,[] => :environment do |task,args| @site_server = SiteServer.where(:server_name=>'dev').first - Net::SSH.start(@site_server.ip , @site_server.account , password: @site_server.password) do |ssh| + Net::SSH.start(@site_server.ip , @site_server.account , { password: @site_server.password, port: @site_server.port}) do |ssh| exec_ssh_command_by_sudo_and_see_output_for_test(ssh,"bash -l -c 'cd orbit_sites/design3;bundle update'") end end diff --git a/lib/tasks/test_vpn.rake b/lib/tasks/test_vpn.rake index 5632886..11ec168 100644 --- a/lib/tasks/test_vpn.rake +++ b/lib/tasks/test_vpn.rake @@ -17,7 +17,7 @@ namespace :create_site do @site_server = SiteServer.where(:server_name=>"rulingcom.com").first proxy = Net::SSH::Proxy::HTTP.new(args.ip, args.port.to_i, :user => args.username, :password => args.password) - Net::SSH.start(@site_server.ip , @site_server.account , password: @site_server.password, proxy: proxy) do |ssh| + Net::SSH.start(@site_server.ip , @site_server.account , { password: @site_server.password, port: @site_server.port, proxy: proxy}) do |ssh| exec_ssh_command_by_sudo("echo 'abc'") end #rescue Errno::ETIMEDOUT , Net::SSH::ConnectionTimeout => e diff --git a/lib/tasks/update_multiple_nginx_setting.rake b/lib/tasks/update_multiple_nginx_setting.rake index 3b20187..fe794b5 100644 --- a/lib/tasks/update_multiple_nginx_setting.rake +++ b/lib/tasks/update_multiple_nginx_setting.rake @@ -23,7 +23,7 @@ namespace :create_site do @password = @site_server.password begin begin - Net::SSH.start(@site_server.ip , @site_server.account , password: @site_server.password) do |ssh| + Net::SSH.start(@site_server.ip , @site_server.account , { password: @site_server.password, port: @site_server.port}) do |ssh| end rescue Net::SSH::HostKeyMismatch system("ssh-keygen -f \"$HOME/.ssh/known_hosts\" -R #{@site_server.ip}") @@ -33,7 +33,7 @@ namespace :create_site do update_thread_infos(e.to_s) next end - Net::SSH.start(@site_server.ip , @site_server.account , password: @site_server.password) do |ssh| + Net::SSH.start(@site_server.ip , @site_server.account , { password: @site_server.password, port: @site_server.port}) do |ssh| need_update_sites = SiteConstruct.where(:id.in=>@site_server.need_update_site_ids).to_a need_update_sites.each do |site_construct| update_thread_infos("Changing "+site_construct.site_name+" nginx...")