2020-12-28 16:07:33 -05:00
|
|
|
This provider updates a Microsoft DNS server.
|
|
|
|
|
|
|
|
It interacts with the server via PowerShell commands. As a result, DNSControl
|
|
|
|
must be run on Windows and will automatically disable itself when run on
|
|
|
|
non-Windows systems.
|
|
|
|
|
|
|
|
DNSControl will use `New-PSSession` to execute the commands remotely if
|
|
|
|
`computername` is set in `creds.json` (see below).
|
|
|
|
|
|
|
|
# Caveats
|
|
|
|
|
|
|
|
* Two systems updating a zone is never a good idea. If Windows Dynamic
|
|
|
|
DNS and DNSControl are both updating a zone, there will be
|
|
|
|
unhappiness. DNSControl will blindly remove the dynamic records
|
|
|
|
unless precautions such as `IGNORE*` and `NO_PURGE` are in use.
|
|
|
|
* This is a new provider and has not been tested extensively,
|
|
|
|
especially the `pssession` feature.
|
|
|
|
|
|
|
|
# Running on Non-Windows systems
|
|
|
|
|
|
|
|
Currently this driver disables itself when run on Non-Windows systems.
|
|
|
|
|
|
|
|
It should be possible for non-Windows hosts with PowerShell Core installed to
|
|
|
|
execute commands remotely via SSH. The module used to talk to PowerShell
|
|
|
|
supports this. It should be easy to implement. Volunteers requested.
|
|
|
|
|
|
|
|
## Configuration
|
|
|
|
|
2022-05-08 14:41:33 -04:00
|
|
|
To use this provider, add an entry to `creds.json` with `TYPE` set to `MSDNS`
|
|
|
|
along with other settings:
|
|
|
|
|
|
|
|
* `dnsserver`: (optional) the name of the Microsoft DNS Server to communicate with.
|
|
|
|
* `pssession`: (optional) the name of the PowerShell PSSession host to run commands on.
|
2023-04-13 12:38:39 -05:00
|
|
|
* `psusername`: (optional) the username to connect to the PowerShell PSSession host.
|
|
|
|
* `pspassword`: (optional) the password to connect to the PowerShell PSSession host.
|
2022-05-08 14:41:33 -04:00
|
|
|
|
|
|
|
Example:
|
2020-12-28 16:07:33 -05:00
|
|
|
|
2023-03-02 22:17:27 +01:00
|
|
|
{% code title="creds.json" %}
|
2022-02-17 18:22:31 +01:00
|
|
|
```json
|
2020-12-28 16:07:33 -05:00
|
|
|
{
|
|
|
|
"msdns": {
|
2022-05-08 14:41:33 -04:00
|
|
|
"TYPE": "MSDNS",
|
2020-12-28 16:07:33 -05:00
|
|
|
"dnsserver": "ny-dc01",
|
2023-04-13 12:38:39 -05:00
|
|
|
"pssession": "mywindowshost",
|
|
|
|
"psusername": "mywindowsusername",
|
|
|
|
"pspassword": "mysupersecurepassword"
|
2020-12-28 16:07:33 -05:00
|
|
|
}
|
|
|
|
}
|
2022-02-17 18:22:31 +01:00
|
|
|
```
|
2023-03-02 22:17:27 +01:00
|
|
|
{% endcode %}
|
2020-12-28 16:07:33 -05:00
|
|
|
|
|
|
|
An example DNS configuration:
|
|
|
|
|
2023-03-11 14:42:01 +01:00
|
|
|
{% code title="dnsconfig.js" %}
|
2023-01-20 13:56:20 +01:00
|
|
|
```javascript
|
2022-05-08 14:41:33 -04:00
|
|
|
var REG_NONE = NewRegistrar("none");
|
|
|
|
var DSP_MSDNS = NewDnsProvider("msdns");
|
2020-12-28 16:07:33 -05:00
|
|
|
|
2022-05-08 14:41:33 -04:00
|
|
|
D("example.tld", REG_NONE, DnsProvider(DSP_MSDNS),
|
|
|
|
A("test", "1.2.3.4")
|
2020-12-28 16:07:33 -05:00
|
|
|
)
|
2022-02-17 18:22:31 +01:00
|
|
|
```
|
2023-03-11 14:42:01 +01:00
|
|
|
{% endcode %}
|