• 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是否不符合规则。


  • 相关阅读:
    int和Integer有什么区别
    互联网思维的四个核心观点九大思维解读
    未来流行的12种商业模式
    小黑裙三级分销模式
    数据库设计三大范式
    数据库设计中常见表结构的设计技巧
    软件架构的演进,了解单体架构,垂直架构,SOA架构和微服务架构的变化历程
    查理芒格的25种人类误判心理学
    聪明的老板,都懂得让人占便宜(经典)
    真正聪明的人,从不占人便宜
  • 原文地址:https://www.cnblogs.com/wang2650/p/5527310.html
Copyright © 2020-2023  润新知