简体   繁体   English

在Windows上使用Rubber部署到EC2

[英]Deploying to EC2 using Rubber on Windows

I'm trying to deploy my Rails app to an Amazon EC2 instance but keeping getting the same error. 我正在尝试将Rails应用程序部署到Amazon 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)

This error points to this block in that file 该错误指向该文件中的该块

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

I added the text *LINE 173* to the actual line the error is references. 我在错误引用的实际行中添加了文本*LINE 173*

I found this Google Group thread about it, but I'm unsure how to change the path for Windows 我找到了与此相关的Google Group线程,但是不确定如何更改Windows的路径

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

Any help would be appreciated. 任何帮助,将不胜感激。 Again, I'm trying to deploy Rails app to EC2 instance on a Windows 8 machine. 同样,我尝试将Rails应用程序部署到Windows 8计算机上的EC2实例。

The equivalent file in Windows is Windows中的等效文件是

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

This code may have difficulties writing to that file since it requires privileged access. 由于此代码需要特权访问,因此可能难以写入该文件。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM