【问题标题】:Environment-specific ebextensions on Elastic BeanstalkElastic Beanstalk 上特定于环境的 ebextensions
【发布时间】:2015-07-20 23:35:19
【问题描述】:

我将同一个应用程序部署到两个不同的环境app-webapp-worker。这些环境的配置略有不同(例如,它们运行不同的进程),因此每个环境都需要一些不同的.ebextensions。有没有办法指定某个配置文件只能在某个环境下运行?

这里是只需要为工作环境设置的配置文件:

packages:
  yum:
    monit: []

files:
  "/etc/monit.d/resque_worker":
    mode: "000644"
    owner: root
    group: root
    content: |
      check process resque_worker_QUEUE
        with pidfile /var/app/resque_worker_QUEUE.pid
        start program = "/bin/sh -l -c 'cd /var/app/current; nohup rake environment resque:work QUEUE=* VERBOSE=1 PIDFILE=/var/app/resque_worker_QUEUE.pid >> log/resque_worker_QUEUE.log 2>&1'" as uid webapp and gid webapp
        stop program = "/bin/sh -c 'cd /var/app/current && kill -9 $(cat tmp/pids/resque_worker_QUEUE.pid) && rm -f /var/app/resque_worker_QUEUE.pid; exit 0;'"
        if totalmem is greater than 300 MB for 10 cycles then restart  # eating up memory?
        group resque_workers

commands:
  remove_bak:
    command: "rm /etc/monit.d/resque_worker.bak"
    ignoreErrors: true

service:
  sysvinit:
    monit:
      ensureRunning: true
      enabled: true

我知道我可以通过commands/test 测试是否存在环境变量来阻止命令运行,但我不确定如何处理其余的。

【问题讨论】:

  • 环境变量不能满足您的需求吗?
  • 我有需要运行的包、服务、文件和命令指令。可以使用test 使用环境变量切换命令指令,但我不确定如何处理其他指令。

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


【解决方案1】:

据我所知,目前没有办法做到这一点,这非常令人讨厌......我最终写了一个script which conditionally enables worker extensions for deploys

基本上在工作人员部署期间,脚本通过将扩展名从 worker-config 更改为 config 来启用某些文件,创建临时提交,部署,然后重置提交。

【讨论】:

    猜你喜欢
    • 2016-10-08
    • 2021-11-25
    • 2016-04-09
    • 2017-08-14
    • 2018-06-05
    • 2019-12-21
    • 2017-07-02
    • 2021-06-15
    • 2017-05-06
    相关资源
    最近更新 更多