vcf_vm resource¶
See Resources Framework.
Pillar¶
resources:
vcenter:
instances:
mgmt-vc:
host: mgmt-vc.example.com
username: administrator@vsphere.local
password: '{{ pillar["mgmt_vc_password"] }}'
verify_ssl: false
vcf_vm:
instances:
web-prod-01:
vcenter: mgmt-vc
moid: vm-1234
labels:
tier: production
app: web
web-prod-02:
vcenter: mgmt-vc
moid: vm-1235
labels:
tier: production
app: web
db-prod-01:
vcenter: mgmt-vc
moid: vm-1289
labels:
tier: production
app: postgres
Targeting¶
Grains: tier, app (from labels:) + live name, power_state,
cpu_count, memory_size_MiB.
salt -G 'tier:production' vcf_vm.power_state
salt -G 'app:web' vcf_vm.info
salt -G 'app:web' vcf_vm.snapshot_create name=before-deploy memory=false
salt -G 'app:postgres' vcf_vm.reset
salt -G 'tier:production' vcf_vm.power_off
Operations¶
Function |
Returns |
|---|---|
|
Full VM record |
|
|
|
Action result |
|
Snapshot tree |
|
Lifecycle (SOAP) |
|
vCenter tag association |
Cross-vCenter fleet¶
resources:
vcenter:
instances:
mgmt-vc: {host: mgmt-vc.example.com, ...}
prod-vc-1: {host: prod-vc-1.example.com, ...}
prod-vc-2: {host: prod-vc-2.example.com, ...}
vcf_vm:
instances:
shared-tools-vm:
vcenter: mgmt-vc
moid: vm-50
labels: {tier: shared}
west-web-01:
vcenter: prod-vc-1
moid: vm-1000
labels: {tier: production, region: west}
east-web-01:
vcenter: prod-vc-2
moid: vm-2000
labels: {tier: production, region: east}
salt -G 'region:west' vcf_vm.power_off