lmn-client/roles/lmn_vm/tasks/main.yml
2023-02-07 19:18:57 +01:00

112 lines
2.6 KiB
YAML

---
- name: install libvirt packages
apt:
name:
- libvirt-daemon-system
- virt-manager
state: latest
autoremove: true
default_release: "{{ ansible_distribution_release }}-backports"
when: ansible_distribution_release == 'bullseye'
- name: install libvirt packages
apt:
name:
- libvirt-daemon-system
- virt-manager
state: latest
autoremove: true
when: ansible_distribution_release == 'bookworm'
- name: allow all users to use VMs
lineinfile:
dest: /etc/libvirt/libvirtd.conf
line: 'auth_unix_rw = "none"'
insertafter: '#auth_unix_rw = "polkit"'
notify: reload libvirtd
- name: autostart default network for VMs
file:
src: /etc/libvirt/qemu/networks/default.xml
dest: /etc/libvirt/qemu/networks/autostart/default.xml
state: link
- name: install squid
apt:
name:
- squid
state: latest
autoremove: true
- name: disable squid
systemd:
name: squid
enabled: false
state: stopped
- name: deploy squid user mode configuration
template:
src: squid-usermode.conf.j2
dest: /etc/squid/squid-usermode.conf
mode: '0644'
- name: deploy sudo configurations
copy:
src: "{{ item }}"
dest: "/etc/sudoers.d/90-{{ item }}"
owner: root
group: root
mode: '0700'
loop:
- lmn-mounthome-sudo
- lmn-create-clone-sudo
- lmn-sync-vm-sudo
- name: deploy mount home script
copy:
src: "{{ item }}"
dest: /usr/local/bin/
owner: root
group: root
mode: '0755'
loop:
- mounthome.sh
- create-vm.sh
- rebase-vm.sh
- create-clone.sh
- run-vm.sh
- sync-vm.sh
- name: deploy http proxy config
copy:
src: lmn-proxy.sh
dest: /etc/profile.d/
mode: '0644'
- name: deploy pulseaudio fix
file:
path: /etc/systemd/user/pulseaudio.service.d/
state: directory
- name: deploy pulseaudio fix
copy:
src: pulseaudio-override.conf
dest: /etc/systemd/user/pulseaudio.service.d/override.conf
#### VMs
- name: deploy initial image list
copy:
src: images.list
dest: /var/lib/libvirt/images/images.list
force: false
- name: rsync VM image definitions
command: rsync -a --itemize-changes rsync://server:/vmimages-download/xml /var/lib/libvirt/images/
register: result
changed_when: result.stdout | length > 0
- name: rsync VM images
command: rsync -a -i --files-from=/var/lib/libvirt/images/images.list rsync://server:/vmimages-download/ /var/lib/libvirt/images/
register: result
changed_when: result.stdout | length > 0
when: (ansible_mounts | selectattr("mount", "equalto", "/") | list)[0].size_available > 80000000000