WindowsでVagrant + VirtualBox Ubuntu 環境構築

Windows11でのVagrant / VirtualBox による Ubuntu 24.04 仮想環境の構築メモです。
2018年の記事 は、CentOSです。

構成は、
・Ubuntu 24.04
・Apache 2.4
です。

Vagrant インストール

こちらからVagrantをダウンロードします。
https://www.vagrantup.com/downloads.html

ダウンロードファイルをダブルクリックしてインストールします。
vagrant_2.4.1_windows_amd64.msi

VirtualBox インストール

https://www.virtualbox.org/wiki/Downloads

ダウンロードファイルをダブルクリックしてインストールします。
VirtualBox-7.0.18-162988-Win.exe

前提:Python core / win32api

このような画面がでたら、Python core / win32api のインストールが必要です。

1. Pythonインストール
※Windows Python(Python2.6以上または3)のインストールが必要です。
参考)
https://docs.oracle.com/en/virtualization/virtualbox/7.0/user/installation.html#install-win-performing

https://www.python.org/downloads/
こちらから最新のPythonをダウンロードしてインストールします。現時点のバージョン:3.12.4

コマンドプロンプト>pip --version
pip 22.2.1 from C:\Python310\lib\site-packages\pip (python 3.10)

2. インストール済みのパッケージを確認します。

コマンドプロンプト>pip list
Package    Version
---------- -------
pip        22.2.1
setuptools 63.2.0

[notice] A new release of pip available: 22.2.1 -> 24.1.1
[notice] To update, run: python.exe -m pip install --upgrade pip

更新します。

コマンドプロンプト>python.exe -m pip install --upgrade pip
Requirement already satisfied: pip in c:\python310\lib\site-packages (22.2.1)
Collecting pip
  Downloading pip-24.1.1-py3-none-any.whl (1.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 1.5 MB/s eta 0:00:00
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 22.2.1
    Uninstalling pip-22.2.1:
      Successfully uninstalled pip-22.2.1
Successfully installed pip-24.1.1

3. Python core / win32api をインストールします。

コマンドプロンプト>pip install pywin32

確認します。

コマンドプロンプト>pip list
Package    Version
---------- -------
pip        24.1.1
pywin32    306
setuptools 63.2.0

pywin32 があればok

Ubuntu Boxファイルの登録

Vagrant Cloud から適当なboxを探して登録します。
今回は、bento/ubuntu-24.04 にしました。
https://app.vagrantup.com/bento/boxes/ubuntu-24.04

code>vagrant box add bento/ubuntu-24.04

いきなりinitでもok。vagrantに追加されます。
>vagrant init bento/ubuntu-24.04

確認

codevagrant box list

bento/ubuntu-24.04 があればok。

Ubuntu 環境セットアップ

■ Vagrantfileの作成
vagrant init box名 で生成します。

codevagrant init bento/ubuntu-24.04

カレントディレクトリにVagrantfileができます。

■ Vagrantfile編集

// Windowsから見られるIP指定

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

// GUIモードの設定をONにする(不要な場合は、以下全てコメントのままでok)

codeconfig.vm.provider "virtualbox" do |vb|
# Display the VirtualBox GUI when booting the machine
vb.gui = true
end

■ VM起動

codevagrant up

vagrant halt
vagrant status
..

※起動時に、SSHセットアップで中断してしまう場合は、(config.vm.boot_timeoutをいじるよりも)
・vagrant destroy
・vagrant up
を繰り返してみます。

参考)
https://github.com/hashicorp/vagrant/issues/11987

■ ssh
※Vagrantfileのあるディレクトリから

codevagrant ssh

Ubuntu を最新版にします。

※vagrant destroy で削除されるので、注意!

VM起動(vagrant up)し、sshでアクセスします。
SSHクライアント「PuTTY」を利用する場合は、user / pw は vagrant / vagrant です。

コマンドプロンプト> vagrant ssh
Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-31-generic x86_64)
...
vagrant@gvagrant:~$

Ubuntu は パッケージ管理に apt を使います。
まず、インストールされているパッケージを最新版にしておきます。

ssh$ sudo apt update && sudo apt upgrade

必要に応じて再起動します。

コマンドプロンプト> vagrant reload 

Apache インストール

Apache をインストールします。

ssh$ sudo apt install apache2

$ apache2 -v
Server version: Apache/2.4.58 (Ubuntu)
Server built:   2024-04-18T15:13:41

2.4.58がインストールされました。
次に、Apacheを起動します。

ssh$ sudo service apache2 start

statusを確認します。

ssh$ sudo service apache2 status

ブラウザで確認できます。
http://localhost:8080/
※Vagrantfileでの設定が必要です。

Vagrantfile例Vagrant.configure("2") do |config|
  config.vm.box = "bento/ubuntu-24.04"
  config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
  config.vm.network "private_network", ip: "192.168.33.10"
  config.vm.synced_folder "./public/", "/var/www/html"
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "2048"
  end
end

自動起動に登録されていました。

ssh$ systemctl list-unit-files | grep apache2
apache2.service                              enabled         enabled
[email protected]                             disabled        enabled

Box 保存

上記のUbuntu + Apache 環境イメージを Box化します。
Vagrantfile のあるディレクトリで、次のコマンドで package.box が作成されます。

コマンドプロンプト> vagrant package

名前を指定する場合は、

コマンドプロンプト> vagrant package <VM name> --output <Box filename>
例えば
> vagrant package --output swd_ubuntu2404.box

参考)
https://developer.hashicorp.com/vagrant/docs/cli/package

これで、同じ環境を他で共有できます。
使用するときは、この Box を登録すればok。

コマンドプロンプト> vagrant box add <任意の名前> package.box
> vagrant box add swd/ubuntu-24.04 <path to box>/swd_ubuntu2404.box

> vagrant box list
<任意の名前>がリスト表示されるはず。

以上!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です