ansible創建vmware虛擬機
阿新 • • 發佈:2018-10-15
e1000e cer 精簡 tasks leg 示例 break cal virt 環境:vmware 虛擬化
需求:業務部門一次提幾十臺甚至幾百臺虛擬機需求
需求:業務部門一次提幾十臺甚至幾百臺虛擬機需求
之前不管這一塊,由於人員減少,臨時需求也要搞搞了
使用ansible vmware_guest 創建虛擬機,避免手動一臺一臺創建的純手工 工作
廢話不多說,上代碼
--- - hosts: localhost ## 在本機執行 gather_facts: No connection: local ## 本地連接 vars_files: - myvars.yml - vcenter.yml tasks: - name: Create a virtual machine on given ESXi hostname vmware_guest: hostname: "{{hostname}}" username: "{{username}}" password: "{{password}}" validate_certs: no folder: / datacenter: "{{datacenter}}" name: "{{item.name}}" state: poweredoff guest_id: centos64Guest esxi_hostname: "{{item.esxi_hostname}}" disk: - size_gb: "{{ item.d1_size_gb}}" type: eagerzeroedthick ##厚置備 thin 精簡置備 datastore: "{{item.datastore}}" ##存儲 - size_gb: "{{ item.d2_size_gb}}" #type: eagerzeroedthick type: thin datastore: "{{item.datastore}}" hardware: hotadd_cpu: true hotremove_cpu: true hotadd_memory: true memory_mb: "{{item.memory_mb}}" num_cpus: "{{item.num_cpus}}" scsi: lsilogic ##linux用lsilogic,win用lsilogicsas, 默認使用paravirtual 這是VMware自己的準虛擬 networks: - name: vlan10 ##網絡名 device_type: vmxnet3 ## win使用e1000e with_items: - "{{myvms}}" delegate_to: localhost register: deploy_vm
vcenter.yml 存放vcenter驗證信息
myvars.yml 是需要創建的虛擬機信息
myvars.yml 示例如下
--- datacenter: zm-A10 myvms: - { name: 10.20.15.99_test1, esxi_hostname: 10.20.10.26, datastore: 10-26-localradi10, d1_size_gb: 50, d2_size_gb: 30, memory_mb: 8196, num_cpus: 4 } - { name: 10.20.15.105_test2, esxi_hostname: 10.20.10.23, datastore: 10_23-localraid10, d1_size_gb: 50, d2_size_gb: 40, memory_mb: 8196, num_cpus: 4 }
myvars.yml 可以直接用Python腳本生成
import re outfile2 = open(‘myvars.yml‘, ‘w‘) file_head = ‘‘‘ --- datacenter: zm-A10 myvms: ‘‘‘ outfile2.write(file_head) with open(‘vm_list‘, ‘r‘) as f: while 1: line = f.readline() if not line: break linetest = re.split(r‘[;,\s]+‘, line) host2text = ‘‘‘ - { name: %s_%s, esxi_hostname: %s, datastore: %s, d1_size_gb: %s, d2_size_gb: %s, memory_mb: %s, num_cpus: %s }‘‘‘ % (linetest[0], linetest[1], linetest[2], linetest[3], linetest[6], linetest[7], linetest[5], linetest[4]) print >> outfile2, host2text
ansible創建vmware虛擬機