如何使用 juju 管理多个环境?

mha*_*119 5 juju

如果我定义了多个 juju 环境,我经常想在其中一个上运行一系列命令。在每次调用时指定 -e 相当乏味,但每次切换项目时更改默认值也很烦人。是否可以在我的 shell 会话中设置一个环境变量来指定所有后续 juju 命令应该针对哪个环境运行?

Mar*_*ppi 4

可通过三种方式在命令行中管理 Juju 环境。一种方法是将“默认”YAML 键设置为您要默认使用的环境:

default: devel
environments:
  production:
    ...
  devel:
    ...
  staging:
    ...
Run Code Online (Sandbox Code Playgroud)

您可以default通过为每个 Juju 命令传递一个-e标志来覆盖environments.yaml 键,该值设置为您要使用的环境:

juju bootstrap -e staging
juju deploy -e staging mysql
juju status -e production
juju destroy-environment -e devel
Run Code Online (Sandbox Code Playgroud)

最后,Juju 会查找JUJU_ENV环境变量。您可以导出它,然后将其重置为空字符串或新值,以避免更改defaultenvironments.yaml键或使用-e标志

marco@work:~$ export JUJU_ENV=production
marco@work:~$ juju bootstrap
2012-11-14 13:55:44,235 INFO Bootstrapping environment 'production' (origin: ppa type: ec2)...
2012-11-14 13:55:45,567 INFO 'bootstrap' command finished successfully

marco@work:~$ export JUJU_ENV=local
marco@work:~$ juju status
2012-11-14 13:55:39,504 INFO Connecting to environment...
2012-11-14 13:55:40,179 ERROR juju environment not found: is the environment bootstrapped?
Run Code Online (Sandbox Code Playgroud)