WGU D522 | Task 2 | Network DNS Remediation
PERFORMANCE ASSESSMENT MODEL REPORT
WGU D522
Python for IT Automation
Task 2: Automated Network Remediation and Infrastructure
Configuration Management
Prepared by: [Student Name]
Student ID: [Student ID]
Repository URL: [Assigned WGU GitLab Repository URL]
Submission date: [Month Day, Year]
Important: This is an original model report and implementation framework based on the scenario supplied
by the student. It is not evidence that the WGU lab was completed and cannot guarantee an evaluator's
decision. Replace every bracketed value, sample address, result, and yellow box with your own authorized
lab work. Confirm all headings against the current rubric.
Document status: Editable model - execution, screenshots, and final rubric reconciliation required
Student-created timestamped evidence required | Page 1
, WGU D522 | Task 2 | Network DNS Remediation
Submission Readiness and Rubric Map
The report mirrors the supplied B-E layout. The official task instructions remain controlling; if the current rubric uses
additional or differently worded prompts, rename and cross-reference the sections before submission.
Rubric area Report location Student evidence required
B - Backup configuration files Section B Original per-device configuration backups and backup manifest
C - System status verification Section C Pre-remediation service and interface status
D - Configuration remediation Section D Authorized DNS correction and service action output
E - Post-remediation
Section E Clean DNS verification and remediation_report.csv
validation
Timestamped screenshots, incremental commits, final remote
Repository / authorship Sections A and F
repository
Nonnegotiable student actions
• Replace the documentation-only addresses 10.10.10.10 and 10.10.10.20 with the exact corporate DNS values in
the assigned scenario.
• Use only the target devices, credentials, interface name, service name, and remediation method authorized in
the WGU lab.
• Insert full-resolution screenshots from the active VM with its date and time visible in every required image.
• Verify each before/after result on the actual node; never infer success from an SSH command exit code alone.
• Remove all credentials, access tokens, private keys, and sensitive values from Git history and screenshots.
• Complete the actual-results column in the validation matrix and attach the correct repository URL or commit
identifier.
Executive Summary
Task 2 remediates the DNS anomalies identified during Task 1. The proposed Python utility reads a relative-path
CSV inventory, creates local backup and log directories with pathlib, authenticates to each targeted Linux node
through Paramiko, captures the original interface DNS and systemd-resolved service state, and writes an immutable
timestamped backup before making any change. The program then determines whether the resolver service is
active, starts it when authorized and necessary, applies the approved DNS servers to the assigned interface, and
verifies the effective configuration with resolvectl status.
A remediation is reported as VERIFIED only when the post-change observed DNS set exactly matches the
approved corporate baseline and the resolver service is active. Failed reachability, authentication, privilege
escalation, service control, command execution, parsing, or verification are recorded as distinct outcomes. The
script generates a timestamped remediation_report.csv and detailed application log, continues safely after
device-level failures, and never stores a password in source control.
Technical boundary: The default implementation performs an active, interface-level correction using
resolvectl. This may be runtime state rather than a persistent network-manager configuration. If the official
lab requires persistence after reboot, use only the exact persistent file or manager specified by the scenario,
back it up first, and add a reboot/persistence verification step.
Student-created timestamped evidence required | Page 2
, WGU D522 | Task 2 | Network DNS Remediation
Assumptions requiring confirmation
Item Model value Required confirmation
Inventory network_devices.csv Use the supplied filename and headers
Interface ens3 Confirm per node or store in CSV
Resolver service systemd-resolved Confirm exact service unit
Approved DNS 10.10.10.10, 10.10.10.20 Replace with scenario values
Privilege method sudo -n Confirm passwordless sudo or approved alternative
Remediation scope Runtime interface DNS Confirm whether persistence is required
A. Environment, Repository, and Program Design
A1. Repository and dependency setup
The student should clone the assigned WGU GitLab repository, create a virtual environment, install Paramiko, and
record dependencies. Personal access tokens must never be committed or left visible in screenshots.
git clone [ASSIGNED_WGU_GITLAB_URL]
cd [ASSIGNED_REPOSITORY_DIRECTORY]
python3 -m venv .venv
source .venv/bin/activate
python -m pip install paramiko
python -m pip freeze > requirements.txt
git status
FIGURE 1 - INSERT YOUR OWN UNALTERED, TIMESTAMP-VISIBLE LAB SCREENSHOT
Task 2 repository and Python environment
Show the cloned repository, activated environment, Python version, dependency confirmation, and active
VM clock.
Capture rule: the active VM date and time, device or repository identity, command, and readable output
must be visible. Keep the complete image proportional; do not crop away the desktop clock or relevant
terminal context.
A2. Portable repository structure
d522-task2/
|-- task2_remediate.py
|-- network_devices.csv
|-- requirements.txt
|-- README.md
|-- .gitignore
|-- backups/ # generated relative path
|-- logs/ # generated relative path
| |-- remediation.log
| `-- remediation_report_YYYYMMDD_HHMMSS.csv
`-- tests/
`-- test_remediation_logic.py
All paths are derived from the project directory or command-line options through pathlib.Path. No user-specific
absolute path is embedded in the source. Generated backups and logs should be committed only if the current
rubric explicitly requires them and they contain no prohibited information.
A3. Controlled remediation workflow
1. Load and validate the device inventory and approved DNS baseline.
2. Create the relative backup and log directories.
3. Reach the node, authenticate, and capture the original DNS and service state.
Student-created timestamped evidence required | Page 3
PERFORMANCE ASSESSMENT MODEL REPORT
WGU D522
Python for IT Automation
Task 2: Automated Network Remediation and Infrastructure
Configuration Management
Prepared by: [Student Name]
Student ID: [Student ID]
Repository URL: [Assigned WGU GitLab Repository URL]
Submission date: [Month Day, Year]
Important: This is an original model report and implementation framework based on the scenario supplied
by the student. It is not evidence that the WGU lab was completed and cannot guarantee an evaluator's
decision. Replace every bracketed value, sample address, result, and yellow box with your own authorized
lab work. Confirm all headings against the current rubric.
Document status: Editable model - execution, screenshots, and final rubric reconciliation required
Student-created timestamped evidence required | Page 1
, WGU D522 | Task 2 | Network DNS Remediation
Submission Readiness and Rubric Map
The report mirrors the supplied B-E layout. The official task instructions remain controlling; if the current rubric uses
additional or differently worded prompts, rename and cross-reference the sections before submission.
Rubric area Report location Student evidence required
B - Backup configuration files Section B Original per-device configuration backups and backup manifest
C - System status verification Section C Pre-remediation service and interface status
D - Configuration remediation Section D Authorized DNS correction and service action output
E - Post-remediation
Section E Clean DNS verification and remediation_report.csv
validation
Timestamped screenshots, incremental commits, final remote
Repository / authorship Sections A and F
repository
Nonnegotiable student actions
• Replace the documentation-only addresses 10.10.10.10 and 10.10.10.20 with the exact corporate DNS values in
the assigned scenario.
• Use only the target devices, credentials, interface name, service name, and remediation method authorized in
the WGU lab.
• Insert full-resolution screenshots from the active VM with its date and time visible in every required image.
• Verify each before/after result on the actual node; never infer success from an SSH command exit code alone.
• Remove all credentials, access tokens, private keys, and sensitive values from Git history and screenshots.
• Complete the actual-results column in the validation matrix and attach the correct repository URL or commit
identifier.
Executive Summary
Task 2 remediates the DNS anomalies identified during Task 1. The proposed Python utility reads a relative-path
CSV inventory, creates local backup and log directories with pathlib, authenticates to each targeted Linux node
through Paramiko, captures the original interface DNS and systemd-resolved service state, and writes an immutable
timestamped backup before making any change. The program then determines whether the resolver service is
active, starts it when authorized and necessary, applies the approved DNS servers to the assigned interface, and
verifies the effective configuration with resolvectl status.
A remediation is reported as VERIFIED only when the post-change observed DNS set exactly matches the
approved corporate baseline and the resolver service is active. Failed reachability, authentication, privilege
escalation, service control, command execution, parsing, or verification are recorded as distinct outcomes. The
script generates a timestamped remediation_report.csv and detailed application log, continues safely after
device-level failures, and never stores a password in source control.
Technical boundary: The default implementation performs an active, interface-level correction using
resolvectl. This may be runtime state rather than a persistent network-manager configuration. If the official
lab requires persistence after reboot, use only the exact persistent file or manager specified by the scenario,
back it up first, and add a reboot/persistence verification step.
Student-created timestamped evidence required | Page 2
, WGU D522 | Task 2 | Network DNS Remediation
Assumptions requiring confirmation
Item Model value Required confirmation
Inventory network_devices.csv Use the supplied filename and headers
Interface ens3 Confirm per node or store in CSV
Resolver service systemd-resolved Confirm exact service unit
Approved DNS 10.10.10.10, 10.10.10.20 Replace with scenario values
Privilege method sudo -n Confirm passwordless sudo or approved alternative
Remediation scope Runtime interface DNS Confirm whether persistence is required
A. Environment, Repository, and Program Design
A1. Repository and dependency setup
The student should clone the assigned WGU GitLab repository, create a virtual environment, install Paramiko, and
record dependencies. Personal access tokens must never be committed or left visible in screenshots.
git clone [ASSIGNED_WGU_GITLAB_URL]
cd [ASSIGNED_REPOSITORY_DIRECTORY]
python3 -m venv .venv
source .venv/bin/activate
python -m pip install paramiko
python -m pip freeze > requirements.txt
git status
FIGURE 1 - INSERT YOUR OWN UNALTERED, TIMESTAMP-VISIBLE LAB SCREENSHOT
Task 2 repository and Python environment
Show the cloned repository, activated environment, Python version, dependency confirmation, and active
VM clock.
Capture rule: the active VM date and time, device or repository identity, command, and readable output
must be visible. Keep the complete image proportional; do not crop away the desktop clock or relevant
terminal context.
A2. Portable repository structure
d522-task2/
|-- task2_remediate.py
|-- network_devices.csv
|-- requirements.txt
|-- README.md
|-- .gitignore
|-- backups/ # generated relative path
|-- logs/ # generated relative path
| |-- remediation.log
| `-- remediation_report_YYYYMMDD_HHMMSS.csv
`-- tests/
`-- test_remediation_logic.py
All paths are derived from the project directory or command-line options through pathlib.Path. No user-specific
absolute path is embedded in the source. Generated backups and logs should be committed only if the current
rubric explicitly requires them and they contain no prohibited information.
A3. Controlled remediation workflow
1. Load and validate the device inventory and approved DNS baseline.
2. Create the relative backup and log directories.
3. Reach the node, authenticate, and capture the original DNS and service state.
Student-created timestamped evidence required | Page 3