Jujuを使用してMaaSで実行しているマシンがあります。それらのいくつかは、設定で設定した(無効な)設定のためにフックが実行されなかったため、デプロイに失敗しました。 Jju UIで、それらを解決済みとしてマークし、それらを削除しようとしました(そして、それらが緑になり、赤になるまで数サイクル繰り返されました)。
(resolve + removeを実行すると、jujuがフックが機能しなかったという事実にとらわれず、jujuがマシンをただ削除できるようになると思います。)
今、私は立ち往生していると思われるユニットを持っています
agent-state: error
agent-state-info: 'hook failed: "install"'
agent-version: 1.16.0.1
life: dying
ジュジュ状態。ユニットとそれらが搭載されているマシンを破壊しようとしました。それらのユニットをあきらめて、使用中のマシンをもう一度試してみる方法はありますか?
コマンドラインでユニットを解決済みとしてマークしようとしましたが、矛盾するメッセージが表示されます。解決済みとしてマークしようとすると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
更新:1〜2時間後に戻ってきたところ、問題が発生していたユニットの1つがなくなりました。だから、待つことはうまくいきました。
私がそれらを(速い)殺すことがわかった唯一の方法は、環境を破壊することです。
juju destroy-environment
もちろん、ゼロから環境を再構築するのはかなり抜本的である可能性があるため、これを行う前にしばらく待つことをお勧めします。場合によっては、すべてのフックの実行が完了するのにしばらく時間がかかることがあります。その後、サービスが停止状態に陥らないようにすることが望まれます。実際にマシンを解放するには、ユニット(juju destroy-unit
)を破棄した後、juju destroy-machine
(マシン番号付き)を実行して解放する必要があることに注意してください。 juju destroy-machine
は、現在ユニットとして動作しているマシンを終了させないため、ユニットが現在死にかけている場合、ユニットを解放しないことに注意してください。
私はあなたがあなたの環境を構築し始めたと思います。マシンのログファイルを確認すると役立ちます(また、それらをチェックしますが、なぜ死なないのかではなく、なぜ完了しなかったのかを見つけることはできません)。
私は同じ問題を抱えていました、ここに解決策があります:
1)MAASでNodeを再起動します
2)チャームはエラー状態になります
3)ジュジュは「あなたのユニット」を解決しました
4)juju destroy-service "your service"
それは私のために働いた!
サービスをデプロイする前にJujuのデータベースをバックアップします。問題が発生して修正できない場合は、バックアップデータベースからJujuを復元するだけです。