0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VirtualBox + Vagrant で Windows 上に Ubuntu 22.04 サーバーを作成

Last updated at Posted at 2025-04-13

忘れないようにメモ

0. 動機

Vagrant の存在を最近知って試したくなった。
WSL を使っていたが実はこっちのほがいいのではと感じた。
WSLは環境削除に時間がかかる。
コマンドを打っていって設定をするよりも設定ファイルとコマンド一発というのがDockerのようで魅力に感じた。

1. 構成


ホストOS ゲストOS
Windows 11 (64bit) Ubuntu 22.04

コマンド入力は Windows11 に標準でインストールされている Windows Terminal(ターミナル)で
PowerShellを使用。

2. 流れ

  1. Windows11 に Virtualbox インストール
  2. Windows11 に Vagrant インストール
  3. Vagrantfile で box設定
  4. プラグインのインストール
  5. Ubuntu 22.04起動

3. Virtualbox インストール

以下からVirtualboxをダウンロード

追記:7.0.x系をダウンロードすること。そうでないと後続のプラグインのインストールでエラーになる。

Oracle Virtualbox 7.0.x

もろもろ同意など全部YESでインストール

4. Vagrant インストール

versionは2.4.1以前を使用する。筆者は2.4.1を使用。

Vagrant 2.4.1

Windows のAMD64をダウンロード

もろもろ同意など全部YESでインストール

ターミナルで以下を入力してバージョンが確認できればOK

vagrant -v

5. プラグインのインストール

プラグイン名 目的・役割
vagrant-disksize 仮想マシンのディスクサイズを変更する。Vagrantfileでサイズ指定が可能。
vagrant-vbguest VirtualBox Guest Additions を自動で最新化・再インストールして安定動作を実現。
vagrant plugin install vagrant-disksize
vagrant plugin install vagrant-vbguest

6. Vagrantfile で box設定

Vagrant の作業ディレクトリを作成する。

適当にフォルダを作成。

mkdir $HOME/vms/ubuntu-2204
cd $HOME/vms/ubuntu-2024

以下を入力し、Vagrantfileを生成。

vagrant init ubuntu/jammy64

以下が作成した設定ファイル

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/jammy64"
  config.disksize.size = "40GB"
  config.vm.network "private_network", ip: "192.168.33.10"
  config.vm.synced_folder "./share", "/share"

  config.vm.provider "virtualbox" do |vb|
    vb.gui    = false
    vb.cpus   = 2
    vb.memory = "4096"
  end

  config.vm.provision "docker"
end

設定ファイルの解説

SSHのポート番号の設定

guest: 22がゲストOSのポートで、host: 2222がホストOSのポート

ホストOSのポートが2222なのは普段使っている22と被らないようにするため。 

config.vm.network "forwarded_port", guest: 22, host: 2222, host_ip: "127.0.0.1", id: "ssh"

プライベートネットワークの設定

プライベートアドレスを設定する。ゲストOSにSSH以外でアクセスする際にこのIPアドレスでアクセスできる。

今回は192.168.33.10にした

config.vm.network "private_network", ip: "192.168.33.10"

フォルダの共有

mkdir ./share

左がホストOSのディレクトリで、右が対応するゲストOSのディレクトリ

config.vm.synced_folder "share", "/home/vagrant/share"

boxの設定

config.vm.provider "virtualbox" do |vb|
  vb.gui    = false  # GUIなし
  vb.cpus   = 2  # CPU数
  vb.memory = "4096"  # メモリ
end

プロビジョニング

この一行でdockerのインストールを行ってくれる。

config.vm.provision "docker"

7. Ubuntu 22.04 起動

6. Vagrantfile で box設定で作成した作業ディレクトリ内で、単に以下を実行する。

vagrant up

初回のみプラグインの反映のためリロードしろと言われるので起動が終わり次第、以下を実行する。

vagrant reload

起動後、停止したい場合は以下を実行する。

vagrant halt 

ターミナル上での SSH 接続は以下を実行する。

vagrant ssh

SSH の設定は以下を実行することで確認できる(vscode のRemote - SSHで接続する際に使用した。)

vagrant ssh-config
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?