diff --git a/roles/desk-virtualbox/README.md b/roles/desk-virtualbox/README.md new file mode 100644 index 00000000..7cda3554 --- /dev/null +++ b/roles/desk-virtualbox/README.md @@ -0,0 +1,9 @@ +# pc-virtual-box + +```bash + sudo pacman -S virtualbox "$(pacman -Qsq "^linux" | grep "^linux[0-9]*[-rt]*$" | awk '{print $1"-virtualbox-host-modules"}' ORS=' ')" && + sudo vboxreload && + pamac build virtualbox-ext-oracle && + sudo gpasswd -a "$USER" vboxusers || exit 1 + echo "Keep in mind to install the guest additions in the virtualized system. See https://wiki.manjaro.org/index.php?title=VirtualBox" +``` \ No newline at end of file diff --git a/roles/desk-virtualbox/handlers/main.yml b/roles/desk-virtualbox/handlers/main.yml new file mode 100644 index 00000000..702c8973 --- /dev/null +++ b/roles/desk-virtualbox/handlers/main.yml @@ -0,0 +1,4 @@ +--- +- name: reload virtualbox kernel modules + become: true + command: vboxreload diff --git a/roles/desk-virtualbox/meta/main.yml b/roles/desk-virtualbox/meta/main.yml new file mode 100644 index 00000000..286d168f --- /dev/null +++ b/roles/desk-virtualbox/meta/main.yml @@ -0,0 +1,23 @@ +--- +galaxy_info: + author: "Kevin Veen-Birchenbach" + description: "Installs and configures VirtualBox and its kernel modules on Pacman-based systems, including extension packs and user group setup." + license: "CyMaIS NonCommercial License (CNCL)" + license_url: "https://s.veen.world/cncl" + company: | + Kevin Veen-Birkenbach + Consulting & Coaching Solutions + https://www.veen.world + galaxy_tags: + - virtualbox + - virtualization + - kernel-modules + repository: "https://github.com/kevinveenbirkenbach/cymais" + issue_tracker_url: "https://github.com/kevinveenbirkenbach/cymais/issues" + documentation: "https://github.com/kevinveenbirkenbach/cymais/tree/main/roles/desk-virtual-box" + min_ansible_version: "2.9" + platforms: + - name: Archlinux + versions: + - all +dependencies: [] diff --git a/roles/desk-virtualbox/tasks/main.yml b/roles/desk-virtualbox/tasks/main.yml new file mode 100644 index 00000000..ed1c923c --- /dev/null +++ b/roles/desk-virtualbox/tasks/main.yml @@ -0,0 +1,28 @@ +--- +- name: Install VirtualBox and kernel modules + become: true + pacman: + name: >- + virtualbox + {{ lookup('pipe', "pacman -Qsq '^linux' | grep '^linux[0-9]*[-rt]*$' | awk '{print $1 \"-virtualbox-host-modules\"}' ORS=' '") }} + state: present + update_cache: true + +- name: Load vbox kernel modules + become: true + command: vboxreload + register: vboxreload_output + failed_when: vboxreload_output.rc != 0 and '"vboxdrv"' not in vboxreload_output.stderr + +- name: Build and install Oracle VirtualBox extension pack + become: true + command: pamac build --no-confirm virtualbox-ext-oracle + args: + creates: /usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack + +- name: Add current user to vboxusers group + become: true + user: + name: "{{ lookup('env','USER') }}" + groups: vboxusers + append: yes diff --git a/roles/desk-virtualbox/vars/main.yml b/roles/desk-virtualbox/vars/main.yml new file mode 100644 index 00000000..3a24e4d5 --- /dev/null +++ b/roles/desk-virtualbox/vars/main.yml @@ -0,0 +1 @@ +application_id: desk-virtualbox