[英]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.