如果我定义了多个 juju 环境,我经常想在其中一个上运行一系列命令。每次调用时都指定 -e 相当繁琐,但每次切换项目时更改默认值也很烦人。我是否可以在 shell 会话中设置环境变量来指定所有后续 juju 命令应针对哪个环境运行?
答案1
有三种方法可以在命令行中管理 Juju 环境。一种方法是将“default”YAML 键设置为您想要默认使用的环境:
default: devel
environments:
production:
...
devel:
...
staging:
...
您可以default
通过在每个 Juju 命令中传递一个标志来覆盖 environment.yaml 键-e
,该值设置为您想要使用的环境:
juju bootstrap -e staging
juju deploy -e staging mysql
juju status -e production
juju destroy-environment -e devel
最后,Juju 将寻找JUJU_ENV
环境变量。您可以导出它然后将其重置为空字符串或新值,以避免更改 environment.yamldefault
键或使用-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?