VagrantのUbuntu環境をアップグレードする

作業環境としてVagrant(VirtualBox)でUbuntu16.04を2017年ごろから使ってます。 そろそろ20.04も近くなってきたので、今更ですが既存の環境をUbuntu18.04に上げておこうかと思い、色々調べていたのでメモを残します。

使っているboxは ubuntu/xenial64ubuntu/bionic64

Vagrant box ubuntu/bionic64 - Vagrant Cloud

Q. Vagrantの仕組みで既存のUbuntu環境のメジャーアップデートはできるのか?

A.できない。Ubuntuなら通常通りdo-release-upgradeコマンドを使おう。新規にVMを作り直してもよいなら、そちらのほうが手軽。

Q. Vagrantfileのboxを変更したら既存のVMは使えない?

A.そのまま使える。boxの指定を ubuntu/xenial64 から ubuntu/bionic64 に変更しましたが、特に問題はなかった。

他に気をつけた点

  • アップグレードするとadd-apt-repositoryで追加したaptリポジトリが無効化されるので、 vagrant provision を再度実行すれば有効になるようにしとくのがよい。
  • ホスト名はアップグレードで変わらないので、気になるなら変更すればいい。
  • Vagrantfileに書いていたパッケージのインストールが、パッケージの名称変更により一部失敗していたので修正した。

実際にやった手順

  1. Vagrantfileの更新(boxの変更、パッケージ名の変更)
  2. VMsshで入って sudo do-release-upgrade
  3. ホスト名の変更 sudo hostnamectl set-hostname ubuntu-bionic
  4. sudo rm /etc/apt/sources.list.d/* (provisionでパッケージを入れ直すので)
  5. vagrant provision でaptのパッケージなど入れ直し。
  6. Pythonのvenvの作り直し