0

我試圖將我的Rails應用程序部署到Amazon EC2實例,但保持相同的錯誤。在Windows上使用Rubber部署到EC2

Trying to enable root login 

c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/rubber-2.8.0/lib/rubber/recipes/rubber/setup.rb:173:in `read': No such file or directory - /etc/hosts (Errno::ENOENT) 

此錯誤指向該塊在該文件中

desc <<-DESC 
    Sets up local aliases for instance hostnames based on contents of instance.yml. 
    Generates/etc/hosts for local machine 
DESC 
required_task :setup_local_aliases do 
    hosts_file = '/etc/hosts' 

    # Generate /etc/hosts contents for the local machine from instance config 
    delim = "## rubber config #{rubber_env.domain} #{Rubber.env}" 
    local_hosts = delim + "\n" 
    rubber_instances.each do |ic| 
    # don't add unqualified hostname in local hosts file since user may be 
    # managing multiple domains with same aliases 
    hosts_data = [ic.full_name, ic.external_host, ic.internal_host] 

    # add the ip aliases for web tools hosts so we can map internal tools 
    # to their own vhost to make proxying easier (rewriting url paths for 
    # proxy is a real pain, e.g. '/graphite/' externally to '/' on the 
    # graphite web app) 
    if ic.role_names.include?('web_tools') 
     Array(rubber_env.web_tools_proxies).each do |name, settings| 
     hosts_data << "#{name}-#{ic.full_name}" 
     end 
    end 

    local_hosts << ic.external_ip << ' ' << hosts_data.join(' ') << "\n" 
    end 
    local_hosts << delim << "\n" 

    # Write out the hosts file for this machine, use sudo 
    *LINE 173* existing = File.read(hosts_file) 
    filtered = existing.gsub(/^#{delim}.*^#{delim}\n?/m, '') 

    # only write out if it has changed 
    if existing != (filtered + local_hosts) 
    logger.info "Writing out aliases into local machines #{hosts_file}, sudo access needed" 
    Rubber::Util::sudo_open(hosts_file, 'w') do |f| 
     f.write(filtered) 
     f.write(local_hosts) 
    end 
    end 
end 

我添加的文本*LINE 173*實際行的錯誤是引用。

我發現這個谷歌組線程這件事,但我不知道該如何改變路徑爲Windows

https://groups.google.com/forum/#!topic/rubber-ec2/LFk0NgrOtyY

任何幫助,將不勝感激。再次,我試圖在Windows 8機器上將Rails應用程序部署到EC2實例。

回答

1

Windows中的相應文件是

C:\Windows\System32\drivers\etc\hosts 

此代碼可能寫入該文件,因爲它需要特權訪問的困難。