【问题标题】:.ebextensions remove preinit script.ebextensions 删除预初始化脚本
【发布时间】:2017-01-04 15:34:22
【问题描述】:

目前在部署中我得到:

挂钩 /opt/elasticbeanstalk/hooks/preinit/30directories.sh 失败

我想完全使用 .ebextensions 移除钩子,我目前正在使用:

/.ebextensions/01-remove-unused.config

commands:
  removeunused:
    command: "rm -f /opt/elasticbeanstalk/hooks/preinit/30directories.sh"
    ignoreErrors: true

files:
  "/opt/elasticbeanstalk/hooks/preinit/30directories.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      ls

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-elastic-beanstalk


    【解决方案1】:

    我不确定这有多相关,但您使用的是哪个 ElasticBeanstalk 平台? 对于64bit Amazon Linux 2016.09 v2.3.0 running Docker 1.11.2 特别是(可能还有其他平台),我认为没有任何方法可以按照您描述的方式执行此操作。

    不幸的是,preinit 脚本在 ElasticBeanstalk 将 .ebextensions 注入您的环境之前执行得很好,并且它们仅在启动新实例时运行。要确认这一点,您可以检查新部署的 ElasticBeanstalk 实例上的 /var/log/eb-activity.log,它会向您显示与 AWS 为您记录的引导过程相关的所有内容。在这个日志文件中搜索Initialization/PreInitStage0/PreInitHook,然后也搜索.ebextensions;您会看到preinit 脚本确实在大多数其他内容之前执行,而.ebextensions 文件要晚得多。 (对于它的价值,this blog post 可能有助于进一步帮助了解哪些钩子在哪些时间运行)

    您可以可能做的是配置一个 .ebextensions 脚本,使其在所有其他非preinit hooks 脚本之前执行,这些脚本将重新执行(并可能撤消更改)所有preinit 脚本。但是,我猜这会带来更多麻烦而不是值得,因为这可能会产生意想不到的副作用。

    无论如何,这些都是我试图做类似事情的发现。希望这会有所帮助(尽管我没有从技术上解决您的问题)!

    【讨论】:

      猜你喜欢
      • 2017-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-27
      相关资源
      最近更新 更多