我正在使用橡胶部署到EC2(遵循Railscast#347)。我刚刚运行“cap rubber:create_staging”并收到此错误:
"Groups belonging to other users may not be granted permissions to VPC security groups."
mike@sleepycat:~/projects/usesthis☺ cap rubber:create_staging
Respawning with 'bundle exec'
triggering load callbacks
* 2013-08-19 08:55:19 executing `rubber:init'
* 2013-08-19 08:55:21 executing `rubber:create_staging'
Hostname to use for staging instance [production]:
Roles to use for staging instance [apache,app,collectd,common,db:primary=true,elasticsearch,examples,graphite_server,graphite_web,graylog_elasticsearch,graylog_mongodb,graylog_server,graylog_web,haproxy,mongodb,monit,passenger,postgresql,postgresql_master,web,web_tools]:
* 2013-08-19 08:55:23 executing `rubber:create'
* Creating new security group: usesthis_production_default
* Creating new rule: {"source_group_name"=>"usesthis_production_default", "source_group_account"=>"9050-9101-9552"}
/home/mike/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/excon-0.25.3/lib/excon/middlewares/expects.rb:6:in `response_call': InvalidParameterValue => Groups belonging to other users may not be granted permissions to VPC security groups. (Fog::Compute::AWS::Error)
除了亚马逊的默认设置和Rubber创建的内容之外,我的帐户中没有任何内容。 VPC是:“usesthis_production_default”和“default”。
这是我第一次接触橡胶或EC2,所以这对我来说意义不大。有人能指出我正确的方向吗?
答案 0 :(得分:6)
由于您的安全组已有默认安全组,因此您无法从橡胶更改它,也无法同步更改。这件事发生在我身上,因为我在AWS上设置了一个新帐户后,我手动(没有橡胶的帮助)创建了一个EC2实例。这样做之后,我自动为我创建了一个默认安全组,从那时起我就无法对其进行更改。
因此 - 通过aws安全组控制台,将SSH添加到传入和传出到默认安全组的规则中。接下来,在rubber.yml中,注释掉默认安全组:
security_groups:
# default:
# description: The default security group
# rules:
# - source_group_name: default
# source_group_account: "#{cloud_providers.aws.account}"
# - protocol: tcp
# from_port: 22
# to_port: 22
# source_ips: [0.0.0.0/0]
下次create_staging时,系统会提示您是否从AWS中删除安全组 - 请选择否。您可以通过设置:
来避免提示prompt_for_security_group_sync: true
到
prompt_for_security_group_sync: false
in rubber.yml
这对我有用 - 不确定你最初想要做什么,但是为了帮助那些正在尝试解决问题的人并希望建立一个带橡胶的临时环境,你遇到了这个问题,试试上面的内容