在Ansible playbook中使用“create”参数强制覆盖现有VM的配置。以下是一个示例:
---
- name: Create or update a VM in VMware vCenter
hosts: localhost
vars:
datacenter_name: "Datacenter"
cluster_name: "Cluster"
datastore_name: "Datastore"
vm_name: "VM1"
guest_os: "ubuntu64Guest"
network_name: "VM Network"
customization_spec_name: "Customization Spec"
power_state: poweredon
disk_size_gb: 20
memory_mb: 2048
num_cpus: 2
tasks:
- name: Create or update a VM
vmware_guest:
hostname: '{{ vcenter_hostname }}'
username: '{{ vcenter_username }}'
password: '{{ vcenter_password }}'
validate_certs: no
datacenter: '{{ datacenter_name }}'
folder: /vm
name: '{{ vm_name }}'
cluster: '{{ cluster_name }}'
datastore: '{{ datastore_name }}'
disk:
- size_gb: '{{ disk_size_gb }}'
type: thin
hardware:
memory_mb: '{{ memory_mb }}'
num_cpus: '{{ num_cpus }}'
networks:
- name: '{{ network_name }}'
primary_network_adapter: true
customization_spec: '{{ customization_spec_name }}'
state: poweredon
create: true
wait_for_ip_address: yes
power_on_after_clone: no