【问题标题】:AWS EBS - How to pull environment name into .ebextensions scriptAWS EBS - 如何将环境名称提取到 .ebextensions 脚本中
【发布时间】:2021-08-16 04:58:01
【问题描述】:

我有一个通过 Jenkins 部署到 AWS Elastic Beanstalk 的 grails 应用程序。我想在我的项目中添加一个 splunk 转发器,这样我就可以在 AWS 之外跟踪我的日志并设置简单的通知。

问题是,我有多个应用程序运行环境(开发、预生产、生产等),这很好,因为您可以更改转发的环境名称,并能够轻松地在Splunk。

但是,必须在所有环境之间使用相同的 .ebextensions 文件,不,我需要一种方法将环境名称设置为 AWS 具有的名称。有没有一种我忽略的方法可以轻松做到这一点?

脚本开始:

container_commands:
    01install-splunk:
        command: /usr/local/bin/install-splunk.sh
    02set-splunk-outputs:
        command: /usr/local/bin/set_splunk_outputs.sh
        env:
            SPLUNK_SERVER_HOST: "splunk.host"
    03add-inputs-to-splunk:
        command: /usr/local/bin/add-inputs-to-splunk.sh
        env:
            ENVIRONMENT_NAME: "Development"
        cwd: /root
        ignoreErrors: false 

我设置的 ENVIRONMENT_NAME 变量传递给第三个脚本是我希望能够根据正在部署的环境进行更改的变量。我可以在 Jenkins 中设置它还是以某种方式通过 AWS 拉它?

【问题讨论】:

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


    【解决方案1】:

    您可以尝试以下步骤:

    1. 使用环境变量配置您的 AWS Elasticbeanstalk 环境 ENVIRONMENT_NAME =“开发”或“质量保证”或“产品”

    请参考aws-official-docs

    1. 然后更新配置如下:
    
    container_commands:
        01install-splunk:
            command: /usr/local/bin/install-splunk.sh
        02set-splunk-outputs:
            command: /usr/local/bin/set_splunk_outputs.sh
            env:
                SPLUNK_SERVER_HOST: "splunk.host"
        03add-inputs-to-splunk:
            command: /usr/local/bin/add-inputs-to-splunk.sh
            env:
                ENVIRONMENT_NAME: "$ENVIRONMENT_NAME"
            cwd: /root
            ignoreErrors: false 
    
    

    希望这对你有用。

    【讨论】:

      猜你喜欢
      • 2021-12-26
      • 2017-07-21
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-21
      • 2017-02-26
      • 1970-01-01
      相关资源
      最近更新 更多