Skip to content

Instantly share code, notes, and snippets.

Avatar
🏠
Working from home

Gael gaelcolas

🏠
Working from home
View GitHub Profile
@gaelcolas
gaelcolas / kitchen.yml
Created Jun 8, 2022
example kitchen yaml for testing GC packages
View kitchen.yml
---
# Check this doc: https://github.com/test-kitchen/kitchen-azurerm
# you may set the following environment variables:
# AZURE_CLIENT_ID="your-azure-client-id-here"
# AZURE_CLIENT_SECRET="your-client-secret-here"
# AZURE_TENANT_ID="your-azure-tenant-id-here"
# (check doc https://github.com/test-kitchen/kitchen-azurerm for more details)
driver:
name: azurerm
@gaelcolas
gaelcolas / Invoke-SamplerGit.ps1
Last active May 30, 2022
Testing a task file for git public/private repo release structure
View Invoke-SamplerGit.ps1
<#
.SYNOPSIS
Executes git with the provided arguments.
.DESCRIPTION
This command executes git with the provided arguments and throws an error
if the call failed.
.PARAMETER Argument
@gaelcolas
gaelcolas / dummy jinja composite.ps1
Created Apr 22, 2021
basic jinja composite with explicit parameters
View dummy jinja composite.ps1
Configuration MyComposite {
Params (
$TemplateFilePath = 'MyJinja2Template.tpl',
$parameter1,
$parameter2
)
$tempParamFile = [io.Path]::GetTempFileName()
@gaelcolas
gaelcolas / Invoke-TestHandlerAction.ps1
Created Nov 7, 2018
Example of a Datum handler that can reference another datum based on its path (rough and dirty)
View Invoke-TestHandlerAction.ps1
function Invoke-TestHandlerAction {
Param(
$Password,
$test,
$Datum,
$Node,
View MyDscConfig.ps1
Configuration MyDscConfig {
# Import the module that has the 'ServerType' configuration
Import-DscResource -ModuleName Platform
# Import the module that has the 'Application' Configuration
Import-DscResource -ModuleName Product
$ConfigurationData.AllNodes.Nodename {
$ConfigurationData.Roles.($Node.Role).configurations.Foreach{
$ConfigurationName = $_
$ConfigurationParameters = $ConfigurationData.Roles.($Node.Role).($ConfigurationName)
View Get-DscSplattedResource.ps1
function Global:Get-DscSplattedResource {
[CmdletBinding()]
Param(
[String]
$ResourceName,
[String]
$ExecutionName,
[hashtable]
View pseudoCodeDscConfig.ps1
foreach($Node in $ConfigurationData.AllNodes) {
# Retrieving the DSC Composite Resource name to include
$configurations = $ConfigurationData.Roles.($Node.Role).configurations
foreach($ConfigurationName in $configurations) {
$ConfigurationParameters = $ConfigurationData.Roles.($Node.Role).($ConfigurationName)
# Splat the Configuration Parameters defined in the Role to the Composite resource
&$ConfigurationName @ConfigurationParameters
}
}
View ConfigData.ps1
$ConfigurationData = @{
AllNodes = @(
@{
Nodename = 'SRV01'
Role = 'ServerType1_Application'
},
@{
Nodename = 'SRV02'
Role = 'ServerType2_Application'
}
View MyDscConfig.ps1
Configuration MyDSCConfig {
Node $ConfigurationData.AllNodes.nodename {
if($Node.roles -contains 'MyRole') {
# do stuff here, like calling DSC Resources
MyCompositeResource StuffForMyRole {
# ...
}
}
View PSDSC_Config.ps1
configuration MyConfig {
Param()
if($Node.Role -contains 'DHCPData' -and $Node.Customers -eq 'CustomerA') {
$Domain = $ConfigurationData.customerA.Domain
}
else {
$Domain = $ConfigurationData.DefaultDomain.Domain
}
File MyDomainFile {
Ensure = 'Present'