【问题标题】:How to set System Wide Environment Variable in Cloud Config File on Digital Ocean如何在 Digital Ocean 上的 Cloud Config 文件中设置系统范围的环境变量
【发布时间】:2016-10-28 21:22:26
【问题描述】:

我对设置远程服务器很陌生,但我今天正在玩,希望我可以在设置时利用Cloud Config 文件,以便在服务器启动时设置一些环境变量。

在 Digital Ocean 上启动机器时,如何以编程方式设置环境变量?关键是我想自动化设置并避免以交互方式定义这些变量。

提前致谢。

【问题讨论】:

    标签: environment-variables digital-ocean


    【解决方案1】:

    有几种方法可以做到这一点,尽管Cloud Init 不支持环境变量的内置资源类型。

    1. 根据您的操作系统,使用write-files 部分将您想要的环境变量输出到适当的文件。对于 CoreOS,您可以执行以下操作:

      write_files:
          - path: "/etc/profile.env"
            append: true
            content: |
              export MY_VAR="foo"
      

    对于 Ubuntu,使用 /etc/environment,或用户的个人资料等。

    1. 另一种方法是利用 Cloud Init 对 Chef 的支持,并在应用配置文件时将该工具用于 set the variables

    【讨论】:

    • 不推荐,这样会覆盖环境变量文件。使用append: true 来防止这种情况
    【解决方案2】:

    这就是我为 ubuntu 所做的

    write_files:
    - path: /etc/environment
      content: |
        FOO="BAR"
      append: true
    

    【讨论】:

      【解决方案3】:

      您需要环境变量是永久的,还是仅用于执行单个命令/脚本? 如果是针对单个命令,您可以这样做:

      FOO=${BAR} | sh ./your_script.sh
      

      【讨论】:

        猜你喜欢
        • 2018-03-02
        • 2018-07-02
        • 2019-12-15
        • 2021-09-26
        • 2017-03-26
        • 1970-01-01
        • 2013-11-11
        • 2017-07-02
        相关资源
        最近更新 更多