fix libvirt playbook
This commit is contained in:
parent
98c4b94cd4
commit
10a1a8a5aa
16
README.md
16
README.md
|
@ -55,10 +55,20 @@ password: ubuntu
|
||||||
## VM Install Option 2 (libvirt)
|
## VM Install Option 2 (libvirt)
|
||||||
|
|
||||||
### Install Packages (debian)
|
### Install Packages (debian)
|
||||||
**needs update**
|
Install QEMU and KVM
|
||||||
```
|
```
|
||||||
$ apt install qemu-kvm libvirt-daemon virt-manager virt-viewer ansible cloud-image-utils
|
$ apt install --no-install-recommends qemu-system libvirt-clients libvirt-daemon-system
|
||||||
qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virtinst libvirt-daemon virt-manager
|
```
|
||||||
|
Install other packages for the playbook
|
||||||
|
```
|
||||||
|
$ apt install ansible cloud-image-utils dnsmasq ovmf
|
||||||
|
```
|
||||||
|
Other packages that you probably don't need
|
||||||
|
```
|
||||||
|
virtinst
|
||||||
|
virt-viewer
|
||||||
|
virt-manager
|
||||||
|
bridge-utils
|
||||||
```
|
```
|
||||||
|
|
||||||
### Install Packages (archlinux)
|
### Install Packages (archlinux)
|
||||||
|
|
|
@ -1,24 +1,22 @@
|
||||||
---
|
---
|
||||||
- name: setup mirror vm
|
- name: setup mirror vm
|
||||||
hosts: 127.0.0.1
|
hosts: 127.0.0.1
|
||||||
|
gather_facts: false
|
||||||
tasks:
|
tasks:
|
||||||
- name: mirbr0 network exists
|
- name: mirbr0 network exists
|
||||||
command: "virsh net-dumpxml mirbr0 > /dev/null 2>&1"
|
command: "virsh net-dumpxml mirbr0"
|
||||||
check_mode: yes
|
|
||||||
changed_when: false
|
changed_when: false
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
register: net_exists
|
register: net_exists
|
||||||
|
|
||||||
- name: storage pool exists
|
- name: storage pool exists
|
||||||
command: "virsh pool-dumpxml mirror > /dev/null 2>&1"
|
command: "virsh pool-dumpxml mirror"
|
||||||
check_mode: yes
|
|
||||||
changed_when: false
|
changed_when: false
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
register: pool_exists
|
register: pool_exists
|
||||||
|
|
||||||
- name: mirror vm exists
|
- name: mirror vm exists
|
||||||
command: "virsh dumpxml mirror > /dev/null 2>&1"
|
command: "virsh dumpxml mirror"
|
||||||
check_mode: yes
|
|
||||||
changed_when: false
|
changed_when: false
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
register: vm_exists
|
register: vm_exists
|
||||||
|
@ -51,7 +49,7 @@
|
||||||
- net-define {{ playbook_dir }}/templates/network.xml
|
- net-define {{ playbook_dir }}/templates/network.xml
|
||||||
- net-autostart mirbr0
|
- net-autostart mirbr0
|
||||||
- net-start mirbr0
|
- net-start mirbr0
|
||||||
when: not net_exists.rc == 0
|
when: net_exists.rc != 0
|
||||||
|
|
||||||
- name: create storage pool
|
- name: create storage pool
|
||||||
command: "virsh {{ item }}"
|
command: "virsh {{ item }}"
|
||||||
|
@ -60,7 +58,7 @@
|
||||||
- pool-build mirror
|
- pool-build mirror
|
||||||
- pool-autostart mirror
|
- pool-autostart mirror
|
||||||
- pool-start mirror
|
- pool-start mirror
|
||||||
when: not pool_exists.rc == 0
|
when: pool_exists.rc != 0
|
||||||
|
|
||||||
# hardcoded to 10G since modification would require change to user-data
|
# hardcoded to 10G since modification would require change to user-data
|
||||||
- name: create virtual disks
|
- name: create virtual disks
|
||||||
|
@ -75,6 +73,8 @@
|
||||||
- { name: mirror_disk3.qcow2, size: 10G }
|
- { name: mirror_disk3.qcow2, size: 10G }
|
||||||
- { name: mirror_disk4.qcow2, size: 10G }
|
- { name: mirror_disk4.qcow2, size: 10G }
|
||||||
|
|
||||||
|
# does not exist yet
|
||||||
|
# --os-variant ubuntu20.04
|
||||||
- name: create vm
|
- name: create vm
|
||||||
command: >
|
command: >
|
||||||
virt-install
|
virt-install
|
||||||
|
@ -82,7 +82,7 @@
|
||||||
--memory=2048
|
--memory=2048
|
||||||
--vcpus=1
|
--vcpus=1
|
||||||
--boot uefi
|
--boot uefi
|
||||||
--os-type linux --os-variant ubuntu20.04
|
--os-type linux
|
||||||
--disk path={{ playbook_dir }}/vm/seed.qcow2,device=cdrom
|
--disk path={{ playbook_dir }}/vm/seed.qcow2,device=cdrom
|
||||||
--disk vol=mirror/mirror_root1.qcow2
|
--disk vol=mirror/mirror_root1.qcow2
|
||||||
--disk vol=mirror/mirror_root2.qcow2
|
--disk vol=mirror/mirror_root2.qcow2
|
||||||
|
@ -93,7 +93,7 @@
|
||||||
--network bridge=mirbr0
|
--network bridge=mirbr0
|
||||||
--graphics vnc,port=5911,listen=127.0.0.1
|
--graphics vnc,port=5911,listen=127.0.0.1
|
||||||
--noautoconsole
|
--noautoconsole
|
||||||
when: not vm_exists.rc == 0
|
when: vm_exists.rc != 0
|
||||||
# get user to set net.ipv4.ip_forward = 1 ?
|
# get user to set net.ipv4.ip_forward = 1 ?
|
||||||
|
|
||||||
# in the vm to disable cloud-init run
|
# in the vm to disable cloud-init run
|
||||||
|
@ -103,6 +103,18 @@
|
||||||
# copy over pub key into /root/.ssh/authorized_keys
|
# copy over pub key into /root/.ssh/authorized_keys
|
||||||
# add line to ssh config that allows ssh as root
|
# add line to ssh config that allows ssh as root
|
||||||
|
|
||||||
|
# modprobe kvm_intel
|
||||||
|
|
||||||
|
# depending on where you are installing may need to edit
|
||||||
|
# /etc/libvirt/qemu.conf
|
||||||
|
# user = "root"
|
||||||
|
# group = "root"
|
||||||
|
|
||||||
|
# then service libvirtd restart
|
||||||
|
|
||||||
|
# adduser <youruser> libvirt
|
||||||
|
# adduser -aG <youruser> libvirt
|
||||||
|
|
||||||
# this should execute in order right?
|
# this should execute in order right?
|
||||||
- name: setup mirror vm
|
- name: setup mirror vm
|
||||||
hosts: 192.168.123.2
|
hosts: 192.168.123.2
|
||||||
|
|
|
@ -92,8 +92,7 @@
|
||||||
disk_arg: "{{ disks | join(' ') }}"
|
disk_arg: "{{ disks | join(' ') }}"
|
||||||
|
|
||||||
- name: zpool exists
|
- name: zpool exists
|
||||||
command: "zpool status cscmirror > /dev/null 2>&1"
|
command: "zpool status cscmirror"
|
||||||
check_mode: yes
|
|
||||||
changed_when: false
|
changed_when: false
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
register: zpool_exists
|
register: zpool_exists
|
||||||
|
@ -105,7 +104,7 @@
|
||||||
cscmirror
|
cscmirror
|
||||||
raidz2
|
raidz2
|
||||||
{{ disk_arg }}
|
{{ disk_arg }}
|
||||||
when: not zpool_exists.rc == 0
|
when: zpool_exists.rc != 0
|
||||||
|
|
||||||
# mount all zpools
|
# mount all zpools
|
||||||
# zfs mount -a
|
# zfs mount -a
|
||||||
|
|
Loading…
Reference in New Issue