LoginSignup
3
2

More than 1 year has passed since last update.

vagrantを使ってローカルにubuntu22.04環境を用意する

Posted at

はじめに

macにおいて仮想マシンを構築するためのソフトウェアといえばVirtualBoxが著名ですが、いまのところApple M1チップ以降のCPUではVirtualBoxは使用できません。(β版は存在するそう。)

そこで別のソフトウェアを使用して仮想環境を構築する方法について

  • Vagrantを用いて構築する
  • ホストコンピュータが属するネットワーク上の別の物理マシンとして仮想マシンを認識させたい

上記2点の観点からparallelsを使用することにします。
(他にVMware Fusionなども著名です。)

動作環境と前提事項

本記事は以下のホスト環境で動作確認しています。

OS: macOS Venture 13.3.1
Chip: Apple M1 Pro

前提事項

前提として、以下2点導入済みとします。

vagrantインストール

まずは公式ドキュメントに沿ってvagrantのインストールを行います。

brew install hashicorp/tap/hashicorp-vagrant

バージョン確認します。

vagrant -v

Vagrant 2.3.6

vagrant-parallelsのインストール

vagrantを使用してParallels上に仮想マシンを構築するには、そのためのドライバに相当するvagrant-parallelsが必要になります。

GithubのREADMEを参照してインストールします。

vagrant plugin install vagrant-parallels

Vagrantfileの初期化

任意のプロジェクトディレクトリに移動して作業を行います。

作成する仮想マシンの定義はVagrantfileというファイルをプロジェクト毎に一つ作成します。Vagrant起動時にこのファイルを読み込むことで定義した環境を作成することができます。

ではまず、Vagrantfileを初期化します。
Vagrantfileは手動で作成することもできますが、vagrant initを使用すると各パラメータが記載された雛形を出力することができるので、便利です。)

vagrant init

Vagrantfileが作成されていることを確認します。

ls

Vagrantfileの編集

Vagrantはベースとなるイメージから仮想マシンを構築します。そのベースイメージ(ボックス)をconfig.vm.boxパラメータに指定します。
(ボックスは仮想マシンのOSなどが含まれるのでサイズが大きいです。)

使用したいboxファイルはこちらのサイトから検索することができます。(docker hubに似たようなサイトです。)

ここでは、ホストマシンがM1チップであるのとUbuntu22.04の仮想マシンを構築したいので「arm ubuntu」で検索し、以下のボックスを指定します。

config.vm.box = "bento/ubuntu-22.04-arm64"

また、冒頭でも記載したように今回は「ホストコンピュータが属するネットワーク上の別の物理マシンとして仮想マシンを認識させたい」ので以下のconfig.vm.networkパラメータもアクティブにしておきます。

config.vm.network "public_network"

config.vm.networkパラメータで設定できる値についてはドキュメントを参照してください。

デフォルトのボックスは設計上、セキュリティリスクが存在します。仮想マシン上のゲストOSに対する資格情報を使用することで同一ネットワーク上の誰でもアクセスできる可能性があることにご注意ください。

なので特段、目的がなければ他の設定値(private_networkなど)が無難かと思います。

仮想マシン起動

準備ができたので仮想マシンを起動します。(初回は時間かかります。)

vagrant up

仮想マシン状態確認

仮想マシンの状態を確認するには以下のコマンドが使用できます。

vagrant status

仮想マシンへssh接続

起動した仮想マシンへの接続には以下のコマンドを使用します。
(意味的には、通常のssh user@hostと同じです。)

vagrant ssh

プロンプトのhostnameusernameが変化すれば接続完了です!
ちなみに仮想マシンの接続を抜けるにはexitを実行すれば抜けられます。

おまけ

その他よく使うvagrantコマンド

halt

実行中の仮想マシンをシャットダウンします。

vagrant halt

suspend

このコマンドは完全なシャットダウンではなく仮想マシンを一時停止します。

一時停止は、後で再開した際にその時点から直ちに実行を開始します。(再ブートではなく一時停止からの再開です。)

vagrant suspend

resume

以前に(vagrant suspendコマンドで)一時停止された仮想マシンを再開します。

vagrant resume

destroy

このコマンドは、実行中の仮想マシンを停止し、仮想マシン作成過程で生成されたすべてのリソースを削除します。これによって仮想マシン作成前と同様に、ホストコンピュータはクリーンな状態になります。

vagrant destroy

参考ドキュメント

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2