• Stars
    star
    298
  • Rank 135,151 (Top 3 %)
  • Language
    PowerShell
  • License
    MIT License
  • Created over 7 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Windows 10/11/2019/2022 Base Vagrant Box (https://app.vagrantup.com/rgl)

This builds Windows 10/11/2019/2022 base Vagrant boxes using Packer and VirtualBox/Hyper-V/libvirt/qemu.

Usage

Install VirtualBox (or libvirt on Linux based systems), packer 1.8.4+ and vagrant. If you are using Windows and Chocolatey, you can install everything from an administrative PowerShell session with:

choco install -y virtualbox packer vagrant msys2

# configure the msys2 launcher to let the shell inherith the PATH.
$msys2BasePath = 'C:\tools\msys64'
$msys2ConfigPath = "$msys2BasePath\msys2.ini"
[IO.File]::WriteAllText(
    $msys2ConfigPath,
    ([IO.File]::ReadAllText($msys2ConfigPath) `
        -replace '#?(MSYS2_PATH_TYPE=).+','$1inherit')
)

# define a function for easying the execution of bash scripts.
$bashPath = "$msys2BasePath\usr\bin\bash.exe"
function Bash($script) {
    $eap = $ErrorActionPreference
    $ErrorActionPreference = 'Continue'
    try {
        # we also redirect the stderr to stdout because PowerShell
        # oddly interleaves them.
        # see https://www.gnu.org/software/bash/manual/bash.html#The-Set-Builtin
        echo 'exec 2>&1;set -eu;export PATH="/usr/bin:$PATH";export HOME=$USERPROFILE;' $script | &$bashPath
        if ($LASTEXITCODE) {
            throw "bash execution failed with exit code $LASTEXITCODE"
        }
    } finally {
        $ErrorActionPreference = $eap
    }
}

Bash 'pacman --noconfirm -Sy make zip unzip tar p7zip dos2unix xorriso'

Open a bash shell by starting C:\tools\msys64\mingw64.exe and execute the remaining commands inside it.

To build the base box based on the Windows Server 2022 Evaluation ISO run:

make build-windows-2022-libvirt # or make build-windows-2022-virtualbox

If you want to use your own ISO, you need to manually run the packer command, e.g.:

packer build -var iso_url=<ISO_URL> -var iso_checksum=<ISO_SHA256_CHECKSUM> -only=windows-2022-amd64-virtualbox windows-2022.pkr.hcl

NB if the build fails with something like Post-processor failed: write /tmp/packer073329394/packer-windows-2022-amd64-virtualbox-1505050546-disk001.vmdk: no space left on device you need to increase your temporary partition size or change its location as described in the packer TMPDIR/TMP environment variable documentation.

NB if you are having trouble building the base box due to floppy drive removal errors try adding, as a workaround, "post_shutdown_delay": "30s", to the windows-2022.pkr.hcl file.

NB the packer logs are saved inside a *-packer.log file (e.g. windows-2022-amd64-libvirt-packer.log).

You can then add the base box to your local vagrant installation with:

vagrant box add -f windows-2022-amd64 windows-2022-amd64-virtualbox.box

And test this base box by launching an example Vagrant environment:

cd example
vagrant plugin install vagrant-windows-sysprep
vagrant up --no-destroy-on-error --provider=virtualbox # or --provider=libvirt

NB if you are having trouble running the example with the vagrant libvirt provider check the libvirt logs in the host (e.g. sudo tail -f /var/log/libvirt/qemu/example_default.log) and in the guest (inside C:\Windows\Temp).

Then test with a more complete example:

git clone https://github.com/rgl/customize-windows-vagrant
cd customize-windows-vagrant
vagrant up --no-destroy-on-error --provider=virtualbox # or --provider=libvirt

libvirt

Build the base box for the vagrant-libvirt provider with:

make build-windows-2022-libvirt

If you want to access the UI run:

spicy --uri 'spice+unix:///tmp/packer-windows-2022-amd64-libvirt-spice.socket'

NB the packer template file defines qemuargs (which overrides the default packer qemu arguments), if you modify it, verify if you also need include the default packer qemu arguments (see builder/qemu/step_run.go or start packer without qemuargs defined to see how it starts qemu).

Hyper-V usage

Install Hyper-V.

Make sure your user is in the Hyper-V Administrators group or you run with Administrative privileges.

Hyper-V automatically creates the Default Switch VM Switch and the vEthernet (Default Switch) network adapter/interface. It provides DHCP, DNS forwarding, and NAT internet access. But it cannot be configured, and it changes the assigned IP addresses at every boot; this makes it unusable for me. Instead you should run your own DHCP service and NAT virtual network.

Create the Vagrant vSwitch and NAT network in a PowerShell with Administrative privileges:

$name = 'Vagrant'
$ipAddress = '192.168.192.1'
$ipAddressPrefix = '24'

# create the vSwitch.
$vmSwitch = New-VMSwitch -SwitchName $name -SwitchType Internal

# reconfigure the vSwitch IP configuration to use a known IP and network and disable IPv6.
$netAdapterName = "vEthernet ($name)"
$netAdapter = Get-NetAdapter -Name $netAdapterName
$netAdapter | Disable-NetAdapterBinding -ComponentID ms_tcpip6
$netAdapter | Remove-NetIPAddress -Confirm:$false
$netAdapter | New-NetIPAddress -IPAddress $ipAddress -PrefixLength $ipAddressPrefix

# create the NAT network.
New-NetNat -Name $name -InternalIPInterfaceAddressPrefix "$ipAddress/$ipAddressPrefix"

Then, install and start the WinDHCP DHCP service.

Make sure the Virtual Switch (its vEthernet network adapter) is excluded from the Windows Firewall protected network connections by executing the following commands in a bash shell with Administrative privileges:

PowerShell -Command 'Get-NetFirewallProfile | Select-Object -Property Name,DisabledInterfaceAliases'
PowerShell -Command 'Set-NetFirewallProfile -DisabledInterfaceAliases (Get-NetAdapter -name "vEthernet*" | Where-Object {$_.ifIndex}).InterfaceAlias'

Create the base image in a bash shell with Administrative privileges:

cat >secrets.sh <<'EOF'
# set this value when you need to set the VM Switch Name.
export HYPERV_SWITCH_NAME='Vagrant'

# set this value 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.sh
time make build-windows-2022-hyperv

Try the example guest:

NB You will need Administrative privileges to create the SMB share.

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 --no-destroy-on-error --provider=hyperv
vagrant ssh
exit
vagrant destroy -f

VMware vSphere

Download the Windows Evaluation ISO (you can find the full iso URL in the windows-2022-vsphere.pkr.hcl file) and place it inside the datastore as defined by the vsphere_iso_url user variable that is inside the packer template.

Download the VMware Tools VMware-tools-windows-<SAME_VERSION_AS_IN_PACKER_TEMPLATE>.iso file into the datastore defined by the vsphere_tools_iso_url user variable that is inside the packer template.

Download govc and place it inside your /usr/local/bin directory.

Install the vsphere vagrant plugin, set your vSphere details, and test the connection to vSphere:

sudo apt-get install build-essential patch ruby-dev zlib1g-dev liblzma-dev
vagrant plugin install vagrant-vsphere
vagrant plugin install vagrant-windows-sysprep
cat >secrets.sh <<'EOF'
export GOVC_INSECURE='1'
export GOVC_HOST='vsphere.local'
export GOVC_URL="https://$GOVC_HOST/sdk"
export GOVC_USERNAME='[email protected]'
export GOVC_PASSWORD='password'
export GOVC_DATACENTER='Datacenter'
export GOVC_CLUSTER='Cluster'
export GOVC_DATASTORE='Datastore'
export VSPHERE_ESXI_HOST='esxi.local'
export VSPHERE_TEMPLATE_FOLDER='test/templates'
# NB the VSPHERE_TEMPLATE_NAME last segment MUST match the
#    builders.vm_name property inside the packer tamplate.
export VSPHERE_TEMPLATE_NAME="$VSPHERE_TEMPLATE_FOLDER/windows-2022-amd64-vsphere"
export VSPHERE_TEMPLATE_IPATH="//$GOVC_DATACENTER/vm/$VSPHERE_TEMPLATE_NAME"
export VSPHERE_VM_FOLDER='test'
export VSPHERE_VM_NAME='windows-2022-vagrant-example'
export VSPHERE_VLAN='packer'
# 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=''
EOF
source secrets.sh
# see https://github.com/vmware/govmomi/blob/master/govc/USAGE.md
govc version
govc about
govc datacenter.info # list datacenters
govc find # find all managed objects

Build the base box with:

make build-windows-2022-vsphere

Try the example guest:

source secrets.sh
cd example
echo $VSPHERE_TEMPLATE_NAME # check if you are using the expected template.
vagrant up --no-destroy-on-error --provider=vsphere
vagrant ssh
exit
vagrant destroy -f

Non-Administrator account

The above example uses the administrator account, but you can use a less privileged account like in the following example.

Example

First, review the glossary:

Privilege
The ability to perform a specific action or read a specific property.
Role
A collection of privileges. Roles provide a way to aggregate all the individual privileges that are required to perform a higher-level task.
Permission
Consists of a user or group and an assigned role for an inventory object.

Then follow the next steps to create an example configuration.

In the vSphere Single Sign-On (SSO) configuration page create a Vagrants group and add your non-administrator user to it.

In the vSphere Access Control page create a Vagrant role with the privileges:

  • Datastore
    • Allocate space
  • Network
    • Assign network
  • Resource
    • Assign virtual machine to resource pool
  • Virtual machine
    • Provisioning
      • Deploy template

In vSphere configure the following Inventory Objects permissions:

Inventory Object Role Principal (User or Group) Propagate
Datacenter Vagrant VSPHERE.LOCAL\Vagrants yes
test Administrator VSPHERE.LOCAL\Vagrants yes

NB test is a folder that will store the virtual machines launched by vagrant.

For more information see the vSphere Virtual Machine Administration/Required Privileges for Common Tasks document in the vSphere Virtual Machine Administration manual.

SSH access

You can connect to this machine through SSH to run a remote command, e.g.:

ssh -p 2222 vagrant@localhost "whoami /all"

NB the exact SSH address and port can be obtained with vagrant ssh-config.

NB we cannot use the vagrant SMB shared folder type when using the winssh communicator; it will fail to mount the shared folder with the error:

cmdkey /add:192.168.1.xxx /user:xxx /pass:"*****"
CMDKEY: Credentials cannot be saved from this logon session.

NB this is a Windows design restriction that prevents remote network logon sessions from accessing certain parts of the system.

NB this is why the default vagrant box communicator is winrm.

PowerShell Remoting over SSH

You can connect to this machine through PowerShell Remoting over SSH. In a Linux (or Windows) PowerShell 7 session execute, e.g.:

Enter-PSSession -HostName vagrant@localhost:2222
$PSVersionTable
whoami /all
exit

WinRM access

You can connect to this machine through WinRM to run a remote command. In a Windows Command Prompt session execute, e.g.:

winrs -r:localhost:55985 -u:vagrant -p:vagrant "whoami /all"

NB the exact local WinRM port should be displayed by vagrant, in this case:

==> default: Forwarding ports...
    default: 5985 (guest) => 55985 (host) (adapter 1)

PowerShell Remoting over WinRM

You can connect to this machine through PowerShell Remoting over WinRM. In a Windows PowerShell 7 session execute, e.g.:

# Configure this machine WinRM client to trust all remote servers.
# NB Since this local client machine is not in the AD nor its using HTTPS to
#    access the server, we must configure it to trust the server, or in this
#    case, trust all servers.
Set-Item WSMan:\localhost\Client\TrustedHosts -Value '*' -Force

# Open a session and execute commands remotely.
# NB To open a PowerShell 5 session, remove the -ConfigurationName argument.
Enter-PSSession -ConfigurationName PowerShell.7 -ComputerName localhost -Port 55985 -Credential vagrant
Get-PSSessionConfiguration  # show the availble configurations.
$PSVersionTable             # show the powershell version.
whoami /all                 # show the user permissions.
exit                        # exit the session.

WinRM and UAC (aka LUA)

This base image uses WinRM. WinRM poses several limitations on remote administration, those were worked around by disabling User Account Control (UAC) (aka Limited User Account (LUA)) in autounattend.xml and UAC remote restrictions in provision-winrm.ps1.

If needed, you can later enable them with:

Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name EnableLUA -Value 1
Set-ItemProperty -Path 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Policies\System' -Name EnableLUA -Value 1
Remove-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name LocalAccountTokenFilterPolicy
Restart-Computer

Or disable them with:

Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name EnableLUA -Value 0
Set-ItemProperty -Path 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Policies\System' -Name EnableLUA -Value 0
New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name LocalAccountTokenFilterPolicy -Value 1 -Force
Restart-Computer

Windows Unattended Installation

When Windows boots from the installation media its Setup application loads the a:\autounattend.xml file. It contains all the answers needed to automatically install Windows without any human intervention. For more information on how this works see OEM Windows Deployment and Imaging Walkthrough.

autounattend.xml was generated with the Windows System Image Manager (WSIM) application that is included in the Windows Assessment and Deployment Kit (ADK).

Windows ADK

To create, edit and validate the a:\autounattend.xml file you need to install the Deployment Tools that are included in the Windows ADK.

If you are having trouble installing the ADK (adksetup) or running WSIM (imgmgr) when your machine is on a Windows Domain and the log has:

Image path is [\??\C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\DISM\wimmount.sys]
Could not acquire privileges; GLE=0x514
Returning status 0x514

It means there's a group policy that is restricting your effective permissions, for an workaround, run adksetup and imgmgr from a SYSTEM shell, something like:

psexec -s -d -i cmd
adksetup
cd "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\WSIM"
imgmgr

For more information see Error installing Windows ADK.

More Repositories

1

packer-plugin-windows-update

Packer plugin for installing Windows updates
PowerShell
266
star
2

windows-domain-controller-vagrant

Example Windows Domain Controller
PowerShell
130
star
3

proxmox-ve

Proxmox VE Vagrant Base Box
Shell
82
star
4

elasticsearch-setup

elasticsearch oss installer for windows.
PowerShell
76
star
5

terraform-provider-vultr

This is a terraform provider for the Vultr cloud
Go
66
star
6

pxe-vagrant

a Preboot Execution Environment (PXE) gateway
Shell
51
star
7

k3s-vagrant

k3s k8s cluster playground
Shell
48
star
8

jenkins-vagrant

Vagrant Environment for a Jenkins Continuous Integration server
Shell
41
star
9

ovftool-binaries

VMware OVF Tool binaries archived for posterity
34
star
10

ubuntu-vagrant

Ubuntu Linux Vagrant Base Box (https://app.vagrantup.com/rgl)
Shell
33
star
11

visual-studio-community-vagrant

Vagrant Environment for Visual Studio Community
PowerShell
30
star
12

gitlab-vagrant

Basic GitLab Vagrant Environment
Shell
30
star
13

alpine-vagrant

This builds an up-to-date Vagrant Alpine Linux Base Box
Shell
29
star
14

proxmox-ve-cluster-vagrant

a 3-node proxmox-ve cluster wrapped in a vagrant environment
Shell
28
star
15

uup-dump-get-windows-iso

Create an iso file with the latest Windows available from the Unified Update Platform (UUP)
PowerShell
23
star
16

terraform-libvirt-talos

example Talos Linux Kubernetes cluster in libvirt QEMU/KVM Virtual Machines using terraform
HCL
23
star
17

minimal-cocoa-app

Minimal code needed to create a Cocoa Application from scratch; no Xcode used.
Objective-C
23
star
18

MailBounceDetector

Detects whether a MailKit email Message is a bounce message
C#
22
star
19

nexus-vagrant

Vagrant Environment for a Nexus Repository OSS service
Shell
22
star
20

talos-vagrant

Vagrant Environment for playing with Talos
Shell
19
star
21

ansible-collection-tp-link-easy-smart-switch

Manage TP-Link Easy Smart Switches with Ansible
Python
19
star
22

windows-evaluation-isos-scraper

Scrapes the Windows Evaluation ISO addresses into a JSON data file
PowerShell
19
star
23

tinkerbell-vagrant

Vagrant Environment for playing with Tinkerbell for provisioning AMD64 and ARM64 machines
Shell
18
star
24

frp-github-actions-reverse-shell

open a reverse-shell in a GitHub Actions job
Shell
18
star
25

PowerShellExporter

Exports the results of PowerShell cmdlets as Prometheus Gauge Metrics
C#
17
star
26

intel-amt-notes

notes about intel amt
17
star
27

my-windows-ansible-playbooks

My Windows Ansible Playbooks Playground
PowerShell
16
star
28

windows-pe-vagrant

An example Windows PE (WinPE) iso built in a vagrant environment
PowerShell
15
star
29

vagrant-windows-update

Vagrant plugin for installing Windows updates
Ruby
14
star
30

sql-server-vagrant

SQL Server Express Vagrant environment
PowerShell
13
star
31

mail-vagrant

A Mail Server in a Vagrant sandbox
Shell
13
star
32

esxi-vagrant

ESXi running in QEMU/KVM/libvirt/ESXi wrapped in a vagrant environment
Shell
13
star
33

rpi4-uefi-ipxe

UEFI iPXE for the Raspberry Pi 4 ARM64
Shell
13
star
34

docker-ce-windows-binaries-vagrant

Vagrant Environment for building the static moby (upstream of docker-ce) Windows binaries
Shell
12
star
35

debian-live-builder-vagrant

Vagrant Environment for creating custom Debian Live ISO images
Shell
10
star
36

vagrant-windows-sysprep

Vagrant plugin to run Windows sysprep as a provisioning step
Ruby
10
star
37

macos-vagrant

Vagrant Environment for creating a macOS Base Box
Makefile
10
star
38

seeedstudio-odyssey-x86j4105-notes

notes about the seeedstudio odyssey x86j4105 mini-computer
10
star
39

my-ubuntu-ansible-playbooks

My Ubuntu Ansible Playbooks Playground
Shell
9
star
40

terraform-vsphere-ubuntu-example

HCL
9
star
41

terraform-libvirt-windows-example

HCL
9
star
42

raspberrypi-uefi-edk2-vagrant

Raspberry Pi 4 UEFI EDK2 build environment inside a vagrant box
Shell
9
star
43

prometheus-vagrant

Prometheus and Grafana playground
PowerShell
9
star
44

kubernetes-ubuntu-vagrant

kubeadm created kubernetes playground wrapped in a vagrant environment
Shell
9
star
45

apt-cache-vagrant

Vagrant Environment for an APT Caching Proxy
Shell
8
star
46

awx-vagrant

My Ansible AWX playground
Shell
8
star
47

gitlab-source-link-proxy

GitLab Source Link Proxy
Go
8
star
48

debian-vagrant

This builds an up-to-date Vagrant Debian Base Box
Shell
8
star
49

sonarqube-vagrant

Vagrant Environment for a SonarQube based Source Code Analysis service
Shell
8
star
50

rke2-vagrant

A rke2 kubernetes cluster playground wrapped in a Vagrant environment
Shell
7
star
51

try-puppeteer-in-bun

try puppeteer in bun
JavaScript
7
star
52

docker-swarm-cluster-ubuntu-vagrant

a 3-node docker swarm cluster wrapped in a vagrant environment
Shell
7
star
53

make_dmg

This lets you create a OS X dmg file. Normally used to install applications.
Perl
7
star
54

linuxkit-vagrant

Vagrant environment for playing with LinuxKit
Shell
7
star
55

ovmf-secure-boot-vagrant

ovmf secure boot playground
Shell
7
star
56

docker-windows-core-insider-2016-vagrant

a Docker on Windows Server Core Insider 2016 Vagrant environment for playing with Windows containers
PowerShell
7
star
57

ResourceExtractor

This lists and extract the resources embedded inside an executable file (.exe, .dll, etc.)
C#
7
star
58

k0s-vagrant

a k0s kubernetes cluster wrapped in a vagrant environment
Shell
6
star
59

gitlab-ci-vagrant

GitLab-CI runner nodes
PowerShell
6
star
60

terraform-libvirt-ubuntu-example

example on how to launch a ubuntu vm using terraform-libvirt
HCL
6
star
61

OpenHardwareMonitorExporter

Open Hardware Monitor Prometheus Exporter
C#
6
star
62

terramate-aws-ecr-example

an example private container image repository hosted in the AWS Elastic Container Registry (ECR) of your AWS Account using terramate with terraform
Shell
6
star
63

terraform-proxmox-talos

An example Talos Linux Kubernetes cluster in Proxmox QEMU/KVM Virtual Machines using terraform
HCL
6
star
64

terraform-libvirt-ansible-windows-example

HCL
5
star
65

lxd-github-actions-runner

Execute a self-hosted GitHub Actions Runner in a ephemeral LXD container
Go
5
star
66

terraform-vsphere-windows-example

HCL
5
star
67

terraform-libvirt-rke-example

an example RKE cluster in libvirt QEMU/KVM Virtual Machines using terraform
HCL
5
star
68

sidero-vagrant

Vagrant Environment for a playing with Sidero.
Shell
5
star
69

docker-windows-2019-vagrant

docker on windows playground
PowerShell
5
star
70

tls-dump-clienthello

this dumps the TLS ClientHello message to stdout. this might be useful when testing your TLS client settings.
PowerShell
5
star
71

infra-toolbox

a toolbox for launching infrastructure wrapped in a vagrant environment
Shell
5
star
72

nginx-rtmp-module-vagrant

HTTP Live Streaming (HLS) server based on the nginx-rtmp-module, ffmpeg and the html video element
Shell
5
star
73

gitlab-ci-validate-jwt

Validate a GitLab CI JWT using the keys available at its jwks endpoint
Go
5
star
74

openssh-server-windows-vagrant

vagrant environment to test PowerShell/Win32-OpenSSH
PowerShell
4
star
75

spire-vagrant

SPIFFE/SPIRE playground
Shell
4
star
76

python-wazero-poc

This will try to create a single-file binary to execute an embedded Python script
Go
4
star
77

xfce-desktop-vagrant

Shell
4
star
78

example-aws-aad-sso

This integrates the AWS IAM Identity Center with the Azure AD as a SSO solution.
HCL
4
star
79

intel-amt-toggle-power-example

toggles the power of a remote system using the intel amt remote api
JavaScript
4
star
80

dig-setup

Have the dig command on your Windows machine!
Inno Setup
4
star
81

squid-cache-vagrant

Vagrant Environment for a Intercepting and Caching Web Proxy using Squid Cache
PowerShell
4
star
82

customize-windows-vagrant

Programmatically customize Windows through PowerShell
PowerShell
4
star
83

openwrt-vagrant

This creates a OpenWrt base virtual machine image
Shell
4
star
84

tpm-go-attestation-vagrant

tpm go-attestation playground
Go
3
star
85

get-iso-info

Outputs the Primary Volume Descriptor Creation Date of a ISO 9660 file
C#
3
star
86

loki-grafana-vagrant

example loki vagrant environment
Shell
3
star
87

centos-vagrant

Vagrant CentOS Base Box
Shell
3
star
88

go-nmea

NMEA 0183 parser to parse the output of a GPS module
Go
3
star
89

cur2png

Convert cursor files (.cur) into .png files so we can use them in screenshots or web pages
C#
3
star
90

packer-qemu-ansible-windows-example

provision a VM image using Ansible from a Packer template
HCL
3
star
91

windows-deployment-services-vagrant

Example Windows Deployment Services (WDS) vagrant environment
PowerShell
3
star
92

vault-vagrant

vault playground
Shell
3
star
93

selenium-server-windows-vagrant

Selenium Server running on Windows with Vagrant
PowerShell
3
star
94

swtpm-vagrant

a vagrant environment to play with swtpm
Shell
3
star
95

usb-hdmi-video-capture

information about cheap usb hdmi video capture dongle
3
star
96

wip-secure-boot

3
star
97

raspberrypi-kernel-iscsi-initrd

This contains the initrd binaries needed to boot a rpi from iSCSI
Shell
3
star
98

example-dotnet-source-link

example nuget library and application that uses source link and embedded portable pdbs to be able to step into a nuget package source code
PowerShell
3
star
99

lxd-exec-example

Execute a command inside an lxd container while capturing its output and forwarding the Ctrl+C signal
Go
3
star
100

rtc-i2c-ds3231-rpi

Example DS3231 RTC module used by a Raspberry Pi
3
star