当我尝试使用 juju 在手动配置的机器上部署服务时出现以下错误:
juju deploy juju-gui --show-log
2014-05-20 13:42:31 INFO juju.cmd supercommand.go:302 running juju-1.18.3-unknown-amd64 [gc]
2014-05-20 13:42:31 INFO juju api.go:242 connecting to API addresses [j93716.servers.jiffybox.net:17070]
2014-05-20 13:42:31 INFO juju apiclient.go:114 state/api: dialing "wss://xxx.xxx.net:17070/"
2014-05-20 13:42:31 INFO juju apiclient.go:124 state/api: connection established
Added charm "cs:trusty/juju-gui-2" to the environment.
2014-05-20 13:42:46 ERROR juju.cmd supercommand.go:305 cannot assign unit "juju-gui/0" to machine: cannot assign unit "juju-gui/0" to new machine or container: cannot assign unit "juju-gui/0" to new machine: use "juju add-machine ssh:[user@]<host>" to provision machines
juju status 输出以下内容:
environment: manual
machines:
"0":
agent-state: started
agent-version: 1.18.3
dns-name: xxx.xxx.xxx.xxx
instance-id: 'manual:'
series: precise
hardware: arch=amd64 cpu-cores=1 mem=1996M
"1":
agent-state: started
agent-version: 1.18.3
dns-name: xxx.xxx.xxx.yyy
instance-id: manual:xxx.xxx.xxx.net
series: precise
hardware: arch=amd64 cpu-cores=1 mem=1996M
services:
juju-gui:
charm: cs:trusty/juju-gui-2
exposed: true
units:
juju-gui/0:
agent-state: pending
我错过了什么?
答案1
根据 juju status 输出来判断,您已经引导了一个手动环境(使用juju bootstrap
,这与手动配置不同,使用 完成juju add-machine ssh:[user@]host
)。
手动环境比较特殊 - 它们仅由一台机器组成,并且无法自动启动或停止其他机器,包括在 上juju deploy
。要添加另一台机器,juju add-machine ssh:[user@]host
请先使用,然后使用juju deploy juju-gui --to #
,其中 # 是您刚刚添加的机器的 juju 机器 id(运行juju status
即可查看)。您还可以使用juju deploy juju-gui --to 0
在引导机器上部署 Juju GUI。
juju add-machine ssh:[user@]host
可以在任何引导环境中使用,以手动配置外部机器并将其添加到环境中。但在手动引导环境中,这是添加机器的唯一方法,并且您必须在部署时明确指定服务和单元的位置--to <machine-id>
。
我希望这能消除任何疑惑。我想我们肯定需要更好的文档。