yum(apt)のupdateを高速化したい
お詫び
Qiitaの元記事にて、区切り線を「---」で書いている場所があり、これがZennの記法に干渉して一部うまく表示できない記事がある事を認識しています。
全ての記事を精査しきれていないため、お手数ですがお見かけの際は教えていただけると大変喜びます。
Dockerコンテナを建てる時にとりあえず入れている
yum update && yum -y upgrade
を、コンテナを作るたびに実施させていたら、これだけで時間を多く取られる事になります。
また、実行したタイミングによって、開発中も保守中も常にバージョンが安定しない可能性があるので、これを解消しようという狙いです。
Dockerfile自体はgitなりでバージョンを管理している想定です。
手順
を参考に進めてます。
作業をする前に136GB以上の容量を確保しておく、ぐらいでしょうか。
構築時に恐ろしく時間が掛かるので、気長にやりましょう。
構築自体は難しくないんですが、運用を考えた時に落とし穴が多いので、その話を。
運用のイメージについて
yum(apt)のミラーをローカルに持つ
このコンテナ(サーバー)でupdate && upgradeを実施するタイミングを管理するために準備する。
実施タイミングが手動なら手動でも良いでしょう。
LAN内のコンテナはyum(apt)を見るようにする
外のサーバーにデータを取りに行くのと比べるまでもなく速くなりました。
また、例えば1時間ずれただけでバージョンが更新されていた、なんてウッカリもないです。[1]
普通にyum(apt)
サクッと書いてますが、ちゃんと切り替え出来てるよね?という確認をしたい場合は一時的にyum(apt)サーバーのバージョンを古くして、そちらと同じバージョンになっている事を確認する必要があります。
あるいは、一週間寝かすぐらいがいいと思います。
が、本記事としては、そんな確認のために時間を掛けるよりは、起こっちゃったら環境を作り直したほうがなんぼか早いんじゃないでしょうか?
取り返しがつく範囲での運用が前提です。[2]
サーバーをupdateした場合
運用として、
- 全部updateする
- 来るべき時まで触らない
が考えられますが、さっさと上げてバグ取りした方が有意義な気がします。
というのも、いつの間にかバージョンが大きく変わって修正箇所が大量に!なんてことも考えられるからです。[3]
サーバーの数が多ければ多いほど大変な作業になります。
ウッカリupdate && upgradeが出来たから大丈夫、と思って運用を継続すると気付かないところにバグがあった、なんてことも。
1サーバーずつupdate && upgradeして、運用に問題がない事を確認した方が安全です。
参考
読了後いいね!をお願いします。
どれだけの方に読んでもらっているか知りたいので、お手数をおかけしますがご協力いただけると嬉しいです。
Discussion