1- name: Create VMs with the poweredoff state
2  vmware_guest:
3    hostname: "{{ vcenter_hostname }}"
4    username: "{{ vcenter_username }}"
5    password: "{{ vcenter_password }}"
6    datacenter: "{{ dc1 }}"
7    validate_certs: no
8    folder: '{{ f0 }}'
9    name: 'test_vm1'
10    state: poweredoff
11    guest_id: debian8_64Guest
12    disk:
13    - size_gb: 1
14      type: thin
15      datastore: '{{ ds2 }}'
16    hardware:
17      memory_mb: 128
18      num_cpus: 1
19      scsi: paravirtual
20    cdrom:
21      type: iso
22      iso_path: "[{{ ds1 }}] fedora.iso"
23    networks:
24    - name: VM Network
25
26- name: ensure that VM1 are not flagged as templates
27  vmware_guest:
28    validate_certs: False
29    hostname: "{{ vcenter_hostname }}"
30    username: "{{ vcenter_username }}"
31    password: "{{ vcenter_password }}"
32    datacenter: "{{ dc1 }}"
33    folder: "{{ virtual_machines[1].folder }}"
34    name: "{{ virtual_machines[1].name }}"
35    state: present
36    is_template: False
37  register: no_template_initial
38
39- debug: var=no_template_initial
40
41- name: ensure no changes were made
42  assert:
43    that:
44        - not (no_template_initial is changed)
45
46- name: convert VM1 to template
47  vmware_guest:
48    validate_certs: False
49    hostname: "{{ vcenter_hostname }}"
50    username: "{{ vcenter_username }}"
51    password: "{{ vcenter_password }}"
52    datacenter: "{{ dc1 }}"
53    folder: "{{ virtual_machines[1].folder }}"
54    name: "{{ virtual_machines[1].name }}"
55    state: present
56    is_template: True
57  register: convert_to_template
58
59- debug: var=convert_to_template
60
61- name: ensure that changes were made
62  assert:
63    that:
64        - convert_to_template is changed
65
66- name: make double sure that VM1 is template
67  vmware_guest:
68    validate_certs: False
69    hostname: "{{ vcenter_hostname }}"
70    username: "{{ vcenter_username }}"
71    password: "{{ vcenter_password }}"
72    datacenter: "{{ dc1 }}"
73    folder: "{{ virtual_machines[1].folder }}"
74    name: "{{ virtual_machines[1].name }}"
75    state: present
76    is_template: True
77  register: still_templates
78
79- debug: var=still_templates
80
81- name: ensure that no changes were made
82  assert:
83    that:
84        - not (still_templates is changed)
85
86# To avoid the follow error of vcsim: VirtualMachine:vm-67 does not implement: MarkAsVirtualMachine
87- when: vcsim is not defined
88  block:
89    - name: convert template back to VMs
90      vmware_guest:
91        validate_certs: False
92        hostname: "{{ vcenter_hostname }}"
93        username: "{{ vcenter_username }}"
94        password: "{{ vcenter_password }}"
95        datacenter: "{{ dc1 }}"
96        folder: "{{ virtual_machines[1].folder }}"
97        name: "{{ virtual_machines[1].name }}"
98        state: present
99        is_template: False
100      register: revert_to_vm
101    - debug: var=revert_to_vm
102    - name: ensure that changes were made
103      assert:
104        that:
105            - revert_to_vm is changed
106