This commit is contained in:
邱博亞 2024-01-14 22:55:38 +08:00
parent b93bf910d2
commit 2d0d00f8ba
1 changed files with 4 additions and 4 deletions

View File

@ -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, port: args.server_port}) do |ssh|
Net::SSH.start(args.ip , args.user , { password: @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, port: args.server_port}) do |ssh|
Net::SSH.start(args.ip , args.user , { password: @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}")
@ -50,10 +50,10 @@ namespace :create_site do
ls_out = exec_ssh_command_for_copy(ssh, "if [ ! -d \"#{@site_construct.full_site_path}/app\" ]; then echo 'No such file or directory: #{@site_construct.full_site_path}/app'; fi", false).join("\n")
if ls_out.include?("No such file or directory") || org_creating
if @site_construct.server_type == template_site.server_type
exec_ssh_command_for_copy(ssh,"rsync -ar --info=progress2 --no-inc-recursive --delete --exclude={tmp/cache/,tmp/unicorn.sock,tmp/pids/*#{extra_exclude_path}} #{template_site.path}/#{template_site.get_site_name}/ #{args.path}/#{@site_construct.get_site_name}/",true)
exec_ssh_command_for_copy(ssh,"rsync -ar -e 'ssh -o \"StrictHostKeyChecking=no\" -p 22' --info=progress2 --no-inc-recursive --delete --exclude={tmp/cache/,tmp/unicorn.sock,tmp/pids/*#{extra_exclude_path}} #{template_site.path}/#{template_site.get_site_name}/ #{args.path}/#{@site_construct.get_site_name}/",true)
else
exec_ssh_command_for_copy(ssh,"sudo -p 'sudo password:' apt-get install -y sshpass")
outputs = exec_ssh_command_for_copy(ssh,"sshpass -p \"#{server.password}\" rsync -ar --info=progress2 --no-inc-recursive --delete --exclude={tmp/cache/,tmp/unicorn.sock,tmp/pids/*#{extra_exclude_path}} #{server.account}@#{server.ip}:#{template_site.path}/#{template_site.get_site_name}/ #{args.path}/#{@site_construct.get_site_name}/",true)
outputs = exec_ssh_command_for_copy(ssh,"sshpass -p \"#{server.password}\" rsync -ar -e 'ssh -o \"StrictHostKeyChecking=no\" -p 22' --info=progress2 --no-inc-recursive --delete --exclude={tmp/cache/,tmp/unicorn.sock,tmp/pids/*#{extra_exclude_path}} #{server.account}@#{server.ip}:#{template_site.path}/#{template_site.get_site_name}/ #{args.path}/#{@site_construct.get_site_name}/",true)
if outputs.join("\n").include?("Host key verification failed")
exec_ssh_command_by_sudo_for_copy(ssh,"ssh-keygen -f \"$HOME/.ssh/known_hosts\" -R #{server.ip}")
exec_ssh_command_by_sudo_for_copy(ssh,"ssh-keyscan -H #{server.ip} >> ~/.ssh/known_hosts")