Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rgl/debian-vagrant
This builds an up-to-date Vagrant Debian Base Box
https://github.com/rgl/debian-vagrant
debian libvirt packer proxmox vagrant
Last synced: 2 months ago
JSON representation
This builds an up-to-date Vagrant Debian Base Box
- Host: GitHub
- URL: https://github.com/rgl/debian-vagrant
- Owner: rgl
- Created: 2016-12-03T09:41:19.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-09-28T12:06:00.000Z (3 months ago)
- Last Synced: 2024-11-02T06:31:05.369Z (2 months ago)
- Topics: debian, libvirt, packer, proxmox, vagrant
- Language: HCL
- Homepage:
- Size: 149 KB
- Stars: 14
- Watchers: 3
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome - rgl/debian-vagrant - This builds an up-to-date Vagrant Debian Base Box (vagrant)
README
This builds an up-to-date Vagrant Debian Base Box.
Currently this targets [Debian 12 (Bookworm)](https://www.debian.org/releases/bookworm/).
# Usage
Install Packer 1.9+ and Vagrant 2.3+.
## Ubuntu Host
On a Ubuntu host, install the dependencies by running the file at:
https://github.com/rgl/xfce-desktop-vagrant/blob/master/provision-virtualization-tools.sh
And you should also install and configure the NFS server. E.g.:
```bash
# install the nfs server.
sudo apt-get install -y nfs-kernel-server# enable password-less configuration of the nfs server exports.
sudo bash -c 'cat >/etc/sudoers.d/vagrant-synced-folders' <<'EOF'
Cmnd_Alias VAGRANT_EXPORTS_CHOWN = /bin/chown 0\:0 /tmp/*
Cmnd_Alias VAGRANT_EXPORTS_MV = /bin/mv -f /tmp/* /etc/exports
Cmnd_Alias VAGRANT_NFSD_CHECK = /etc/init.d/nfs-kernel-server status
Cmnd_Alias VAGRANT_NFSD_START = /etc/init.d/nfs-kernel-server start
Cmnd_Alias VAGRANT_NFSD_APPLY = /usr/sbin/exportfs -ar
%sudo ALL=(root) NOPASSWD: VAGRANT_EXPORTS_CHOWN, VAGRANT_EXPORTS_MV, VAGRANT_NFSD_CHECK, VAGRANT_NFSD_START, VAGRANT_NFSD_APPLY
EOF
```For more information see the [Vagrant NFS documentation](https://www.vagrantup.com/docs/synced-folders/nfs.html).
## Windows Host
On a Windows host, install [Chocolatey](https://chocolatey.org/install), then execute the following PowerShell commands in a Administrator PowerShell window:
```powershell
choco install -y packer vagrant jq msys2
```Then open a bash shell by starting `C:\tools\msys64\mingw64.exe` and install the remaining dependencies:
```bash
pacman --noconfirm -Sy make zip unzip tar dos2unix netcat procps xorriso mingw-w64-x86_64-libcdio
for n in /*.ini; do
sed -i -E 's,^#?(MSYS2_PATH_TYPE)=.+,\1=inherit,g' $n
done
exit
```**NB** The commands described in this README should be executed in a mingw64 bash shell.
## qemu-kvm usage
Install qemu-kvm:
```bash
apt-get install -y qemu-kvm
apt-get install -y sysfsutils
systool -m kvm_intel -v
```Type `make build-libvirt` and follow the instructions.
Try the example guest:
```bash
cd example
apt-get install -y virt-manager libvirt-dev
vagrant plugin install vagrant-libvirt # see https://github.com/vagrant-libvirt/vagrant-libvirt
vagrant up --provider=libvirt --no-destroy-on-error
vagrant ssh
exit
vagrant destroy -f
```## proxmox usage
Install [proxmox](https://www.proxmox.com/en/proxmox-ve).
**NB** This assumes proxmox was installed alike [rgl/proxmox-ve](https://github.com/rgl/proxmox-ve).
Set your proxmox details:
```bash
cat >secrets-proxmox.sh <secrets-hyperv.sh <<'EOF'
# set this value when you need to set the VM Switch Name.
export HYPERV_SWITCH_NAME='Default Switch'
# set this environment variable when you need to set the VM VLAN ID.
#export HYPERV_VLAN_ID=''
# set the credentials that the guest will use
# to connect to this host smb share.
# NB you should create a new local user named _vagrant_share
# and use that one here instead of your user credentials.
# NB it would be nice for this user to have its credentials
# automatically rotated, if you implement that feature,
# let me known!
export VAGRANT_SMB_USERNAME='_vagrant_share'
export VAGRANT_SMB_PASSWORD=''
# remove the virtual switch from the windows firewall.
# NB execute if the VM fails to obtain an IP address from DHCP.
PowerShell -Command 'Set-NetFirewallProfile -DisabledInterfaceAliases (Get-NetAdapter -name "vEthernet*" | Where-Object {$_.ifIndex}).InterfaceAlias'
EOF
source secrets-hyperv.sh
make build-hyperv
```Try the example guest:
**NB** You will need Administrative privileges to create the SMB share.
```bash
cd example
# grant $VAGRANT_SMB_USERNAME full permissions to the
# current directory.
# NB you must first install the Carbon PowerShell module
# with choco install -y carbon.
# TODO set VM screen resolution.
PowerShell -Command 'Import-Module Carbon; Grant-Permission . $env:VAGRANT_SMB_USERNAME FullControl'
vagrant up --provider=hyperv --no-destroy-on-error
vagrant ssh
exit
vagrant destroy -f
```## VMware vSphere usage
Download [govc](https://github.com/vmware/govmomi/releases/latest) and place it inside your `/usr/local/bin` directory.
Set your vSphere details, and test the connection to vSphere:
```bash
sudo apt-get install build-essential patch ruby-dev zlib1g-dev liblzma-dev
vagrant plugin install vagrant-vsphere
cat >secrets-vsphere.sh <