59 lines
1.6 KiB
YAML
59 lines
1.6 KiB
YAML
- name: Deploys VM based on local debian image
|
|
hosts: localhost
|
|
gather_facts: true
|
|
become: true
|
|
vars:
|
|
# debian_image: "/var/lib/libvirt/images"
|
|
# vm: "{{ item }}"
|
|
ssh_pub_key: "/home/pierre/.ssh/id_rsa.pub"
|
|
root: root
|
|
os: https://cloud.debian.org/images/cloud/bullseye/latest/debian-11-generic-amd64.qcow2
|
|
checksum: ""
|
|
xml_template: debian_template
|
|
machines:
|
|
- name: control_test
|
|
ip: 192.168.122.80
|
|
# - name: DC01_test
|
|
# ip: 192.168.122.81
|
|
# - name: DC02_test
|
|
# ip: 192.168.122.82
|
|
|
|
tasks:
|
|
- name: Is os image present
|
|
ansible.builtin.fail:
|
|
msg: You did not provide an image to build from
|
|
when:
|
|
os == ""
|
|
- name: Is XML template present
|
|
ansible.builtin.stat:
|
|
path: "create_kvm/templates/{{ xml_template }}.xml.j2"
|
|
register: xml_present
|
|
|
|
- name: XML not present
|
|
ansible.builtin.fail:
|
|
msg: You did not provide a valid xml template
|
|
when: not (xml_present.stat.exists)
|
|
|
|
- name: KVM Provision role
|
|
ansible.builtin.include_role:
|
|
name: create_kvm
|
|
vars:
|
|
# libvirt_pool_dir: "{{ pool_dir }}"
|
|
os_image: "{{ os }}"
|
|
template_file: "{{ xml_template }}.xml.j2"
|
|
vm_name: "{{ item.name }}"
|
|
ssh_key: "{{ ssh_pub_key }}"
|
|
root_pwd: "{{ root }}"
|
|
loop:
|
|
"{{ machines }}"
|
|
|
|
- name: Set up the wanted IP
|
|
ansible.builtin.include_tasks:
|
|
file: setup_vm_ip.yml
|
|
loop:
|
|
"{{ machines }}"
|
|
|
|
|
|
# for control,dc01,dc02
|
|
# 192.168.122.70 + 1
|
|
# /var/lib/libvirt/images/debian11-2-1-clone.qcow2 |