出于演示目的,我们将使用-dev模式在开发人员模式中使用consul代理.仅针对本地机器设置,我们将进行单个系统领事设置. 请不要在生产中使用此单节点consul集群.由于Hashicorp已经在单节点consul集群的情况下提到它,数据丢失是不可避免的.
安装Consul
可以通过 www.consul.io/downloads.html
您可以提取二进制包你机器的下载部分.
$ cd Downloads$ chmod +x consul$ sudo mv consul /usr/bin/
现在让我们使用 -dev标志开始使用consul.
$ consul agent -dev -data-dir =/tmp/consul
输出如下所示以下屏幕截图.
现在您可以查看您的领事会员使用以下命令.
$ consul members
输出将如以下屏幕截图所示.
如果你想要将其他节点加入此节点 :
$ consul join
或者,您可以在节点2和节点上运行以下命令. 3 :
$ consul join
使用命令行
consul的命令行包含几个不同的选项,一些最常用的选项以下是 :
代理商 : 它运行一个Consul代理.
configtest : 验证配置文件.
事件 : 开始新活动.
exec : 在Consul节点上执行命令.
force-leave : 强制群集成员离开群集.
info : 它为我们提供了运营商的调试信息.
加入 : 使Consul代理加入集群.
keygen : 生成新的加密密钥.
密钥环 : 管理八卦层加密密钥.
kv : 与键值商店互动.
离开 : 离开Consul集群并在没有用力的情况下将其关闭.
lock : 执行命令以按住锁定.
maint : 控制节点或服务维护模式.
成员 : 它列出了Consul集群的成员.
monitor : 它从Consul代理流式传输日志.
运营商 : 它为Consul运营商提供了一系列工具.
重新加载 : 它会触发代理重新加载配置文件.
rtt : 它估计节点之间的网络往返时间.
快照 : 它保存,恢复和检查Consul服务器状态的快照.
版本 : 打印当前的Consul版本.
观看 : 注意领事的变化.
领事模板
领事模板提供我们一个守护进程,它查询Consul实例并更新文件系统上任意数量的指定模板.在更新过程完成时,consul-template可以选择运行任意命令.此选项可帮助我们设置consul集群,而无需手动完成所有操作.
consul模板将在/tmp/< name-of-file>形成. .conf.tmpfl 的.根据 Hashicorp配置语言(HCL)编写模板的语言.
您可以从此页面.
使用以下命令尝试出来 :
$ ./consul- template -h
输出结果如下面的截图所示.
如果您希望将此二进制文件移动到更突出的空间,以便每次都可供用户使用.您可以输入以下命令 :
$ chmod + x consul-template $ sudo mv consul-template/usr/share/bin/
出于演示目的,我们将使用 nginx 的示例配置作为我们的服务.您可以在 https://github.com/hashicorp/consul-template/tree/master尝试更多演示/examples 或更好地写下你自己的模板.
$ vim/tmp/nginx.conf.ctmpl
输出将如以下屏幕截图所示.
配置文件可能看起来像 :
{{range services}} {{$name := .Name}} {{$service := service .Name}}upstream {{$name}} { zone upstream-{{$name}} 64k; {{range $service}}server {{.Address}}:{{.Port}} max_fails = 3 fail_timeout = 60 weight = 1; {{else}}server 127.0.0.1:65535; # force a 502{{end}}} {{end}}server { listen 80 default_server; location / { root /usr/share/nginx/html/; index index.html; } location /stub_status { stub_status; } {{range services}} {{$name := .Name}} location /{{$name}} { proxy_pass http://{{$name}}; } {{end}}}
现在使用consul模板二进制文件,请运行以下命令 :
$ consul-template \ -template = "/tmp/nginx.conf.ctmpl:/etc/nginx/conf.d/default.conf"
使用上一个命令,该过程已经开始.您可以稍后打开另一个终端并使用以下命令查看完全呈现的nginx.conf文件.
$ cat/etc/nginx/conf.d/default.conf
输出结果如下图所示.