diff --git a/.assets/vAppConfigurations-Server2019-example.png b/.assets/vAppConfigurations-Server2019-example.png new file mode 100644 index 0000000..082d7b1 Binary files /dev/null and b/.assets/vAppConfigurations-Server2019-example.png differ diff --git a/.assets/vAppProperties-Server2019-example.png b/.assets/vAppProperties-Server2019-example.png new file mode 100644 index 0000000..8a90fdf Binary files /dev/null and b/.assets/vAppProperties-Server2019-example.png differ diff --git a/README.md b/README.md index 44327f0..3f0ab7a 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,85 @@ # Packer.Images [![Build Status](https://ci.spamasaurus.com/api/badges/djpbessems/Packer.Images/status.svg?ref=refs/heads/Server2019)](https://ci.spamasaurus.com/djpbessems/Packer.Images) +This OVA appliance allows deploying a Windows Server fully automated; either as a domain member or stand-alone server. + +The included `.ovf` file has the following XML contents (simplified for clarity) to facilitate the different `DeploymentOption`s: +```xml + + [...] + + Deployment Type + + + Windows Server joined to an Active Directory domain + + + + Stand-alone Windows Server + + + + [...] + + [...] + 1) Operating System + + + + + + + [...] + 3) Active Directory membership + + + + + + + + + + + + +``` + +When **provisioning** the appliance through the vCenter 'Deploy OVF template...' wizard, or through vApp-compatible *Infrastructure as code* tooling (e.g. HashiCorp Terraform), it is possible to provide all relevant configuration through vApp properties. + + + + + + + + + +
vSphere 'Deploy OVF template...' wizard HashiCorp Terraform vSphere provider
vApp properties
vApp properties
+ +```hcl + vapp { + properties = { + # "deployment.type" = "domainmember" + + "guestinfo.hostname" = "TF-SRV01" + # "guestinfo.administratorpw" = var.vm_adminpassword + # "guestinfo.ntpserver" = "0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org" + "guestinfo.ipaddress" = "10.0.0.42" + "guestinfo.prefixlength" = "24" + "guestinfo.dnsserver" = "10.0.0.21" + "guestinfo.gateway" = "10.0.0.1" + + "addsconfig.domainname" = "contoso.com" + "addsconfig.username" = "CONTOSO\\Administrator" + "addsconfig.password" = var.adds_password + } + } +``` + +
+ +On first boot, the appliance will start **configuring** itself without any further user-input, by performing the following steps: +- Change hostname +- Configure network +- Join Active Directory domain **-OR-** Set password for local administrator +- Iterate through any payload scripts