簡體   English   中英

如何將json數據解析為廚師食譜屬性

[英]how to Parse json data into a chef recipe attributes

如何將rest curl命令的json輸出解析為default.rb文件中的屬性值

用例:

在Chef配方屬性-> attribute.rb文件中,具有以下默認屬性,這些默認屬性將由我的配方使用,並且這些值需要使用curl命令以json輸出的形式輸出的隨機生成

default['agent']['id'] = 'F73D3CA4-!#!#-653A-XXXX-BBBBBB'
default['agent']['token'] = '90F1C7EA-*()*-YYYY-2528-ZZZZZZ'

在配方中使用此值-> act.rb使用的語法

tenant_id                       = node['agent']['id']
token                           = node['agent']['token']

在食譜中,食譜通過以下方式使用tenant_id和令牌

dsa_args << " \"tenantID:#{tenant_id}\" \"tenantPassword:#{token}\""

curl用來獲取ID和令牌的命令是:

curl  --insecure -X GET -H "content-type: application/json"  -H 
"Accept: application/json" -d '{}' 
https://XXX.XX.XXX.XX/rest/bat/rant/tenant? 
name=Ante%20Data%20Wortyu%20Details

輸出格式如下

{“ id”:“ 16”,“ name”:“ Ante Data Wortyu Details”,“ state”:“ ACTIVE”,“ tenantID”:“ F73D3CA4-!#!#-653A-XXXX-BBBBBB”,“ tenantPassword” :“ 90F1C7EA- ()- YYYY-2528-ZZZZZZ”}

如何將json格式的輸出傳遞到我的Chef Recipe或屬性文件中。

我通過以下鏈接將其完成,但由於未授權的錯誤而失敗:

https://www.twilio.com/blog/2015/10/4-ways-to-parse-a-json-api-with-ruby.html

任何幫助是極大的贊賞。

謝謝,

這在某種程度上是人為設計的,可能不適合您的整個用例,但這是如何將HTTP請求的響應主體解析為JSON並將其用於Chef屬性的示例。

# recipes/something.rb
require 'rest-client'
require 'json'

jsonResponse = JSON.parse(RestClient.get(URL))
node.override['agent']['id'] = jsonResponse["tenantID"]
node.override['agent']['token'] = jsonResponse["tenantPassword"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM