Cloud Foundry service broker開發(fā)部署實(shí)例解析(下)
通過(guò)上篇,我們得到service broker的程序包,之后我們將其部署到CF上,得到真正能使用的市場(chǎng)服務(wù)。
發(fā)布應(yīng)用程序
將源代碼中的application.properties里的spring.jpa.hibernate.ddl-auto配置為create,編譯打包發(fā)布到CF上:
- cf push samplebroker -p ./cf-sample-servicebroker.jar1
創(chuàng)建一個(gè)MySQL服務(wù)實(shí)例,并綁定到此應(yīng)用上:
- cf cs p-mysql 100m-dev samplebrokerdb
- cf bs samplebroker samplebrokerdb
- cf restart samplebroker123
將源代碼中的application.properties里的spring.jpa.hibernate.ddl-auto配置為validate,重新編譯打包發(fā)布到CF上:
- cf push samplebroker -p ./cf-sample-servicebroker.jar1
初始化服務(wù)信息
用ssh登陸Ops Manager的ubuntu,獲取服務(wù)ID,其中的adminpassword就是Ops Manager的Elastic Runtime的credential頁(yè)里的UAA模塊admin的密碼,samplebroker.open.mydomain.com是上一步發(fā)布的應(yīng)用的域名
- curl -i -H "Content-type: application/json" -b cookies.txt -X GET http://admin:adminpassword@samplebroker.open.mydomain.com/v2/catalog1
為對(duì)應(yīng)的服務(wù)ID添加3個(gè)服務(wù)計(jì)劃,其中的GUID是上一步中獲取的,具體計(jì)劃的詳細(xì)信息請(qǐng)根據(jù)實(shí)際的資源情況進(jìn)行修改
- curl -i -H "Content-type: application/json" -b cookies.txt -X POST http://admin:adminpassword@samplebroker.open.mydomain.com/v2/catalog/services/590017dc-1fd2-4cbc-99e6-ae668107cc7a/plans -d '{"name" : "bronze","description" : "all apps share 1 RV node","metadata" : {"max_size" : "10240M","connections" : 100,"bullets" : ["Each app has its own credential","100 apps at most"],"displayName":"Bronze"}}'
- curl -i -H "Content-type: application/json" -b cookies.txt -X POST http://admin:adminpassword@samplebroker.open.mydomain.com/v2/catalog/services/590017dc-1fd2-4cbc-99e6-ae668107cc7a/plans -d '{"name" : "silver","description" : "10 apps share 1 RV node","metadata" : {"max_size" : "20480M","connections" : 10,"bullets" : ["Each app has its own credential","10 apps for 1 RV node at most"],"displayName":"Silver"}}'
- curl -i -H "Content-type: application/json" -b cookies.txt -X POST http://admin:adminpassword@samplebroker.open.mydomain.com/v2/catalog/services/590017dc-1fd2-4cbc-99e6-ae668107cc7a/plans -d '{"name" : "gold","description" : "Each apps has its own RV node","metadata" : {"max_size" : "30720M","connections" : 1,"bullets" : ["Each app has its own credential","1 app for 1 RV node at most"],"displayName":"Gold"}}'123
根據(jù)前三條命令的輸出里的ID信息為每個(gè)服務(wù)計(jì)劃添加單價(jià)
- curl -i -H "Content-type: application/json" -b cookies.txt -X PUT http://admin:adminpassword@samplebroker.open.mydomain.com/v2/catalog/services/590017dc-1fd2-4cbc-99e6-ae668107cc7a/plans/29cf4cb9-4d85-42a2-89b8-65db630357c5/costs -d '{"amount":{"usd":1.0},"unit":"day"}'
- curl -i -H "Content-type: application/json" -b cookies.txt -X PUT http://admin:adminpassword@samplebroker.open.mydomain.com/v2/catalog/services/590017dc-1fd2-4cbc-99e6-ae668107cc7a/plans/12dd3ed1-7076-409e-8a64-568c3edd82e4/costs -d '{"amount":{"usd":10.0},"unit":"day"}'
- curl -i -H "Content-type: application/json" -b cookies.txt -X PUT http://admin:adminpassword@samplebroker.open.mydomain.com/v2/catalog/services/590017dc-1fd2-4cbc-99e6-ae668107cc7a/plans/b4897b00-b6cc-4295-9dbb-bf4084fe4c97/costs -d '{"amount":{"usd":100.0},"unit":"day"}'123
對(duì)于每一個(gè)服務(wù)計(jì)劃,添加資源池,其中的資源信息按照實(shí)際情況進(jìn)行修改
- curl -i -H "Content-type: application/json" -b cookies.txt -X PUT http://admin:adminpassword@samplebroker.open.mydomain.com/v2/catalog/services/590017dc-1fd2-4cbc-99e6-ae668107cc7a/plans/29cf4cb9-4d85-42a2-89b8-65db630357c5/pool -d '{"kcxpaddr":"10.23.119.61","kcxpport":"21000","rvipaddr":"10.23.119.57","rvport":"7500","username":"sxiang","password":"888888"}'
- curl -i -H "Content-type: application/json" -b cookies.txt -X PUT http://admin:adminpassword@samplebroker.open.mydomain.com/v2/catalog/services/590017dc-1fd2-4cbc-99e6-ae668107cc7a/plans/12dd3ed1-7076-409e-8a64-568c3edd82e4/pool -d '{"kcxpaddr":"10.23.119.61","kcxpport":"21000","rvipaddr":"10.23.119.57","rvport":"7500","username":"sxiang","password":"888888"}'
- curl -i -H "Content-type: application/json" -b cookies.txt -X PUT http://admin:adminpassword@samplebroker.open.mydomain.com/v2/catalog/services/590017dc-1fd2-4cbc-99e6-ae668107cc7a/plans/b4897b00-b6cc-4295-9dbb-bf4084fe4c97/pool -d '{"kcxpaddr":"10.23.119.61","kcxpport":"21000","rvipaddr":"10.23.119.57","rvport":"7500","username":"sxiang","password":"888888"}'123
發(fā)布service
- cf create-service-broker p-sample admin adminpassword https://samplebroker.open.mydomain.com1
創(chuàng)建service broker
獲取3個(gè)服務(wù)計(jì)劃的GUID
- cf curl /v2/service_plans1
將3個(gè)服務(wù)計(jì)劃設(shè)置為可見
- cf curl /v2/service_plans/54beb2e7-a5c5-40c4-9a9b-e12c8edef4be -X PUT -d '{"public":true}'1
擴(kuò)容
擴(kuò)容時(shí),需要使用a步增加資源池的容量,然后修改MySQL中的數(shù)據(jù),再重啟service broker應(yīng)用
到此為止,在CLI或者GUI的maketplace里,就能找到這個(gè)p-sample的服務(wù)了。聲明,本文中的源代碼來(lái)源于github的開源代碼,筆者進(jìn)行了修正和完善。