Advertisement
Guest User

Untitled

a guest
Jun 14th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.03 KB | None | 0 0
  1. ---
  2. - name: create some vms
  3. hosts: localhost
  4. connection: local
  5. vars_prompt:
  6. - name: "vcenter_host"
  7. prompt: "Enter vcenter host"
  8. private: no
  9. default: "vcsa"
  10. - name: "vcenter_user"
  11. prompt: "Enter vcenter username"
  12. private: no
  13. - name: "vcenter_pass"
  14. prompt: "Enter vcenter password"
  15. private: yes
  16. vars:
  17. esxi_host: 'esxi01.{{ pri_domain_name }}'
  18. vcenter_datacenter: 'LAB'
  19. vcenter_datastore: 'Tier-3 (NAS01)'
  20. vcenter_folder: 'ansible-builds'
  21. vms:
  22. - guest: 'test01'
  23. state: 'powered_on'
  24. vcpu_hotadd: 'no'
  25. mem_hotadd: 'no'
  26. notes: 'Ansible Created'
  27. num_disks: 1
  28. disks:
  29. disk1:
  30. size: 10
  31. type: 'thin'
  32. network: 'vSS-Green-Servers-VLAN101'
  33. memory: 1024
  34. cpus: 1
  35. osid: 'ubuntu64Guest'
  36. - guest: 'test02'
  37. state: 'powered_on'
  38. vcpu_hotadd: 'no'
  39. mem_hotadd: 'no'
  40. notes: 'Ansible Created'
  41. num_disks: 2
  42. disks:
  43. disk1:
  44. size: 10
  45. type: 'thin'
  46. disk2:
  47. size: 20
  48. type: 'thin'
  49. network: 'vSS-Green-Servers-VLAN101'
  50. memory: 1024
  51. cpus: 1
  52. osid: 'ubuntu64Guest'
  53. - guest: 'test03'
  54. state: 'powered_on'
  55. vcpu_hotadd: 'no'
  56. mem_hotadd: 'no'
  57. notes: 'Ansible Created'
  58. num_disks: 3
  59. disks:
  60. disk1:
  61. size: 10
  62. type: 'thin'
  63. disk2:
  64. size: 20
  65. type: 'thin'
  66. disk3:
  67. size: 30
  68. type: 'thin'
  69. network: 'vSS-Green-Servers-VLAN101'
  70. memory: 1024
  71. cpus: 1
  72. osid: 'ubuntu64Guest'
  73. pri_domain_name: 'everythingshouldbevirtual.local'
  74. tasks:
  75. - name: create vms (Single Disk)
  76. vsphere_guest:
  77. vcenter_hostname: "{{ vcenter_host }}"
  78. username: "{{ vcenter_user }}"
  79. password: "{{ vcenter_pass }}"
  80. guest: "{{ item['guest'] }}"
  81. state: "{{ item['state'] }}"
  82. vm_extra_config:
  83. vcpu.hotadd: "{{ item['vcpu_hotadd']|default(omit) }}"
  84. mem.hotadd: "{{ item['mem_hotadd']|default(omit) }}"
  85. notes: "{{ item['notes']|default(omit) }}"
  86. folder: "{{ vcenter_folder }}"
  87. vm_disk:
  88. disk1:
  89. size_gb: "{{ item['disks']['disk1']['size'] }}"
  90. type: "{{ item['disks']['disk1']['type'] }}"
  91. datastore: "{{ vcenter_datastore }}"
  92. folder: "{{ vcenter_folder }}"
  93. vm_nic:
  94. nic1:
  95. type: "vmxnet3"
  96. network: "{{ item['network'] }}"
  97. network_type: "standard"
  98. vm_hardware:
  99. memory_mb: "{{ item['memory'] }}"
  100. num_cpus: "{{ item['cpus'] }}"
  101. osid: "{{ item['osid'] }}"
  102. scsi: "paravirtual"
  103. esxi:
  104. datacenter: "{{ vcenter_datacenter }}"
  105. hostname: "{{ esxi_host }}"
  106. with_items: vms
  107. when: item['num_disks'] == 1
  108.  
  109. - name: create vms (Multi Disk - 2 Disks)
  110. vsphere_guest:
  111. vcenter_hostname: "{{ vcenter_host }}"
  112. username: "{{ vcenter_user }}"
  113. password: "{{ vcenter_pass }}"
  114. guest: "{{ item['guest'] }}"
  115. state: "{{ item['state'] }}"
  116. vm_extra_config:
  117. vcpu.hotadd: "{{ item['vcpu_hotadd']|default(omit) }}"
  118. mem.hotadd: "{{ item['mem_hotadd']|default(omit) }}"
  119. notes: "{{ item['notes']|default(omit) }}"
  120. folder: "{{ vcenter_folder }}"
  121. vm_disk:
  122. disk1:
  123. size_gb: "{{ item['disks']['disk1']['size'] }}"
  124. type: "{{ item['disks']['disk1']['type'] }}"
  125. datastore: "{{ vcenter_datastore }}"
  126. folder: "{{ vcenter_folder }}"
  127. disk2:
  128. size_gb: "{{ item['disks']['disk2']['size'] }}"
  129. type: "{{ item['disks']['disk2']['type'] }}"
  130. datastore: "{{ vcenter_datastore }}"
  131. folder: "{{ vcenter_folder }}"
  132. vm_nic:
  133. nic1:
  134. type: "vmxnet3"
  135. network: "{{ item['network'] }}"
  136. network_type: "standard"
  137. vm_hardware:
  138. memory_mb: "{{ item['memory'] }}"
  139. num_cpus: "{{ item['cpus'] }}"
  140. osid: "{{ item['osid'] }}"
  141. scsi: "paravirtual"
  142. esxi:
  143. datacenter: "{{ vcenter_datacenter }}"
  144. hostname: "{{ esxi_host }}"
  145. with_items: vms
  146. when: item['num_disks'] == 2
  147.  
  148. - name: create vms (Multi Disk - 3 DIsks)
  149. vsphere_guest:
  150. vcenter_hostname: "{{ vcenter_host }}"
  151. username: "{{ vcenter_user }}"
  152. password: "{{ vcenter_pass }}"
  153. guest: "{{ item['guest'] }}"
  154. state: "{{ item['state'] }}"
  155. vm_extra_config:
  156. vcpu.hotadd: "{{ item['vcpu_hotadd']|default(omit) }}"
  157. mem.hotadd: "{{ item['mem_hotadd']|default(omit) }}"
  158. notes: "{{ item['notes']|default(omit) }}"
  159. folder: "{{ vcenter_folder }}"
  160. vm_disk:
  161. disk1:
  162. size_gb: "{{ item['disks']['disk1']['size'] }}"
  163. type: "{{ item['disks']['disk1']['type'] }}"
  164. datastore: "{{ vcenter_datastore }}"
  165. folder: "{{ vcenter_folder }}"
  166. disk2:
  167. size_gb: "{{ item['disks']['disk2']['size'] }}"
  168. type: "{{ item['disks']['disk2']['type'] }}"
  169. datastore: "{{ vcenter_datastore }}"
  170. folder: "{{ vcenter_folder }}"
  171. disk3:
  172. size_gb: "{{ item['disks']['disk3']['size'] }}"
  173. type: "{{ item['disks']['disk3']['type'] }}"
  174. datastore: "{{ vcenter_datastore }}"
  175. folder: "{{ vcenter_folder }}"
  176. vm_nic:
  177. nic1:
  178. type: "vmxnet3"
  179. network: "{{ item['network'] }}"
  180. network_type: "standard"
  181. vm_hardware:
  182. memory_mb: "{{ item['memory'] }}"
  183. num_cpus: "{{ item['cpus'] }}"
  184. osid: "{{ item['osid'] }}"
  185. scsi: "paravirtual"
  186. esxi:
  187. datacenter: "{{ vcenter_datacenter }}"
  188. hostname: "{{ esxi_host }}"
  189. with_items: vms
  190. when: item['num_disks'] == 3
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement