ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

macOSの移行ウィザードでユーザーを移行したらVagrantがUIDのエラーでうまく動かなくなった場合の解決方法

vagrant statusとか、とにかくコマンドを実行するとエラーになってしまいました。 大ピンチです。

current user running Vagrant. VirtualBox requires that the same user
be used to manage the VM that was created. Please re-run Vagrant with
that user. This is not a Vagrant issue.

The UID used to create the VM was: 503
Your UID is: 501

検索すると、「.vagrant/machines/default/virtualbox/creator_uid」や「.vagrant/machines/default/virtualbox/id」にIDが書かれているので「Your UID is…」と書かれているIDに書き換えろーって話らしい。

qiita.com

stackoverflow.com

ただしそんなファイル、ないんですけどと言う場合は.vagrantと言うディレクトリーを削除してしまえば良いみたいです。このディレクトリーはVagrantfileを置いているディレクトリーごとにあるので、端末でls -laと実行して出てきたディレクトリーをrm -rf .vagrantと実行して削除すればOK。vagrantコマンドを実行すると再作成されるようです。

ちなみに先ほどのパスですが、Vagrantfileに複数のVMの情報を記述している場合はdefaultの部分が変わってきます。 例えば次のような記述がある場合はcent7n0とかcent7n1のように指定したエントリーの数だけディレクトリーが作られますので、個別にidを変えたい場合はそう指定します。正直ディレクトリーを削除して再作成してもらった方が良いと思います。

...
 config.vm.define :cent7n0 do |cent7n0|
  cent7n0.vm.box = "cent/7"
  cent7n0.vm.hostname = "cent0"
  cent7n0.vm.network "private_network", ip: "192.168.57.211"
 end

 config.vm.define :cent7n1 do |cent7n1|
  cent7n1.vm.box = "cent/7"
  cent7n1.vm.hostname = "cent1"
  cent7n1.vm.network "private_network", ip: "192.168.57.212"
 end
...