问题标签 [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.
templates - 如何用逗号连接领事模板的服务元数据
有谁知道如何将 consul 中的字符串连接为 consul-template?
如果我在 Consul 中注册了服务“foo”
我希望 consul-template 生成以下行:
以下尝试不起作用,因为它留下了尾随逗号,
我知道 consul-template 使用 golang 模板语法,但我根本无法弄清楚使这个工作正常的语法。我很可能应该使用领事模板join
,但我如何同时传递.Address
和传递.Port
给join
?这只是一个简单的例子,我没有故意使用索引,因为服务的数量可能超过两个。有任何想法吗?
haproxy - HAProxy & Consul-template:缩小时重试请求
我正在研究基于 Docker、registrator、consul 和 HAProxy 的微服务架构。
我也在使用 Consul-template 来动态生成 HAProxy 配置文件。一切正常:当我添加同一个微服务的多个实例时,HAProxy 配置会立即更新,并使用循环策略正确分派请求。
当我删除一些实例(按比例缩小)时,会出现我的问题。如果在请求运行时关闭容器,则会出现错误。
我是 HAProxy 的新手,所以有没有办法配置 HAProxy 来告诉它在容器消失时重试对另一个端点的失败请求?
精度:我正在为我的前端和后端使用 layer7 路由模式(模式 http)。这是我的领事模板文件的一个小样本:
谢谢您的帮助。
consul - HTTP API 调用创建 consul watch 和 consul exec
目前我正在使用 consul watch 和 consul exec 命令来创建手表以及运行一些 bash 命令。我想使用 http api 调用而不是命令来自动化我的系统。
是否有 http 等价物来完成这项工作?
任何帮助,将不胜感激。谢谢
go - 在领事模板中,如何限制我所覆盖的元素数量?
以下是我使用服务呈现节点地址的代码:
我想要做的是限制呈现的地址数量。例如,如果有 5 个节点注册为“服务”提供者,我只想打印其中 2 个的地址。我认为我应该做的是对数组进行切片,但我无法正确使用 GO 语法。这是我想要但在语法上不正确的东西:
这样做的正确方法是什么?
microservices - 领事注销“失败”服务
我在 Consul v0.5.2 版本上运行 consul,在 Mesos 中运行服务。服务不断从一台服务器移动到另一台服务器。
有没有办法在领事中注销处于“失败”状态的服务?我可以使用此 curl 获取处于失败状态的服务列表
我们看到的问题是在 consul UI 中的一段时间内,我们有陈旧的数据并使整个 UI 无法使用
consul - 领事模板在远程机器上不起作用
我有三台机器,例如:
并且所有 3 台机器都具有相同的领事配置文件,例如:
和运行 consul 的所有 3 台机器,只有服务器 portal2 运行 consul-template,使用命令:
我的领事模板配置文件,hosts.hcl:
但是当我在consul存储中更改k/v时,只有localhost portal2正确写入目标文件,远程机器portal0和portal1不起作用。我错过了什么???
consul - consul-template 可以创建配置文件吗
现在我知道 consul-template 可以在 consul 的 k/v 发生变化时管理配置文件内容,但是创建一个呢?例如,一个系统有很多用户,每个用户都有自己的配置文件,consul-template 能否为每个用户创建一个配置文件?如果他们的配置文件共享相同的模板。
go - 从 Vault KV 值构建动态字符串
我正在尝试创建类似的东西:
其中$v
是动态值。我不知道如何让嵌套with
语句将 vlaue 解析$v
为它的参数。
linux - 使 ExecStartPost 命令在后台运行
我有一个systemd
服务,用于连接到consul
服务器的 Spring Boot 应用程序,位于haproxy
. consul
提供通过命令consul-template
自动更新haproxy
配置文件中的服务位置。consul-template
consul-template
获取一个模板文件并写入最终的 haproxy 配置文件,然后重新加载haproxy
.
现在,consul-template
进程需要始终与我的应用程序一起在后台运行,这样当应用程序启动时,它可以检测到新的应用程序启动并更新其在配置文件中的位置。
这是我的systemd
服务文件。
现在,当我 start 时systemctl start myservice
,我的应用程序启动并且调用consul-template
也可以工作,但consul-template
进程不会进入后台。我必须按下Ctl+C
然后systemctl
回来,我的应用程序和领事模板进程都在运行。
有没有办法
consul-template
在指定的后台运行进程ExecStartPost
?
我试图&
在命令末尾添加ExecStartPost
,但随后consul-template
抱怨它是一个额外的无效参数并且它失败了。
我也试图将命令设为/bin/sh -c "consul-template command here..."
,但这也不起作用。即使nohup
在这个命令中也不起作用。
非常感谢任何帮助。
monitoring - 如何通过 http 端点监控 systemd 服务
我有一个进程,我想监控 consul-template,它是当前由 systemd 管理的进程。我使用 Pandora 来监控我的其他进程的 HTTP 端点,但是 consul-template 没有 HTTP 端点。
我想到了几种方法:
一种是使用 python 启动 HTTP 服务器,该服务器将在运行 consul-template 进程时运行,问题是我不确定我能否保证在进程退出时 HTTP 服务器会退出。我也不能保证像它一样简单的 HTTP 服务器不会独立崩溃。
另一种解决方案是安装 Monit,它是一个功能齐全的监控服务,并且只使用它而不是 systemd 来进行进程管理。这种方法意味着我现在必须监控 Pandora 和 Monit 并相应地设置警报,我宁愿只设置一个 HTTP 端点,这样我就只能从 Pandora 进行监控。