我有使用 Juju 在 MaaS 上运行的机器。其中一些未能部署,因为由于我在配置中设置的(无效)设置,钩子没有运行。在 Jju UI 中,我尝试将它们标记为已解决,然后尝试删除它们(并通过它们变绿然后变红的几个循环重复)。
(我相信做 resolve + remove 会让 juju 不会因为 hook 不工作而卡住,让 juju 摆脱机器。)
现在我的单位似乎卡住并说
agent-state: error
agent-state-info: 'hook failed: "install"'
agent-version: 1.16.0.1
life: dying
Run Code Online (Sandbox Code Playgroud)
处于 juju 状态。我试过摧毁它们所在的单位和机器。有什么办法可以放弃这些装置并回收正在运行的机器再试一次?
我还尝试在命令行上标记已解决的单位,但我收到了相互矛盾的消息。我得到ERROR cannot set resolved mode for unit "ceph-osd/1": already resolved当我试图将其标记解决,但状态是上面后,当我运行相同的错误消息juju status
agent-state: error
agent-state-info: 'hook failed: "install"'
life: dying
Run Code Online (Sandbox Code Playgroud)
更新:我一两个小时后才回来,发现我遇到问题的一个单位消失了。所以,等待确实奏效了。
我发现(快速)杀死它们的唯一方法是破坏环境。
juju destroy-environment
Run Code Online (Sandbox Code Playgroud)
当然,由于从头开始重建环境可能相当剧烈,因此我建议在执行此操作之前等待一段时间。有时,所有钩子只需要一段时间即可完成执行,然后希望服务不再陷入死亡状态。请注意,要真正释放机器,在销毁单元 ( juju destroy-unit) 后,您需要运行juju destroy-machine(使用机器编号)来释放它。请注意,juju destroy-machine不会终止当前充当单元的机器,因此如果单元当前处于死亡状态,则不会释放该单元。
我想您已经开始构建您的环境了。检查机器的日志文件会很有帮助(我也检查它们,但不是为了找出它们没有死掉的原因,而是为了找出它们没有完成的原因)。