日韩少妇无删减的电影在线视频观看-久久久伊人中文字幕-91成人在线视频观看-欧美日韩一区二区三区四区五区-激情五月天网站视频-欧美另类丰满熟妇xx-999re这里只有国产精品-国产蜜臀福利久久久av-人妻中文字幕av精,国产成人精品在线观看视频,69精品人妻久久久久久久,欧美日韩日欧美日韩中

每日觀點(diǎn):Shell腳本實(shí)戰(zhàn):Consul 服務(wù)注冊和注銷的最佳實(shí)踐

來源:嗶哩嗶哩

業(yè)務(wù)爸爸需求: 寫一個(gè)腳本用于向 Consul 注冊或注銷服務(wù)。


(資料圖片)

Consul API 實(shí)現(xiàn)服務(wù)的注冊和注銷功能

拿到這個(gè)需求,我第一時(shí)間想到是用 curl 調(diào)用 Consul API 實(shí)現(xiàn)服務(wù)的注冊和注銷功能。 如下:

#!/bin/bashCONSUL_TOKEN="<your_token_here>"CONSUL_URL="http://localhost:8500"function?register_service?{??curl?\????--request?PUT?\????--header?"Content-Type:?application/json"?\????--header?"X-Consul-Token:?${CONSUL_TOKEN}"?\????--data?"@-?${CONSUL_URL}/v1/agent/service/register"?<<EOF{??"ID":?"${1}",??"Name":?"${2}",??"Address":?"${3}",??"Port":?${4}}EOF}function?deregister_service?{??curl?\????--request?PUT?\????--header?"X-Consul-Token:?${CONSUL_TOKEN}"?\????"${CONSUL_URL}/v1/agent/service/deregister/${1}"}#?example?usageregister_service?"my-service"?"My?Service"?"localhost"?8080deregister_service?"my-service"

在這個(gè)實(shí)現(xiàn)中,我們將認(rèn)證token存儲在CONSUL_TOKEN變量中,并在curl請求中使用--header "X-Consul-Token: ${CONSUL_TOKEN}"來添加它。

這個(gè)是可以實(shí)現(xiàn)業(yè)務(wù)爸爸的需求, 但是,這種實(shí)現(xiàn)有以下幾個(gè)問題:

1.?不能批量添加相同的類型的指標(biāo)。

2.?唯一ID需要手動(dòng)維護(hù)。

3.?沒有配置文件留底,雖然三節(jié)點(diǎn)的consul集群很小概率同時(shí)出問題, 但是有留底還是一個(gè)很好習(xí)慣。

基于這個(gè)幾個(gè)點(diǎn), 寫入下面實(shí)現(xiàn)腳本。

register 和 deregister實(shí)現(xiàn)

#!/bin/bash#?author?小毛驢#?SHELL_DIR=$(cd?$(dirname?$0);pwd)BACKUP_DIR=${SHELL_DIR}"/consulbackup"SOURCEFILE=${SHELL_DIR}"/origin.json"LOGFILE=${SHELL_DIR}"/add.log"BASESVCRIR=/data/consul/config/TOKENFILE=/data/consul/consul_token.yaml?OPTION=${OPTION:="1"}ENV=${ENV:="prod"}PROJECT=${PROJECT:="fb"}MODULE=${MODULE:="api"}SERVICENAME=${SERVICENAME:="node-exporter"}NAME=${NAME:="core"}TAG=${TAG:="node-exporter"}IPADDRS=""IPADDR=""PORT=${PORT:="9520"}LEGAL_IP="^([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$"if?[?!?-e?"${BACKUP_DIR}"?];then????mkdir?-p?${BACKUP_DIR}fifunction?usage(){????????echo?-e?"\nUsage:?$0?<option>?<value>"????????echo?-e?"\n?option:"????????echo?-e?"\n?-o,--option????option?name,?default?1:add?,?2:delete"????????echo?-e?"\n?-e,--env???????env?name,?default?prod"????????echo?-e?"\n?-p,--project???project?name,?default?fb"????????echo?-e?"\n?-m,--module????module?name,?default?api"????????echo?-e?"\n?-n,--name??????api?name,?default?core"????????echo?-e?"\n?-s,--svcname???serviceName?name,?default?node-exporter"????????echo?-e?"\n?-t,--tag???????tag?name,?default?node-exporter"????????echo?-e?"\n?-a,--address???ip?address,?eg?1.1.1.1|2.2.2.2?default?''?[Require]"????????echo?-e?"\n?-i,--interface?interface?num?default?9520"????????echo?-e?"\n?-h,--help??????help"}function?checkIp(){????#正則表達(dá)式檢驗(yàn)?ip?地址????[[??$1?=~?$LEGAL_IP?]]????if?[?$??-gt?0?];?then????????echo?"$1?is?an?error?ip?fromat"????????exit?10????fi}function?svcDeregister()?{????if?[?!?-e?"$1"?];then????????echo?"$1?not?exit,?please?check!"????else????????/bin/consul?services?deregister??-token-file=${TOKENFILE}??$1????fi}function?svcRegister()?{????if?[?!?-e?"$1"?];then????????echo?"$1?not?exit,?please?check!"????else????????/bin/consul?services?register??-token-file=${TOKENFILE}?$1????fi}function?genJson()?{cat?>?"${SERVICENAME}-${ENV}-${PROJECT}-${MODULE}-${NAME}-${IPADDR}.json"?<<EOF{??"service":?{????"id":?"${SERVICENAME}-${ENV}-${PROJECT}-${MODULE}-${NAME}-${IPADDR}",????"name":?"${SERVICENAME}",????"tags":?[???????"${TAG}"????],????"address":?"${IPADDR}",????"port":?${PORT},????"meta":?{??????"name":?"${NAME}-${IPADDR}",??????"module":?"${MODULE}",??????"project":?"${PROJECT}",??????"env":?"${ENV}"????},????"check":?{??????"http":?"http://${IPADDR}:${PORT}/metrics",??????"interval":?"10s"????},????"weights":?{??????"passing":?10,??????"warning":?1????}??}}EOF}function?removeJson()?{????mv?"${SERVICENAME}-${ENV}-${PROJECT}-${MODULE}-${NAME}-${IPADDR}.json"??${BACKUP_DIR}}function?main()?{????if?(($#?==?0));then????????usage????????exit????fi????cd?${SHELL_DIR}????while?[?-n?"$1"?];do????????case?$1?in?????????-o|--option?)????????????OPTION=$2????????????shift????????????;;????????-e|--env?)????????????ENV=$2????????????shift????????????;;????????-p|--project?)????????????PROJECT=$2????????????shift????????????;;????????-m|--module??)????????????MODULE=$2????????????shift????????????;;????????-n|--name?)????????????NAME=$2????????????shift????????????;;????????-s|--svcname?)????????????SERVICENAME=$2????????????shift????????????;;????????-t|--tag?)????????????TAG=$2????????????shift????????????;;????????-a|--address?)????????????IPADDRS=$2????????????shift????????????;;????????-i|--interface?)????????????PORT=$2????????????shift????????????;;????????-h|--help?)????????????usage????????????exit????????????;;????????*)????????????echo?-e?"\n$1?unknow?an?option"????????????usage????????????exit????????esac????????shift?????done????if?[?"${IPADDRS}"x?==?""x?];then????????echo?-e?"\n-a|--address?option?is?Require"????????usage????????exit????fi????SVCRIR="${BASESVCRIR}/${SERVICENAME}"????if?[?!?-e?"${SVCRIR}"?];then????????mkdir?-p?${SVCRIR}????fi????cd?${SVCRIR}????hosts=($(echo?${IPADDRS}?|?sed?'s/|/?/g'))????for((?i=0;i<${#hosts[@]};i++))?????do????????echo?${hosts[$i]}????????checkIp?${hosts[$i]}????????IPADDR="${hosts[$i]}"????????if?[[?"${OPTION}"x?==?"1"x??]];?then????????????genJson????????????#statements????????????svcRegister?"${SERVICENAME}-${ENV}-${PROJECT}-${MODULE}-${NAME}-${IPADDR}.json"?????????fi????????if?[[?"${OPTION}"x?==?"2"x??]];?then????????????#statements????????????svcDeregister?"${SERVICENAME}-${ENV}-${PROJECT}-${MODULE}-${NAME}-${IPADDR}.json"?????????????removeJson????????fi????done?}main?$@

這個(gè)腳本首先定義了BACKUP_DIR,BASESVCRIR 和TOKENFILE 等路徑。

用法

./register-service.sh?[OPTIONS]參數(shù)-h,?--help:?顯示幫助信息并退出。-o,?-option:?1?register?;?2?deregister-e,--env???????環(huán)境標(biāo)識,?default?prod-p,--project??項(xiàng)目名字,?default?fb-m,--module???業(yè)務(wù)模塊名,?default?api-n,--name??????模塊下面的應(yīng)用名,?default?core-s,--svcname???service?名字,?default?node-exporter-t,--tag???????tag?名字,?default?node-exporter-a,--address???需要注冊到該服務(wù)的地址,多個(gè)以“|”分開,,?eg?1.1.1.1|2.2.2.2?default?''?[Require],必須提供-i,--interface??需要注冊的端口?9520

./register-service.sh -o 1 -e prod -p fb -m ops -n consul-ops -s consul_exporter-t consul_exporter -a "10.2.0.6|10.2.0.10|10.2.0.41" -i 9107

標(biāo)簽:

推薦

財(cái)富更多》

動(dòng)態(tài)更多》

熱點(diǎn)

欧美第一第二视频-成全影视大全在线观看国语-美女下面免费-高清版完整版未删减 | 台湾十八成人中文网-一本到视频免费-被C到喷水嗯H厨房交换视频-欧美色图片区 | 四十路 素人 美熟女 中出-偷拍九九视频精品免费-伊人第七色-亚洲人Jizzy日本jiz人 | 男人操东北女人对白真人视频-老熟女偷窥-欧美肥婆性猛交XXXX节目分类-国产操女人 | 亚洲淫淫网3P-国产精品无码a∨-天天操熟女-森泽佳奈黄片 | 精品国产亚洲av麻豆-欧美第1页—456视频-日本美女后入-久色综 | 国产又粗又黄又爽又硬P站-日韩在线 np-欧美日韩淫荡女人-3B肉蒲团之四虎影库之嫩嫩草 | 亚洲午夜国产精品无码老牛影视-美女又爽 又黄 免费孕妇-夜本色狼人AV-一区二区三区AV夏目彩春 | 干韩国洁白人妻-五十路ヘンリー冢本XXX-北条麻纪日韩伦理-精品无码西川结衣av | 在书签xxx上观看最高质量的免费色情影片。-中文字幕中文有码在线-波多野42部喷潮在线观看-日本一道本欧美俺来也 | 林熙蕾的胸被揉到高潮-黑人做爰猛烈叫床视频-gogogo国语高清完整-日本精品XXXXX | futa女女疯狂榨精3D-国产亚洲精久久久久久叶玉卿-高清在线播放观看 精品成人A片久久久久久船舶-安徽妇搡BBBB搡BBBB | jizzcccc中国-午夜无码鲁丝片久久成人18免费网站-精品国产一区二区三区免费久久网-后入美女在线 Japanese在线野狼视频-亚洲2020久久久久久久-干BBB-影音先锋伊人 | 亚洲午夜国产精品无码老牛影视-美女又爽 又黄 免费孕妇-夜本色狼人AV-一区二区三区AV夏目彩春 | 熟女半推半就88Av-女性自慰免费在线观看-老熟妇999-中文字幕1111页 | 日韩欧美一区二区三区在线播放-欧美大香蕉伊人-美女洗澡AV网站-亚洲视频3 | 一本色爱爱-久久女上位-亚洲永久无码7777kkk-内射日本女人 | 黄色片操逼-日韩欧美40路视屏-少妇人妻偷人精品免费视频-污污的网站 | 寂寞人妻武藤绫香在线-伊人成年电影-超碰chaopor-黑人裸体美女 | 伊伊成人网-亚洲宗人网-成人三级电影导航-ts人妖另类精品视频系列 | 一级艹比-18禁爆乳美女脱内衣裸体网站-伊人 色悠悠-尻老女人 | 人妻交换第一区-无套中出大桥未久-中日韩一区二区视频-2019中文字幕日韩 | 人妻丰满熟妇av无码区免-免费在线观看尤物视频-亚洲第一伊人-1080BD在线观看 | 免费v片-法国日韩在线视频-小FreeXXXVideos娃性-国产第一福利 久久99在线视频 | 四川BBBB搡BBB搡B1-无码不卡中文字幕一区二区三区-蓝光在线播放观看 久久亚洲视频-婴交从小就做H高 | 老女人毛片50一60岁-国产性―交一乱―色―情人-免费国语全集在线观看-成人AV-肥臀大腚BBWBBW-日韩肉感熟女 | 91狼人影院-中文字幕不卡在线视频-夜夜夜撸啊撸- BD国语高清在线观看 | 亚洲AV无码精品国产电视剧-欧美疯狂做受XXXX富婆-国产美女做爱-在线日本人www. | 操逼短视频-巩俐A级无码毛片-伊人日本电影-女自慰 无遮挡免费观看 | 亚洲春色古典小说自拍-水野优香成人无码电影-国产精品JIZZ在线观看无码-免费色色 | 亚洲无吗一级淫片在线观看-10000拍拍拍18勿入免费看-国99精品无码一区二区三区-1080P日韩电影在线 亚洲av永久纯肉无码精品动漫 白嫩美在线自慰-日本迷J灌醉下药视频-久久熟女人妻-女色AV | 女同另类激情-美国三级少妇三级6699-操嫩b-老B老熟女老骚B | hdi99-成人国产自慰-竹菊传媒一区二区三区-天天干夜夜操 | 亚洲日韩欧美国产brandistep-中国老熟女重囗味hdxx-黑人泄欲一区二区三区-电影一区二区日韩电影 自拍偷拍视频43-黄片hhh-狠牛影视在线一区-久久精品视频4242 | 班长摸着自己的胸 说哎太小了-伊人电影色-美女自慰网址在线免费观看使用-国产一二三四五 | 中国老熟女-奶水尤物又软又喷奶水h羞羞视频-26uuu日韩-女人与大黄拘作爱免费 | 黑人大鷄巴精品A片-中文字幕三页-国产中文字幕乱人伦在线观看-日本高清色图 | 剧情片在线观看视频 欧美日韩精品一区二区另类-国产女教师一级爽A片app-天天干天天色狼人综合伊人-国产第六页 | 亂伦HD裸体按摩HD-日韩a高清极品三级-午夜不卡av免费-国产熟女群搜索91Porn | 欧美内射视频-蓝光高清视频播放 麻豆国产精品无码视频桃花园-国产无码美脚人妻极品-亚洲一区无码精品色 | wwww啊啊啊啊-91肏你-蓝光电影在线看 亚洲欧美一二三区-老熟女翔田千里与黑人 |