70 lines
1.6 KiB
YAML
70 lines
1.6 KiB
YAML
---
|
|
- name: Install prerequisites
|
|
apt:
|
|
name:
|
|
- apt-transport-https
|
|
- ca-certificates
|
|
- gnupg
|
|
- lsb-release
|
|
- dkms
|
|
- build-essential
|
|
state: present
|
|
update_cache: yes
|
|
|
|
- name: Disable KVM modules if present
|
|
block:
|
|
- name: Check if kvm modules are loaded
|
|
shell: |
|
|
lsmod | grep -E 'kvm_intel|kvm_amd|kvm' || true
|
|
register: kvm_modules
|
|
changed_when: false
|
|
|
|
- name: Blacklist KVM modules
|
|
copy:
|
|
dest: /etc/modprobe.d/disable-kvm.conf
|
|
content: |
|
|
# Disabled for VirtualBox compatibility
|
|
blacklist kvm
|
|
blacklist kvm_intel
|
|
blacklist kvm_amd
|
|
when: kvm_modules.stdout != ""
|
|
|
|
- name: Remove loaded KVM modules immediately
|
|
shell: |
|
|
rmmod kvm_intel || true
|
|
rmmod kvm_amd || true
|
|
rmmod kvm || true
|
|
when: kvm_modules.stdout != ""
|
|
ignore_errors: yes
|
|
|
|
- name: Add VirtualBox repository GPG key
|
|
ansible.builtin.apt_key:
|
|
url: "{{ virtualbox_repo_key_url }}"
|
|
state: present
|
|
|
|
- name: Add VirtualBox apt repository
|
|
ansible.builtin.apt_repository:
|
|
repo: "{{ virtualbox_repo_url }}"
|
|
state: present
|
|
filename: "virtualbox"
|
|
|
|
- name: Update apt cache
|
|
apt:
|
|
update_cache: yes
|
|
|
|
- name: Install VirtualBox
|
|
apt:
|
|
name: "{{ virtualbox_package }}"
|
|
state: present
|
|
|
|
- name: Ensure vboxdrv is loaded
|
|
command: /sbin/vboxconfig
|
|
register: vboxconfig
|
|
changed_when: "'done' in vboxconfig.stdout"
|
|
|
|
- name: Add user to vboxusers group
|
|
user:
|
|
name: "{{ ansible_user }}"
|
|
groups: vboxusers
|
|
append: yes
|