Skip to content

Instantly share code, notes, and snippets.

@sundmoon
Last active November 8, 2017 20:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sundmoon/c7cdb92954447b7c69c54ee83610cb42 to your computer and use it in GitHub Desktop.
Save sundmoon/c7cdb92954447b7c69c54ee83610cb42 to your computer and use it in GitHub Desktop.
Example Lability tasks using Invoke-Build: please pay attention to the monolithic resposibilities of the only published Start-LabConfiguration cmdlet
param (
[ValidateNotNull()]
$ConfigData = '.\NanoExample.psd1',
[ValidateNotNull()]
$Configuration = 'NanoExample'
)
Configuration BasicClient {...}
Configuration NanoExample {...}
$AdministratorCredential = [pscredential]::new('Administrator', ('Password1' | ConvertTo-SecureString -AsPlainText -Force))
task Compile {
Write-Host 'Generating MOFs' -ForegroundColor Green
invoke-expression "$Configuration -ConfigurationData $ConfigData -OutputPath 'C:\Lability\Configurations' -Credential $AdministratorCredential -Verbose"
}
task Test {
Write-Host 'Verifying lab configuration' -ForegroundColor Green
Test-LabConfiguration -ConfigurationData $ConfigData -Verbose
}
task Config {
Write-Host 'Creating lab' -ForegroundColor Green
Start-LabConfiguration -ConfigurationData $ConfigData -Verbose -IgnorePendingReboot -Credential $AdministratorCredential
}
task Start {
Write-Host 'Starting lab!' -ForegroundColor Green
Start-Lab -ConfigurationData $ConfigData -Verbose
}
task . Compile,Test,Config,Start
task Stop {
Stop-Lab -ConfigurationData $ConfigData
}
task Remove {
Remove-LabConfiguration -ConfigurationData $ConfigData -Verbose -Confirm:$false
}
task Kill Stop,Remove
--------------Usage:-------------
invoke-build Kill -Configuration BasicClient -ConfigData .\Config.psd1
invoke-build -Configuration BasicClient -ConfigData .\Config.psd1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment