diff --git a/JSONfunctions.psm1 b/JSONfunctions.psm1 new file mode 100644 index 0000000..663708d --- /dev/null +++ b/JSONfunctions.psm1 @@ -0,0 +1,28 @@ +function Get-ServerConfig { + param( + [string]$Path = ".\servers.json" + ) + + if (-not (Test-Path $Path)) { + throw "Config-Datei nicht gefunden: $Path" + } + + return Get-Content $Path -Raw | ConvertFrom-Json +} + +function Set-ServerConfig { + param( + [string]$Path = ".\servers.json", + [string]$Name + ) + + $servers = Get-ServerConfig -Path $Path + + $server = $servers.groups.TST | Where-Object {$_.name -eq $Name} + $server | Add-Member -MemberType NoteProperty -Name "role" -Value "web" + + $servers | ConvertTo-Json -Depth 10 | Set-Content $Path + + + return $server +} \ No newline at end of file diff --git a/servers.json b/servers.json index bca5c94..59f787e 100644 --- a/servers.json +++ b/servers.json @@ -1,15 +1,26 @@ { "groups": { "TST": [ - { "name": "serverTST1" }, - { "name": "serverTST2" } + { + "name": "serverTST1", + "role": "web" + }, + { + "name": "serverTST2" + } ], "ABN": [ - { "name": "serverABN1" } + { + "name": "serverABN1" + } ], "PRD": [ - { "name": "serverPRD1" }, - { "name": "serverPRD2" } + { + "name": "serverPRD1" + }, + { + "name": "serverPRD2" + } ] } -} \ No newline at end of file +}