summaryrefslogtreecommitdiff
path: root/test/integration/targets/azure_rm_image/tasks/main.yml
blob: 9b68a92e7af6a5fb7cf6520d2ea553b655c80b52 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
- name: Create storage account name
  set_fact:
      vm_name: "vm{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}x"
      public_ip_name: "pip{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
      security_group_name: "sg{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
      empty_disk_name: "emptydisk{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"

- name: Create virtual network
  azure_rm_virtualnetwork:
      resource_group: "{{ resource_group }}"
      name: "{{ vm_name }}"
      address_prefixes: "10.10.0.0/16"

- name: Add subnet
  azure_rm_subnet:
      resource_group: "{{ resource_group }}"
      name: "{{ vm_name }}"
      address_prefix: "10.10.0.0/24"
      virtual_network: "{{ vm_name }}"

- name: Create public ip
  azure_rm_publicipaddress:
      resource_group: "{{ resource_group }}"
      allocation_method: Static
      name: "{{ public_ip_name }}"

- name: Create security group
  azure_rm_securitygroup:
      resource_group: "{{ resource_group }}"
      name: "{{ security_group_name }}"

- name: Create NIC
  azure_rm_networkinterface:
      resource_group: "{{ resource_group }}"
      name: "{{ vm_name }}"
      virtual_network: "{{ vm_name }}"
      subnet: "{{ vm_name }}"
      public_ip_name: "{{ public_ip_name }}"
      security_group: "{{ security_group_name }}"

- name: Create virtual machine
  azure_rm_virtualmachine:
      resource_group: "{{ resource_group }}"
      name: "{{ vm_name }}"
      vm_size: Standard_A0
      managed_disk_type: Standard_LRS
      admin_username: adminuser
      admin_password: Password123!
      os_type: Linux
      network_interfaces: "{{ vm_name }}"
      image:
        offer: UbuntuServer
        publisher: Canonical
        sku: 16.04-LTS
        version: latest
  register: vm

- name: Create new empty managed disk
  azure_rm_manageddisk:
      resource_group: "{{ resource_group }}"
      name: "{{ empty_disk_name }}"
      storage_account_type: "Standard_LRS"
      disk_size_gb: 1
  register: emptydisk

- name: Create an image from VM (check mode)
  azure_rm_image:
      resource_group: "{{ resource_group }}"
      source: "{{ vm.ansible_facts.azure_vm.properties.storageProfile.osDisk.managedDisk.id }}"
      name: testimage001
      os_type: Linux
      data_disk_sources:
          - "{{ empty_disk_name }}"
  check_mode: yes
  register: output

- assert:
      that: output.changed

- name: Create an image from VM
  azure_rm_image:
      resource_group: "{{ resource_group }}"
      source:
        name: "{{ vm_name }}"
        type: disks
      name: testimage001
      os_type: Linux
  register: output

- assert:
      that:
          - output.changed
          - output.id

- name: Create an image from VM (idempotent)
  azure_rm_image:
      resource_group: "{{ resource_group }}"
      source: "{{ vm.ansible_facts.azure_vm.properties.storageProfile.osDisk.managedDisk.id }}"
      name: testimage001
      os_type: Linux
  register: output

- assert:
      that:
          - not output.changed
          - output.id

- name: Gather information about image created
  azure_rm_image_info:
    resource_group: "{{ resource_group }}"
    name: testimage001
  register: output

- assert:
      that:
          - output.images != []

- name: Delete image (check mode)
  azure_rm_image:
      resource_group: "{{ resource_group }}"
      name: testimage001
      state: absent
  register: output
  check_mode: yes

- assert:
    that:
      - output.changed

- name: Delete image
  azure_rm_image:
      resource_group: "{{ resource_group }}"
      name: testimage001
      state: absent
  register: output

- assert:
    that:
      - output.changed

- name: Delete image (idempotent)
  azure_rm_image:
      resource_group: "{{ resource_group }}"
      name: testimage001
      state: absent
  register: output

- assert:
    that:
      - not output.changed

- name: Delete empty disk
  azure_rm_manageddisk:
      resource_group: "{{ resource_group }}"
      name: "{{ empty_disk_name }}"
      state: absent

- name: Delete VM
  azure_rm_virtualmachine:
      resource_group: "{{ resource_group }}"
      name: "{{ vm_name }}"
      state: absent
      vm_size: Standard_A0
  register: output

- name: Delete public ip
  azure_rm_publicipaddress:
      resource_group: "{{ resource_group }}"
      allocation_method: Static
      name: "{{ public_ip_name }}"
      state: absent