正如瓷砖所说,我想知道使用这个Get-AnsibleParam函数的方法。更具体地说,在这种情况下如何应用Get-AnsibleParam:
我有一个包含一些变量的YAML文件
---
type: taskWindows
actions:
abortActions: []
emailNotifications: []
setVariableActions: []
snmpNotifications: []
systemOperations: []
agent: test
name: "Test"
summary: "Test"
...
我有一个Powershell脚本:
function Stonebrach.Connect {
param(
[Parameter(Mandatory=$true)]
$Sb_uri,
[Parameter(Mandatory=$true)]
$Auth_filename,
[Parameter(Mandatory=$true)]
$Method,
[Parameter(Mandatory=$false)]
$Body
)
$basicAuth=Get-Content "C:\$auth_filename"
$headers = @{
"Authorization" = $basicAuth
"Content-Type"="application/json"
}
$RSP=$null
try{
if ( $body -eq $null ) {
$response = invoke-restmethod -Uri $Sb_uri -Method $Method -Headers $headers
}
else {
$response = invoke-restmethod -Uri $sb_uri -Method $method -Headers $headers -Body **$body**
}
return $response
}
catch{
$RSP = $_.Exception.Message
return $RSP
}
}
function Stonebranch.Create.Task.Windows {
param(
[Parameter(Mandatory=$true)]
$Sb_base_uri,
[Parameter(Mandatory=$true)]
$Auth_filename,
[Parameter(Mandatory=$true)]
$Method,
[Parameter(Mandatory=$true)]
$Body
)
Stonebrach.Connect -SB_uri $Sb_base_uri/task -Auth_filename
$Auth_filename -Method $Method -Body $Body
}
在这种情况下,我可以使用Get-AnsibleParam将YAML文件(所有这些)中的变量放入PS脚本中的$ body吗?我试着阅读文档,但它是不太清楚如何使用该功能:
请帮忙。感谢
答案 0 :(得分:0)
Get-AnsibleParam
用于访问传递给模块的特定参数。您无法使用它来获取播放手册中的所有变量。
请查看win_ping示例用法:
$params = Parse-Args $args -supports_check_mode $true
$data = Get-AnsibleParam -obj $params -name "data" -type "str" -default "pong"
if ($data -eq "crash") {
throw "boom"
}
在这种情况下,win_ping
可以接受data
类型的string
参数,默认值为pong
。