No description
Find a file
2026-06-03 12:24:03 +02:00
roles/kde_desktop Disable KDE screen lock and blanking for vagrant 2026-06-03 12:24:03 +02:00
.gitignore Add .gitignore to ignore Vagrant and log files 2026-06-03 00:10:59 +02:00
playbook.yml Extract KDE Desktop tasks into kde_desktop role. 2026-06-03 00:34:51 +02:00
README.md Add VirtualBox support and update README 2026-06-03 11:24:13 +02:00
Vagrantfile Add VirtualBox support and update README 2026-06-03 11:24:13 +02:00

Kali Linux (Vagrant)

Vagrant project that provisions a Kali Linux rolling VM with a KDE Plasma desktop. The base box is customized via Ansible after the VM is created.

The Vagrantfile is tailored for libvirt and VirtualBox. The upstream kalilinux/rolling box also supports other providers (e.g. VMware Desktop, Hyper-V); those are not configured here but could be added in the same way.

Requirements

libvirt (Linux):

On Arch Linux, typical packages: vagrant, vagrant-libvirt, libvirt, qemu-full, and membership in the libvirt group.

VirtualBox:

  • VirtualBox on the host (built-in Vagrant provider)

Usage

Pick the provider that matches your host. Each provider needs its own box download (same box name and version).

vagrant up --provider=libvirt
# or
vagrant up --provider=virtualbox

Other common commands:

vagrant ssh
vagrant halt
vagrant destroy
vagrant provision   # re-run Ansible without recreating the VM

Display settings differ by provider: libvirt uses SPICE/QXL (remote viewer or local GUI when supported); VirtualBox opens a GUI window (vb.gui = true).

What gets provisioned

playbook.yml applies the kde_desktop Ansible role, which:

  • Installs kali-desktop-kde and removes the default XFCE metapackage
  • Sets KDE Plasma on Wayland as the default session (startplasma-wayland)
  • Uses SDDM as the display manager (disables LightDM if present)
  • Enables graphical boot and autologin for user vagrant into Plasma
  • Sets timezone to Europe/Berlin and German keyboard layout (system and KDE)

Box pin in the Vagrantfile: kalilinux/rolling version 2026.1.0.

Project layout

Path Purpose
Vagrantfile VM providers (libvirt, VirtualBox), resources, Ansible provisioner
playbook.yml Main Ansible playbook
roles/kde_desktop/ Desktop, locale, and display-manager configuration

Notes

  • First vagrant up downloads the box and runs provisioning; this can take a while.
  • .vagrant/ and *.log are gitignored.
  • If libvirt networking or permissions fail, check that the libvirt daemon is running and your user can access it (e.g. libvirt group, virsh list).