Azureドライバで作成したdocker-machineの削除が辛かった

Created 2018年6月4日18:06
Updated 2019年2月3日18:42
Categories Docker Azure

あらすじ

久々にdocker machineを使おうとしてdocker-machine lsコマンドを叩いたところ、昔仕事で作成したAzureのVMが残っていました。

その仮想マシンはテストで作成しただけで、おそらく既に削除されてしまっていると思いますが、VMを作成したMSアカウントは仕事先の物でしたので、既にアクセス権がありませんでした。

つまり、VMの所在が分からず、ローカルに設定だけ残ってしまっているような状態です。

今回はその状態のVMの設定だけを削除するため、調査を行いました。

調査

docker machineではdocker-machine rmコマンドでVMの実体の削除と設定の削除が行えます。

調べていると、このコマンドに-fオプションを加える事で実体が削除できなかった場合も紐づけを削除できることが分かりました。

探していたものとちょっと違いますが、それ以外の方法が見当たらなかったのでこれを使う事にしました。

もし仮にVM本体が残っていたとしても、MSアカウントでログインしなければ削除されることはないので心配ないでしょう。

PS> docker-machine rm -f machine_name
About to remove machine_name
WARNING: This action will delete both local reference and remote instance.
(machine_name) NOTICE: Please check Azure portal/CLI to make sure you have no leftover resources to avoid unexpected charges.
(machine_name) Microsoft Azure: To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AUTH_CODE to authenticate.

うーん・・・通常ならここでWebブラウザを開いて認証を通すところですが、今回はVM本体を削除したくないのでどうしていいかわかりません。

試しにCtrl+Cでコマンドを中断してみましたが、残念ながら設定は削除されていませんでした。

結果的に認証トークンの有効期限が切れるまで待つ事で無事に除去されました。

Error removing host "machine_name": Error creating Azure client: Failed to complete device auth: autorest/azure/devicetoken: Error while retrieving OAuth token: Code Expired
Successfully removed machine_name

放置していたので詳しい時間は分かりませんが、恐らく15分くらいでしょうか。

うまく設定だけ削除できた&削除対象の数が少なかったので結果オーライですが、ちょっとあほくさいのでもう少し良い方法があったら教えてください・・・

参考

docker-machine rm

コメントを投稿

コメント