# bhyve ~~ roles/bhyve/tasks/main.yml # bhyve hypervisor configuration --- - name: create bhyve group group: name: bhyve state: present - name: create bhyve user user: name: bhyve group: bhyve comment: Unpreviliged user for bhyve guests shell: /sbin/nologin system: true - name: check existence of bhyve directory file: path: /data/bhyve owner: bhyve group: bhyve state: directory mode: 0711 - name: load bhyve module shell: "! kldstat | grep vmm && kldload vmm" failed_when: false - name: install bhyve components package: name="{{ item }}" loop: - vm-bhyve - bhyve-firmware - grub2-bhyve - name: enable bhyve vm shell: | sysrc vm_enable="YES" sysrc vm_dir="/data/bhyve" - name: init vm directory and filesets shell: vm init - name: create network switch shell: | vm switch create {{ hypervisor.switch }} vm switch add public {{ hypervisor.interface }} ignore_errors: true - name: create per vm configuration include: guest.yml guest="{{ item }}" loop: "{{ vms }}" - name: activate on boot all enabled vm lineinfile: path: /etc/rc.conf regexp: "^vm_list=" line: vm_list="{% for vm in vms %}{{ vm.name }} {% endfor %}" - name: set delay on boot between vm lineinfile: path: /etc/rc.conf regexp: "^vm_delay=" line: vm_delay="5"