【问题标题】:powershell invoke rest api toward AWXpowershell 向 AWX 调用 rest api
【发布时间】:2021-04-26 19:06:49
【问题描述】:

上周或更长时间,我一直在努力从 powershell 发送 rest api 命令以在 AWX 中添加主机(来自 curl 正在工作)。当我发送一个参数是 worki 但我还需要发送变量

$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "Basic $VfAwxTokenX")
$Headers.Add('Content-Type', 'application/json')
$body = @{
  name = '$vmname'
  variables = 'test'

}| ConvertTo-Json  
write-output    $body
$response = Invoke-RestMethod 'https://awx/api/v2/inventories/2/hosts/' -Method 'POST' -Headers $headers -UseBasicParsing -Body $body

我得到的错误:

{ “名称”:“我们”, "variables": "test" } Invoke-RestMethod : {"variables":["Cannot parse as JSON (error: Expecting value: line 1 column 1 (char 0)) 或 YAML(错误:输入类型 str 不是字典)。”]} 在第 32 行 字符:13

  • $response = Invoke-RestMethod 'https://awx/api ... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~
  • CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], 网络异常
  • FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand

也许任何一个用户都有这个问题,现在如何克服它?

【问题讨论】:

    标签: powershell rest ansible-awx


    【解决方案1】:

    根据我的研究,参数variables应该定义为JSON或YAML格式。更多详情请参考here

    更多API调用方法请参考blog

    【讨论】:

      【解决方案2】:

      问题很简单

        variables = 'test' 
      

      如果我放了其他东西,那么测试就可以了:/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-05
        • 1970-01-01
        • 1970-01-01
        • 2020-07-30
        • 2019-03-27
        • 2019-09-26
        相关资源
        最近更新 更多