Housekeeping; Adding to documentation
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
744734e76e
commit
221e17a4de
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 107 KiB |
61
README.md
61
README.md
@ -2,6 +2,49 @@
|
||||
|
||||
This OVA appliance allows deploying an Active Directory Domain Controller fully automated:
|
||||
|
||||
The included `.ovf` file has the following XML contents (simplified for clarity) to facilitate the different `DeploymentOption`s:
|
||||
```xml
|
||||
<Envelope [...]>
|
||||
[...]
|
||||
<DeploymentOptionSection>
|
||||
<Info>Deployment Type</Info>
|
||||
<Configuration ovf:id="primary">
|
||||
<Label>Primary (redundant deployment)</Label>
|
||||
<Description>Initial Domain Controller with 'PDC Emulator'-role</Description>
|
||||
</Configuration>
|
||||
<Configuration ovf:id="secondary">
|
||||
<Label>Secondary (redundant deployment)</Label>
|
||||
<Description>Additional Domain Controller</Description>
|
||||
</Configuration>
|
||||
<Configuration ovf:id="standalone">
|
||||
<Label>Stand-alone (non-redundant deployment)</Label>
|
||||
<Description>Single Domain Controller</Description>
|
||||
</Configuration>
|
||||
</DeploymentOptionSection>
|
||||
<VirtualSystem ovf:id="[...]">
|
||||
[...]
|
||||
<ProductSection>
|
||||
[...]
|
||||
<Category>1) Operating System</Category>
|
||||
<Property ovf:configuration="primary secondary standalone" ovf:key="guestinfo.hostname" [...]>
|
||||
<Label>Hostname*</Label>
|
||||
</Property>
|
||||
[...]
|
||||
<Category>2) Networking</Category>
|
||||
<Property ovf:configuration="secondary" ovf:key="guestinfo.dnsserver" [...]>
|
||||
<Label>DNS server*</Label>
|
||||
</Property>
|
||||
[...]
|
||||
<Category>3) Active Directory Domain Services</Category>
|
||||
<Property ovf:configuration="primary standalone" ovf:key="addsconfig.ntpserver" [...]>
|
||||
<Label>NTP Server*</Label>
|
||||
[...]
|
||||
</Property>
|
||||
</ProductSection>
|
||||
</VirtualSystem>
|
||||
</Envelope>
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
<table>
|
||||
@ -9,29 +52,31 @@ When **provisioning** the appliance through the vCenter 'Deploy OVF template...'
|
||||
<td><em>vSphere 'Deploy OVF template...' wizard</em></td> <td> <a href="https://registry.terraform.io/providers/hashicorp/vsphere/latest/docs/resources/virtual_machine#deploying-vm-from-an-ovfova-template">HashiCorp Terraform vSphere provider</a> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src=".assets/vAppProperties-example.png" alt="vApp properties" width="400" /></td>
|
||||
<td><img src=".assets/vAppConfigurations-ADDS-example.png" alt="vApp properties" width="400" /><br/><img src=".assets/vAppProperties-ADDS-example.png" alt="vApp properties" width="400" /></td>
|
||||
<td>
|
||||
|
||||
```hcl
|
||||
vapp {
|
||||
properties = {
|
||||
# "deployment.typ" = "primary"
|
||||
|
||||
"guestinfo.hostname" = "DC01"
|
||||
"guestinfo.ipaddress" = "10.0.0.21"
|
||||
"guestinfo.prefixlength" = "24"
|
||||
"guestinfo.dnsserver" = "0.0.0.0"
|
||||
# "guestinfo.dnsserver" = "0.0.0.0"
|
||||
"guestinfo.gateway" = "10.0.0.1"
|
||||
|
||||
"addsconfig.domainname" = "contoso.com"
|
||||
"addsconfig.netbiosname" = "CONTOSO"
|
||||
"addsconfig.administratorpw" = var.adds_adminpassword
|
||||
"addsconfig.safemodepw" = var.adds_safemodepassword
|
||||
"addsconfig.ntpserver" = "0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org"
|
||||
# "addsconfig.ntpserver" = "0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org"
|
||||
|
||||
"dhcpconfig.startip" = "10.0.0.50"
|
||||
"dhcpconfig.endip" = "10.0.0.250"
|
||||
"dhcpconfig.subnetmask" = "255.255.255.0"
|
||||
"dhcpconfig.gateway" = "10.0.0.1"
|
||||
"dhcpconfig.leaseduration" = "01:00:00.00"
|
||||
# "dhcpconfig.startip" = "10.0.0.50"
|
||||
# "dhcpconfig.endip" = "10.0.0.250"
|
||||
# "dhcpconfig.subnetmask" = "255.255.255.0"
|
||||
# "dhcpconfig.gateway" = "10.0.0.1"
|
||||
# "dhcpconfig.leaseduration" = "01:00:00.00"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
@ -27,7 +27,6 @@ If ($Parameter['deployment.type'] -eq 'secondary') {
|
||||
|
||||
$NewCimSessionSplat = @{
|
||||
Credential = New-Object System.Management.Automation.PSCredential(
|
||||
###! TODO: Replace this with code to automagically find required accountname (this hardcoded value might not be correct due to GPO's)
|
||||
(Get-ADUser -Filter * | Where-Object {$_.SID -match '-500'}).SamAccountName,
|
||||
(ConvertTo-SecureString $Parameter['addsconfig.administratorpw'] -AsPlainText -Force)
|
||||
)
|
||||
|
@ -1,13 +1,13 @@
|
||||
DeploymentConfigurations:
|
||||
- Id: primary
|
||||
Label: Primary
|
||||
Description: Initial Domain Controller with 'PDC Emulator'-role (redundant deployment)
|
||||
Label: Primary (redundant deployment)
|
||||
Description: Initial Domain Controller with 'PDC Emulator'-role
|
||||
- Id: secondary
|
||||
Label: Secondary
|
||||
Description: Additional Domain Controller (redundant deployment)
|
||||
Label: Secondary (redundant deployment)
|
||||
Description: Additional Domain Controller
|
||||
- Id: standalone
|
||||
Label: Stand-alone
|
||||
Description: Single Domain Controller (non-redundant deployment)
|
||||
Label: Stand-alone (non-redundant deployment)
|
||||
Description: Single Domain Controller
|
||||
PropertyCategories:
|
||||
- Name: ''
|
||||
ProductProperties:
|
||||
|
Loading…
Reference in New Issue
Block a user