Elastic Beanstalk .ebextensions .config文件偶尔运行,而不是其他运行

时间:2013-08-13 22:33:04

标签: ruby-on-rails elastic-beanstalk

我一直在尝试自动化有关我们部署的所有内容,并且在今天一直倒退之前已经取得了一些合理的增量成功。

.ebextensions / 01settings.config

container_commands:
  01seed:
    command: rake db:seed
    leader_only: true

这偶尔会运行,但大多数情况下都不会。当它在部署时,我会看到类似的东西:

2013-08-13 21:46:55,606 [INFO] Running configSets: Infra-EmbeddedPostBuild
2013-08-13 21:46:55,607 [INFO] Running configSet Infra-EmbeddedPostBuild
2013-08-13 21:46:55,609 [INFO] Running config postbuild_0_acme_development_02e6a3b5e2d179b50d766a8dc16f8243__ebextensions_01settings_config
2013-08-13 21:46:55,609 [DEBUG] No packages specified
2013-08-13 21:46:55,609 [DEBUG] No groups specified
2013-08-13 21:46:55,609 [DEBUG] No users specified
2013-08-13 21:46:55,609 [DEBUG] No sources specified
2013-08-13 21:46:55,609 [DEBUG] No files specified
2013-08-13 21:46:55,610 [DEBUG] Running command 01seed
2013-08-13 21:46:55,610 [DEBUG] Generating defaults for command 01seed
2013-08-13 21:46:55,810 [DEBUG] Running test for command 01seed
2013-08-13 21:46:55,839 [DEBUG] Test command output: 
2013-08-13 21:46:55,840 [DEBUG] Test for command 01seed passed
2013-08-13 21:47:08,019 [INFO] Command 01seed succeeded
2013-08-13 21:47:08,020 [DEBUG] No services specified
2013-08-13 21:47:08,034 [INFO] ConfigSets completed

其他时候,我会将相同的内容部署到同一个实例,相同的部分将显示为:

2013-08-13 22:15:15,360 [INFO] Running configSets: Infra-EmbeddedPostBuild
2013-08-13 22:15:15,362 [INFO] Running configSet Infra-EmbeddedPostBuild
2013-08-13 22:15:15,362 [INFO] ConfigSets completed

我无法告诉你这种经历是多么令人沮丧。我计划很快就通过rake作为宝石分享这种自动化的轨道部署,但是我很犹豫,因为每次都不会这样做。

甚至不会尝试.ebextensions / * .config的原因是什么?

编辑: 看来我的deep_symbolized_hash.to_yaml发出了一个.ebextensions / 01settings.config看起来像:

:container_commands:
  :01seed:
    :command: rake db:seed
    :leader_only: true

所以,虽然这是有效的yaml,但是infra-EmbeddedPostBuild的弹性beanstalk配置集运行过程只是在我的配置中走过而没有抱怨。

这听起来不错吗?我们真的希望eb能吞下这个吗?

1 个答案:

答案 0 :(得分:4)

这已得到确认。如果使用带有符号化键的ruby散列,则需要在to_yaml之前对符号进行非符号化,否则请在进程后删除前导':'分号。

同样确认,如果eb在部署时不喜欢你的.config文件,它只会吞下它,甚至不记录任何内容!