Name: packer-builder-vsphere
Owner: Pivotal Cloud Foundry
Description: Packer plugin for remote builds on VMware vSphere
Created: 2018-05-18 22:00:33.0
Updated: 2018-05-18 22:00:35.0
Pushed: 2018-05-21 19:02:45.0
Size: 229
Language: Go
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
This a plugin for HashiCorp Packer. It uses native vSphere API, and creates virtual machines remotely.
chmod +x
on the plugin binary.
uilders": [
{
"type": "vsphere",
"vcenter_server": "vcenter.domain.com",
"username": "root",
"password": "secret",
"template": "ubuntu",
"vm_name": "vm-1",
"host": "esxi-1.domain.com",
"ssh_username": "root",
"ssh_password": "secret"
}
rovisioners": [
{
"type": "shell",
"inline": [ "echo hello" ]
}
Connection:
vcenter_server
- [mandatory] vCenter server hostname.username
- [mandatory] vSphere username.password
- [mandatory] vSphere password.insecure_connection
- do not validate server's TLS certificate. false
by default.datacenter
- required if there are several datacenters.Location:
template
- [mandatory] name of source VM. Path is optional.vm_name
- [mandatory] name of target VM.folder
- VM folder where target VM is created.host
- [mandatory] vSphere host or cluster where target VM is created. If hosts are groupped into folders, full path should be specified: folder/host
.resource_pool
- by default a root of vSphere host.datastore
- required if target is a cluster, or a host with multiple datastores.linked_clone
- create VM as a linked clone from latest snapshot. false
by default.Hardware customization:
CPUs
- number of CPU sockets. Inherited from source VM by default.CPU_reservation
- Amount of reserved CPU resources in MHz. Inherited from source VM by default.CPU_limit
- Upper limit of available CPU resources in MHz. Inherited from source VM by default, set to -1
for reset.RAM
- Amount of RAM in megabytes. Inherited from source VM by default.RAM_reservation
- Amount of reserved RAM in MB. Inherited from source VM by default.RAM_reserve_all
- Reserve all available RAM (bool). false
by default. Cannot be used together with RAM_reservation
.disk_size
- Change the disk size (in GB). VM should have a single disk. Cannot be used together with linked_clone
.NestedHV
- Allows to enable nested hardware virtualization for VM.Provisioning:
ssh_username
- [mandatory] username in guest OS.ssh_password
or ssh_private_key_file
- [mandatory] password or SSH-key filename to access a guest OS.Post-processing:
shutdown_command
- VMware guest tools are used by default.shutdown_timeout
- Duration how long to wait for a graceful shutdown. 5 minutes by default.create_snapshot
- add a snapshot, so VM can be used as a base for linked clones. false
by default.convert_to_template
- convert VM to a template. false
by default.
ariables": {
"vsphere_password": "secret",
"guest_password": "secret"
uilders": [
{
"type": "vsphere",
"vcenter_server": "vcenter.domain.com",
"username": "root",
"password": "{{user `vsphere_password`}}",
"insecure_connection": true,
"datacenter": "dc1",
"template": "folder/ubuntu",
"vm_name": "vm-1",
"folder": "folder1/folder2",
"host": "folder/esxi-1.domain.com",
"resource_pool": "pool1/pool2",
"datastore": "datastore1",
"linked_clone": true,
"CPUs": 2,
"CPU_reservation": 1000,
"CPU_limit": 2000,
"RAM": 8192,
"RAM_reservation": 2048,
"ssh_username": "root",
"ssh_password": "{{user `guest_password`}}",
"shutdown_command": "echo '{{user `guest_password`}}' | sudo -S shutdown -P now",
"shutdown_timeout": "5m",
"create_snapshot": true,
"convert_to_template": true
}
rovisioners": [
{
"type": "shell",
"environment_vars": [
"DEBIAN_FRONTEND=noninteractive"
],
"execute_command": "echo '{{user `guest_password`}}' | {{.Vars}} sudo -ES bash -eux '{{.Path}}'",
"inline": [
"apt-get install -y zip"
]
}