ubuntu 16.04でcloud-initでapt-get upgradeできない件
最近ubuntu 16.04を使い始めたんですけど、簡易プロビジョニングということで、 cloud-initのuser_dataのスクリプトで以下のようにパッケージの更新をしかけていました。
apt-get update apt-get upgrade -y # 他、アレコレと……
ところが先週くらいから、コイツが完全にハングするようになってしまいました。(´・ω・`)
原因はsnapdが更新されて、コイツがアップデートの中でsnapd.boot-ok.serviceを起動しようとするんですが、 cloud-initのuser_dataで与えられたスクリプトはシステムが完全に起動する前に実行されちゃうんですね。
ということで、
- snapd.boot-ok.serviceがmulti-user.targetの起動を待つため、apt-get upgradeが完了しない
- apt-get upgradeが完了しないから、multi-user.targetがいつまでたっても起動しない
という完全にデッドロックです。\(^o^)/
ソッコーでバグレポートも上がったんですけど、9/16日現在、まだcloud-initでのapt-get upgradeはハングします。 https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1621336
しょうがないので、一旦snapdを更新対象から外してapt-get upgradeするように運用回避してます。
apt-get update echo snapd hold | dpkg --set-selections apt-get upgrade -y echo snapd install | dpkg --set-selections
んー、メンドクセ。