zoukankan      html  css  js  c++  java
  • consul 模板配置内容的参数说明

    datacenters

    {{datacenters}} 数据中心

    file

    {{file "/path/to/local/file"}} 读取本地文件的内容。如果不可读的话,会报错

    key

    {{key "service/redis/maxconns@east-aws"}} 读取consul的键的值。如果key不能转为字符串,则报错。

    上面的命令读取的是east-aws这个数据中心的 service/redis/maxconns键的值

    {{key "service/redis/maxconns"}} 如果省略数据中心,默认查本地的数据中心

    key_or_default

    {{key_or_default "service/redis/maxconns@east-aws" "5"}} 如果指定的key不存在,则使用默认值

    ls

    {{range ls "service/redis@east-aws"}}

    {{.Key}} {{.Value}}{{end}}

    查询指定前缀的顶层key和value(同上文,key value转换失败,会报错) 结果

    minconns 2

    maxconns 12

    node

    {{node "node1"}} 查询单节点

    {{node}} 没有参数 返回当前的agent的node

    {{node "node1" "@east-aws"}} 指定数据中心的节点

    {{with node}}{{.Node.Node}} ({{.Node.Address}}){{range .Services}}

    {{.Service}} {{.Port}} ({{.Tags | join ","}}){{end}}

    {{end}}

    指定的节点存在返回节点的相应信息,如果节点不存在,返回nil

    nodes

    {{nodes}} 所有的节点

    {{nodes "@east-aws"}} 指定数据中心的所有节点

    service

    {{service "release.web@east-aws"}} 指定数据中心的web服务的健康情况

    {{range service "web@datacenter"}}

    server {{.Name}} {{.Address}}:{{.Port}}{{end}}

    返回结果

    server nyc_web_01 123.456.789.10:8080

    server nyc_web_02 456.789.101.213:8080

    默认情况下 ,只有健康的服务会被返回。

    如果想返回全部的服务 可以用这个

    {{service "web" "any"}}

    下面是查询指定服务状态的服务

    {{service "web" "passing, warning"}}

    注意条件是或 而不是和。 返回passing或者waring状态的服务。 注意 ,不能和any一起使用。因为any是返回所有的,不用过滤。一起用的话会报错。

    如果想自定义过滤,可以这么搞:

    {{range service "web" "any"}}

    {{if eq .Status "critical"}}

    // Critical state!{{end}}

    {{if eq .Status "passing"}}

    // Ok{{end}}

    维护模式

    !/bin/sh

    set -e

    consul maint -enable -service web -reason "Consul Template updated"

    service nginx reload

    consul maint -disable -service web

    执行时,设为维护模式,然后再恢复

    如果你没有装consul agent可以用api

    !/bin/sh

    set -e

    curl -X PUT "http://$CONSUL_HTTP_ADDR/v1/agent/service/maintenance/web?enable=true&reason=Consul+Template+Updated"

    service nginx reload

    curl -X PUT "http://$CONSUL_HTTP_ADDR/v1/agent/service/maintenance/web?enable=false"

    services

    {{services}} 全部服务

    {{services "@east-aws"}}指定中西的服务

    {{range services}}

    {{.Name}}

    {{range .Tags}}

    {{.}}{{end}}

    {{end}}

    取出 所有服务的名称,tags

    tree

    {{range tree "service/redis@east-aws"}}
    {{.Key}} {{.Value}}{{end}}

    取出所有指定中心的key和value 。报错的话,看看key和value是否不符合规则。


  • 相关阅读:
    虎虎的小尾巴:期货套利的入门——全文干货(2020-05-10)
    虎虎的小尾巴:对化工板块的一些思考(2020-05-06)
    虎虎的小尾巴:本周小结(2020-04-30)
    虎虎的小尾巴:耐得住寂寞,经得住诱惑(2020-04-24)
    虎虎的小尾巴:first blood(2020-04-19)
    虎虎的小尾巴:财不入急门(2020-04-15)
    虎虎的小尾巴:再谈仓位管理的重要性(2020-04-7)
    学习Linux系列--布署常用服务
    学习Linux系列--安装软件环境
    Asp.Net运行于32/64模式下的性能差异
  • 原文地址:https://www.cnblogs.com/wang2650/p/5527310.html
Copyright © 2011-2022 走看看