Automate sysadmin tasks. Simplify work. Profit.
Much if not all of this module is intended to run off of JSON data describing an infrastructure. This provides a source-controllable, explicit record of how the infrastructure should look/work/function.
An example of what is in use currently:
{
"servers": [
{
"hostname": "srv01",
"roles": [],
"site": "Foxtrot"
},
{
"hostname": "prn01",
"roles": ["print"],
"site": "Zulu"
},
{
"hostname": "prn02",
"roles": ["print"],
"site": "Charlie"
}
]
}Install from GitHub source:
git clone 'https://github.com/devynspencer/powershell-sysadmin'
cd .\powershell-sysadminConfigure local NuGet feed for publishing and/or staging PowerShell modules:
$RegisterParams=@{
Name='Local'SourceLocation='C:\temp\packages\PowerShell'PublishLocation='C:\temp\packages\PowerShell'InstallationPolicy='Trusted'
}
Register-PSRepository@RegisterParamsConfigure team NuGet feed for publishing PowerShell modules:
$RegisterParams=@{
Name='ExampleTeam'SourceLocation='\\example.com\Packages\PowerShell\ExampleTeam'PublishLocation='\\example.com\Packages\PowerShell\ExampleTeam'InstallationPolicy='Trusted'
}
Register-PSRepository@RegisterParamsPublish to local repository:
$PublishParams=@{
Path='.\Sysadmin'Repository='Local'NuGetApiKey=''
}
Publish-Module@PublishParams# Ensure the subdirectory is specified, not the project root$Path="C:\Users\devyn\projects\powershell-sysadmin\Sysadmin"# Copy development PowerShell module from staging directory to local modules directoryDeploy-ProjectModule-Path $Path-Verbose
Import-Module MyProfile -Force -Verbose