Ctrl K
ComunidadGuías…

Vagrantfile

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
VM_NAME   = "avalug"
BOX_IMAGE = "debian/bookworm64"

DISKS = [
  { file: "disk_nvme.vdi", size_mb: 10 * 1024 },  # simulated NVMe 1TB -> 10G
  { file: "disk_hdd1.vdi", size_mb: 20 * 1024 },  # HDD 2TB -> 20G
  { file: "disk_hdd2.vdi", size_mb: 20 * 1024 },  # HDD 2TB -> 20G
  { file: "disk_hdd3.vdi", size_mb: 10 * 1024 },  # HDD 1TB -> 10G
]

Vagrant.configure("2") do |config|
  config.vm.box = BOX_IMAGE
  config.vm.hostname = VM_NAME
  config.vm.network "private_network", ip: "192.168.56.15"

  config.vm.provider "virtualbox" do |vb|
    vb.name = VM_NAME
    vb.memory = 4096
    vb.cpus = 4

    # SATA controller that ships with the box is usually "SATA Controller"
    controller = "SATA Controller"

    DISKS.each_with_index do |disk, i|
      disk_path = File.join(File.dirname(__FILE__), ".vagrant", "disks", disk[:file])

      unless File.exist?(disk_path)
        vb.customize [
          "createmedium", "disk",
          "--filename", disk_path,
          "--size", disk[:size_mb],
          "--format", "VDI"
        ]
      end

      vb.customize [
        "storageattach", :id,
        "--storagectl", controller,
        "--port", 1 + i,   # port 0 is the boot disk
        "--device", 0,
        "--type", "hdd",
        "--medium", disk_path
      ]
    end
  end

  # Basic package prep so you can build the RAID/LVM/Docker setup by hand
  # (or extend this script to fully automate it).
  config.vm.provision "shell", inline: <<-SHELL
    set -e
    export DEBIAN_FRONTEND=noninteractive
    apt-get update
    apt-get install -y lvm2 mdadm parted xfsprogs curl gnupg make vim

    test ! -f /dev/md/data && mdadm  --create /dev/md/data -R --level 1 --raid-devices 2 /dev/sdc /dev/sdd
    vgcreate vg_data /dev/md/data
    vgcreate vg_backup /dev/sde
    lvcreate -L 10G -n lv_data vg_data
    lvcreate -L 9G -n lv_backup vg_backup
    mkfs.ext4 /dev/vg_data/lv_data
    mkfs.ext4 /dev/vg_backup/lv_backup
    mkdir -p /mnt/{data,backup}
    mount /dev/vg_data/lv_data /mnt/data
    mount /dev/vg_backup/lv_backup /mnt/backup

  SHELL
end