Rubber 认为在早先明确识别时存在遗漏的规则

Rubber believes there is a missing rule when it has expressly identified it earlier

正在发布

cap rubber:create_staging

开始检查帐户的 EC2 现有安全组。第一个检查是针对默认组的,它不能从 AWS 网络控制台中删除。所以下面提示的响应自然是'N'

  * Security Group already in cloud, syncing rules: default
Rule '{"protocol"=>"tcp", "from_port"=>"1", "to_port"=>"65535", "source_group_name"=>"", "source_group_account"=>"460491791257"}' exists in cloud, but not locally, remove from cloud? [y/N]: N

然而,四次检查后,

  * Missing rule, creating: {"source_group_name"=>"default", "source_group_account"=>"460491791257", "protocol"=>"tcp", "from_port"=>"1", "to_port"=>"65535"}

/Users/you/.rvm/gems/ruby-1.9.3-p551/gems/excon-0.45.4/lib/excon/middlewares/expects.rb:10:in `response_call': Duplicate => the specified rule \"peer: sg-0910926c, TCP, from port: 1, to port: 65535, ALLOW\" already exists (Fog::Compute::AWS::Error)

显然有人试图创建一个相同的规则。唯一的区别是,从支票中取出的那个 source_group_name 有一个空字符串,而 rubber 例程试图创建相同的规则 source_group_name确定。

使用 'source_group_name' 在 EC2 网络控制台中创建标签,默认值不会改变任何行为。这是否需要通过 EC2 或橡胶进行修复?

Edit 虽然以下操作确实有效,但问题的根源是橡胶版本。最新版本未被使用,因此可能是问题的根源 list of versions is here

这可以通过在 EC2 网络控制台中创建一个新的安全组并将配置文件 rubber/rubber.yml 编辑为在控制台中创建的相同身份(第 206 行或附近)

security_groups:
  default:
    description: The default security group
    rules:
      - source_group_name: rubber_default

然后,在 config/rubber/instance- env .yml 中 security_groups bloc 需要修改(第 52 行或附近):

  security_groups:
  - rubber-default