working on qemu ansible playbook
This commit is contained in:
parent
1f16debf42
commit
351098c3d4
|
@ -2,6 +2,9 @@
|
||||||
This script helps quickly set up a vm development environment for cs club's mirrors.
|
This script helps quickly set up a vm development environment for cs club's mirrors.
|
||||||
|
|
||||||
## VM Installation Option 1 (qmeu-vm.yml)
|
## VM Installation Option 1 (qmeu-vm.yml)
|
||||||
|
|
||||||
|
**instructions need to be rewritten**
|
||||||
|
|
||||||
Install the following dependencies
|
Install the following dependencies
|
||||||
- qemu
|
- qemu
|
||||||
- genisoimage
|
- genisoimage
|
||||||
|
|
13
hosts
13
hosts
|
@ -1,6 +1,17 @@
|
||||||
|
[local]
|
||||||
|
localhost
|
||||||
|
|
||||||
|
[vm]
|
||||||
ubuntu@localhost
|
ubuntu@localhost
|
||||||
|
|
||||||
[all:vars]
|
[local:vars]
|
||||||
|
ansible_connection=local
|
||||||
|
vm_name=mirror-env
|
||||||
|
vm_mem=2G
|
||||||
|
vm_disk_size=10G
|
||||||
|
ovmf_location=/usr/share/edk2-ovmf/x64/OVMF_CODE.fd
|
||||||
|
|
||||||
|
[vm:vars]
|
||||||
ansible_connection=ssh
|
ansible_connection=ssh
|
||||||
ansible_port=7777
|
ansible_port=7777
|
||||||
ansible_user=ubuntu
|
ansible_user=ubuntu
|
||||||
|
|
|
@ -38,6 +38,9 @@ run-install:
|
||||||
-bios ${ovmf_location} \
|
-bios ${ovmf_location} \
|
||||||
-m ${vm_mem}
|
-m ${vm_mem}
|
||||||
|
|
||||||
|
post-install:
|
||||||
|
|
||||||
|
|
||||||
run:
|
run:
|
||||||
qemu-system-x86_64 -enable-kvm -boot order=d \
|
qemu-system-x86_64 -enable-kvm -boot order=d \
|
||||||
-drive file=drive1,if=virtio,id=a,media=disk,format=qcow2 \
|
-drive file=drive1,if=virtio,id=a,media=disk,format=qcow2 \
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
- hosts: local
|
||||||
|
become: true
|
||||||
|
roles:
|
||||||
|
- qemu-vm
|
|
@ -0,0 +1,48 @@
|
||||||
|
---
|
||||||
|
- name: "{{vm_name}} - Gathering info"
|
||||||
|
stat:
|
||||||
|
path: "{{playbook_dir}}/vm/{{vm_name}}"
|
||||||
|
register: vm_stat
|
||||||
|
|
||||||
|
- name: "{{vm_name}} - Checking if VM already exists"
|
||||||
|
meta: end_play
|
||||||
|
when: vm_stat.stat.exists == true
|
||||||
|
|
||||||
|
# Start vm install
|
||||||
|
- name: "{{vm_name}} - Create directory for VM"
|
||||||
|
file:
|
||||||
|
state: directory
|
||||||
|
path: "{{playbook_dir}}/vm/{{vm_name}}"
|
||||||
|
|
||||||
|
- name: "{{vm_name}} - Create disk images"
|
||||||
|
shell:
|
||||||
|
cmd: "for i in {1..6}; do qemu-img create -f qcow2 {{playbook_dir}}/vm/{{vm_name}}/drive${i} {{vm_disk_size}}; done"
|
||||||
|
|
||||||
|
- name: "{{vm_name}} - Creating cloud-init iso"
|
||||||
|
command: "genisoimage -output {{playbook_dir}}/vm/{{vm_name}}/seed.iso -volid cidata -joliet -rock {{role_path}}/files/user-data {{role_path}}/files/meta-data"
|
||||||
|
|
||||||
|
# Autoinstall ubuntu on vm
|
||||||
|
- name: "{{vm-name}} - Check if iso exists"
|
||||||
|
stat:
|
||||||
|
path: "{{role_path}}/files/ubuntu20_04.iso"
|
||||||
|
register: iso_stat
|
||||||
|
|
||||||
|
- name: "{{vm-name}} - Fetching ubuntu iso"
|
||||||
|
get_url:
|
||||||
|
url: https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-live-server-amd64.iso
|
||||||
|
dest: "{{role_path}}/files/ubuntu20_04.iso"
|
||||||
|
when: iso_stat.stat.exists == false
|
||||||
|
|
||||||
|
- name: "{{vm_name}} - Starting VM install"
|
||||||
|
command: >
|
||||||
|
qemu-system-x86_64 -cdrom {{role_path}}/files/ubuntu20_04.iso -enable-kvm -boot order=d
|
||||||
|
-drive file={{playbook_dir}}/vm/{{vm_name}}/drive1,if=virtio,id=a,media=disk,format=qcow2
|
||||||
|
-drive file={{playbook_dir}}/vm/{{vm_name}}/drive2,if=virtio,id=b,media=disk,format=qcow2
|
||||||
|
-drive file={{playbook_dir}}/vm/{{vm_name}}/drive3,if=virtio,id=c,media=disk,format=qcow2
|
||||||
|
-drive file={{playbook_dir}}/vm/{{vm_name}}/drive4,if=virtio,id=d,media=disk,format=qcow2
|
||||||
|
-drive file={{playbook_dir}}/vm/{{vm_name}}/drive5,if=virtio,id=e,media=disk,format=qcow2
|
||||||
|
-drive file={{playbook_dir}}/vm/{{vm_name}}/drive6,if=virtio,id=f,media=disk,format=qcow2
|
||||||
|
-drive file={{playbook_dir}}/vm/{{vm_name}}/seed.iso,if=virtio,format=raw
|
||||||
|
-bios {{ovmf_location}}
|
||||||
|
-m {{vm_mem}}
|
||||||
|
|
Loading…
Reference in New Issue