问题标签 [consul-template]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nginx - Consul 模板使用 Nginx、Consul-template 和 Docker 获取存储键前缀错误
Nginx 和 consul 模板的新手,但我认为除了日志中出现大量噪音(每 15-30 秒有 100 条左右的错误消息)外,我一切正常。似乎是领事模板错误,它无法连接/获取数据......但它确实获取数据并正确构建模板。所以,不确定是什么问题。
如何修复错误?或者,如果它们是意料之中的,我怎么能不将它们记录到标准输出/标准错误,这使我的 nginx 日志记录变得混乱。
谢谢,丹
错误(各种应用程序一遍又一遍地获取这些消息):
Nginx dockerfile
服务/nginx.service
服务/consul-template.service
nginx - 无法使用 Docker、Consul 和 nginx 进行负载平衡
我想要实现的是使用这个堆栈进行负载平衡:Docker、Docker Compose、Registrator、Consul、Consul Template、NGINX,最后是一个在浏览器中打印出“Hello world”的小型服务。所以,此时我有一个 docker-compose.yml 文件。它看起来像这样:
第一项服务 - 重音 - 是我需要负载平衡的 Web 服务。当我运行这个命令时:
我看到所有服务都开始运行,并且没有看到任何错误消息。看起来好像一切都很完美。当我跑
我在控制台中看到了这个:
请注意最后一行,尤其是 PORTS 列。如您所见,该服务发布了 32792 端口。为了检查我的 Web 服务是否可以实现,我转到127.0.0.1:32972
我的主机(我运行 docker compose up 的机器)并在浏览器中查看:
这正是我想看到的。然而,这并不是我最终想要的。请看一下 docker ps 命令的输出,你会看到,我的 nginx 服务发布了 8181 端口。所以,我的期望是,当我转到这个地址时127.0.0.1:8181
——我会看到完全相同的“Hello world”页面。然而,事实并非如此。在浏览器中,我看到 Bad Gateway 错误消息,在 nginx 日志中,我看到此错误消息
nginx | 2017/01/18 06:16:45 [错误] 5#5: *5 connect() 在连接到上游时失败(111:连接被拒绝),客户端:172.18.0.1,服务器:,请求:“GET /favicon. ico HTTP/1.1”,上游:“ http://127.0.0.1:32792/index.php ”,主机:“127.0.0.1:8181”
这真的很有趣,因为 nginx 做了我期望它做的事情——上游到“ http://127.0.0.1:32792/index.php ”。但我不确定它为什么会失败。顺便说一句,这就是 nginx.conf(使用 Consul 模板自动创建)的样子:
我不会改变任何东西,因为这个 nginx.conf 对我来说看起来不错。为了理解它为什么不起作用,我打开了 nginx 容器并发出了几个命令:
同样,这很有趣,因为 nginx 容器在端口下80
而不是在其发布的32972
端口下看到我的 Web 服务。无论如何,在这个阶段我不知道为什么它不起作用以及如何解决它。我只是猜测,它以某种方式连接到方式,网络是如何在 docker-compose.yml 中配置的。我尝试了 on 重音和 nginx 服务的各种组合network_mode: host
,但无济于事 - 口音停止工作或 nginx 或两者兼而有之。所以,我需要一些帮助。
consul - consul template {{node}} 默认值没用?
我的领事模板版本:
我尝试使用下面的模板来测试节点:
我运行外壳:
但在那之后,test1 没有结果。输出调试信息如下所示,shell 永远等待:
但是,如果我像这样更改模板:
它工作正常!为什么我必须给出节点名称?在领事模板文档https://github.com/hashicorp/consul-template#node中,它说
当不带任何参数调用时,将返回当前代理的节点。
有什么帮助吗?
nginx - 您将如何使用 Hashicorp 的 Nomad 'template stanza' 通过 Nomad 作业文件生成 nginx 配置文件?
假设 Consul 和 Nomad 已配置为在资源池上运行。您将如何仅出于生成 Nginx 'default.conf' 文件的目的而渲染模板文件。
以下面的模板节配置为例;Nomad 无法生成 default.conf '文件';而是创建了一个 default.conf '目录'。
我要么错过了一个技巧,要么误解了“模板节”的功能。
模板生成目录而不是文件的问题之一是,您无法将目录挂载到配置文件路径。因此,运行使用 Nomad docker 驱动程序和示例“docker”卷配置的任务会导致错误。
还是不可能让模板节生成配置文件?
*Ps 使用 Nomad 构建 0.5.5 **
if-statement - 领事模板 if else 条件
我有以下领事模板。
我想添加如果我的主机名匹配“database-1”然后命令“check_procs_1”和其他命令“check_procs_2”
输出
consul-template - 从 KV 存储中获取一个值,但它不是模板中的 Key:Value 对
全部,是否可以使用 consul 模板和 consul KV 将我的 server.cert.template 文件转换为 server.cert。
在我的领事中,我定义了一个 KV 对,如下所示:
我的 server.cert.template 如下所示:
早些时候,我使用本地文件进行此替换。领事可以处理这个问题,如果可以的话怎么办?如何查询领事在此处转储此值?
谢谢
nginx - 领事模板没有重新启动 nginx 窗口
我正在使用适用于windows的 consul 模板 v0.19.0来渲染 nginx 配置。
nginx 配置通过 consul 模板渲染得很好,但它没有重新启动 nginx。
这是我正在使用的命令。
Consul-template-consul-address="xx" -template="in:out:{{pathfornginx}}\nginx.exe -s reload"。
其中“in”是 ctmpl 路径,“out”是最终的 nginx 配置路径。
我尝试过不同的路径格式,但没有运气。
任何人都可以对此发表一些意见。
提前谢谢。
nginx - 使用 -s reload args Consul template Windows 在文件夹中执行 nginx exe
我正在使用 Consul Template V0.19.0 for windows来渲染 nginx 负载平衡配置。它按预期工作。
现在我想要 consul 模板,在带有 args(-s reload)的文件夹中执行 nginx exe,如下所示:-
情况1:
但它会引发错误,例如“无法从“Template/template.ctmpl”执行命令“F:\IDE\Visual Studio Collection\Web Servers\nginx-1.12.0\nginx-1.12.0\nginx.exe”=> "F:\IDE\Visual Studio Collection\Web Servers\nginx-1.12.0\nginx-1.12.0\conf\nginx.conf": child: exec: "F:IDEVisual": 文件不存在"。
案例2:- 目前我通过将nginx作为服务(使用nssm)实现了这一点,并给出了类似的命令,
而不是给出完整路径,然后是“-s reload”。
但为此,必须使用 nssm 等应用程序将 nginx 作为服务。
我可以知道,有没有办法告诉领事模板配置中的命令属性,“像案例1一样执行文件夹中的nginx exe ”?
谢谢。
consul-template - Consul-Template:循环 ak/v 对并在另一个密钥中使用结果
给定 Consul 密钥:
我正在尝试遍历顶部集,使用键在底部集中查找值,使用以下代码(不起作用):
要得到:
consul - 领事模板意外的响应代码:504
我正在使用 Consul-Template 使用从 Consul 收集的数据呈现属性。这些文件正在成功呈现,但之后 Consul-Template 一遍又一遍地失败,直到它崩溃:
这会以更长的暂停持续下去,直到达到限制/它崩溃。
从日志中提取的配置:
筛选代码,此错误消息似乎Renew
来自session.go。
我应该在 Consul 下看到一个会话/session/list
吗?我有多个 Consul-Template 容器正在运行(每个主机上一个) - 我应该看到几个会话吗?现在我什么都看不到...