首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用confd获得用etcd生成的键字符串值

如何使用confd获得用etcd生成的键字符串值
EN

Stack Overflow用户
提问于 2014-09-05 16:00:00
回答 1查看 1.9K关注 0票数 3

我正在使用confd和etcd。我在跟踪nginx的confd示例。我把这些钥匙放在我的etcd服务中:

代码语言:javascript
复制
curl http://127.0.0.1:4001/v2/keys/myapp/upstream -XPUT -d dir=true
curl http://127.0.0.1:4001/v2/keys/myapp/subdomain -XPUT -d value="myapp"
curl http://127.0.0.1:4001/v2/keys/myapp/upstream/app2 -XPUT -d value="10.0.1.101:80"
curl http://127.0.0.1:4001/v2/keys/myapp/upstream/app1 -XPUT -d value="10.0.1.100:80"

这是我的坟墓配置:

代码语言:javascript
复制
[template]
prefix = "myapp"
keys = [
  "subdomain",
  "upstream",
]
owner = "nginx"
mode = "0644"
src = "nginx.tmpl"
dest = "/tmp/myapp.conf"
check_cmd  = "/usr/sbin/nginx -t -c {{ .src }}"
reload_cmd = "/usr/sbin/service nginx reload"

这是我的tmpl配置。

代码语言:javascript
复制
upstream {{.subdomain}} {
{{range $server := .upstream}}
    #I want to get the key string value
    server {{$sever.key}} {{$server.Value}};
{{end}}
}

server {
    server_name  {{.subdomain}}.example.com;

    location / {
        proxy_pass        http://{{.subdomain}};
        proxy_redirect    off;
        proxy_set_header  Host             $host;
        proxy_set_header  X-Real-IP        $remote_addr;
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
   }
}

在这里,我希望捕获键字符串值,如、app2、app1。我只知道如何获得它的价值。我想做一些类似{{$sever.key}}的事情,但它不起作用。上面的{{$sever.key}}配置是错误的,但我这样做是为了说明我想要什么。

这个想法可能吗?

有没有什么有保留的词来表示这个词或语法?

EN

回答 1

Stack Overflow用户

发布于 2015-03-02 09:58:30

我也有同样的问题。对于我来说,这段代码起作用了(采用到您的配置中):

代码语言:javascript
复制
{{range gets "/myapp/upstream/*"}}
server {{base .Key}} {{.Value}}
{{end}}

对我来说,主要的问题是gets函数。我在网络上找到的所有示例都使用了getvs,它只提供了值。base函数,只需删除键路径的前一部分。

有关更多信息,请查看这些康菲博士

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25689834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档