vagrant virtualbox で rockylinux8 を実行する

virtualbox + rhel9 はまだ出来ないっぽい(Hyper-Vだと出来るらしいが windows home では対象外)ので rocky linux 8 を実行する

## Vagrantfile

rockylinux/8 のボックスを使う
https://app.vagrantup.com/rockylinux/boxes/8

```ruby
Vagrant.configure("2") do |config|
  config.vm.box = "rockylinux/8"
  # config.vm.network "forwarded_port", guest: 80, host: 8080
  # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
  # config.vm.network "private_network", ip: "192.168.56.12"
  config.vm.synced_folder ".", "/vagrant", type:"virtualbox"
  config.vm.disk :disk, size: "10GB", primary: true
  # config.vm.network "public_network"
  config.vm.provider "virtualbox" do |vb|
    #   vb.gui = true
    vb.memory = "2048"
  end
  #if Vagrant.has_plugin?("vagrant-vbguest")
  #  config.vbguest.auto_update = false  
  #end  
  config.omnibus.chef_version = :latest
  config.vm.provision "chef_zero" do |chef|
    chef.install = false
    chef.cookbooks_path = ["chef-repo/cookbooks", "chef-repo/site-cookbooks"]
    chef.nodes_path = ["chef-repo/nodes"]
    chef.node_name = "server"
    chef.arguments = "--chef-license accept"
  end

end
```

provisionまで書いてはいるけどそれは別途。

## 起動

```
PS> vagrant up
```

これで本来ならサクッと起動して即利用可能のはずなのだが、VBoxGuestAddition の要求が変なのかなんなのか、共有フォルダの設定とかうまくいかない。

それと rockylinux/8 はVMのディスクサイズが5G なのであれやこれやと追加パッケージをインストールするとあっという間に Disk Full でどうにもならなくなるので以下で対応する

## ディスクサイズを拡張する

### VMのディスクサイズを拡張する

Vagrantfile でディスクサイズを指定する

```
  config.vm.disk :disk, size: "10GB", primary: true
```

vagrant のお試し機能を利用してディスクサイズを拡張する

```
PS> $env:VAGRANT_EXPERIMENTAL="disks"
PS> vagrant up
```

ボックスによっては上記だけでゲストの内側からのサイズが拡張されていて直ぐに利用可能なのだけど、今回の組み合わせでは駄目らしいのでゲストにログインしてパーティションサイズを変更したりする

### パーティションサイズを拡張する

ゲストにログインして

```
PS> vagrant ssh
```

parted を使用してパーティションサイズを変更する

```
[vagrant@localhost ~]$ sudo parted
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  5369MB  5368MB  primary  xfs          boot

(parted) unit s
(parted) resize
resize      resizepart
(parted) print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 20971520s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start  End        Size       Type     File system  Flags
 1      2048s  10485759s  10483712s  primary  xfs          boot

(parted) resizepart 1 20971519
Warning: Partition /dev/sda1 is being used. Are you sure you want to continue?
Yes/No? yes
(parted) print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 20971520s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start  End        Size       Type     File system  Flags
 1      2048s  20971519s  20969472s  primary  xfs          boot

(parted)
```

`(parted)` がプロンプトとなるので、`help` とか入力して使い方を調べられる。

XFS領域を拡張する

```
[vagrant@localhost ~]$ sudo xfs_growfs /dev/sda1
meta-data=/dev/sda1              isize=512    agcount=4, agsize=327616 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=1310464, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 1310464 to 2621184
[vagrant@localhost ~]$ df -l
Filesystem     1K-blocks    Used Available Use% Mounted on
devtmpfs          994600       0    994600   0% /dev
tmpfs            1012196       0   1012196   0% /dev/shm
tmpfs            1012196   16732    995464   2% /run
tmpfs            1012196       0   1012196   0% /sys/fs/cgroup
/dev/sda1       10474496 3628528   6845968  35% /
tmpfs             202436       0    202436   0% /run/user/1000
```

`df` で / が拡張されたのを確認しておく。

## VBoxGuestAddition が要求するライブラリをインストールする

色々と足らないモノがあるのでインストールする

```
sudo dnf install -y wget
sudo dnf install -y epel-release
sudo dnf -y update
sudo dnf -y update kernel && sudo dnf -y install kernel-devel kernel-headers make bzip2 gcc
sudo dnf install -y elfutils-libelf-devel
sudo dnf install -y libX11
sudo dnf install -y libXt
sudo dnf install -y libXext
sudo dnf install -y libXmu
```

## 再起動

```
PS> vagrant reload
```

とか。
時々reload も失敗することがある。あきらめずに `vagrant halt` `vagrant uup` とかするときれいに実行される