如何在Digital Ocean的Cloud Config文件中设置系统范围的环境变量

15

我在设置远程服务器方面还比较新,但今天尝试了一下,希望可以利用Cloud Config文件进行设置,在服务器启动时设置一些环境变量。

如何在Digital Ocean上自动设置环境变量?关键是我想要自动化设置并避免交互式定义这些变量。

谢谢提前。

3个回答

9
这是我在Ubuntu上做的事情。
write_files:
- path: /etc/environment
  content: |
    FOO="BAR"
  append: true

3

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

  1. Depending on your OS, use a write-files section to output the env vars you want to the appropriate file. For CoreOS, you'd do something like:

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

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

  1. 另一种方法是利用Cloud Init对Chef的支持,并在应用配置文件时使用该工具设置变量

5
不建议这样做,会覆盖环境变量文件。使用append: true可以防止这种情况发生。 - dangel

0

你需要环境变量是永久性的还是只是用于单个命令/脚本的执行? 如果是单个命令,你可以使用以下方式:

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

这个不起作用,但是这个可以:

BAR="test"

FOO=${BAR} | sh -c 'echo $FOO'

FOO=${BAR} sh -c 'echo $FOO'

test
- krad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接