Consul - 安装

出于演示目的,我们将使用-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

输出将如以下屏幕截图所示.

Memebers

如果你想要将其他节点加入此节点 :

$ consul join <Node 2> <Node 3>

或者,您可以在节点2和节点上运行以下命令. 3 :

$ consul join <Node 1>

使用命令行

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)编写模板的语言.

您可以从此页面.

Template

使用以下命令尝试出来 :

 
 $ ./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

输出将如以下屏幕截图所示.

nginx

配置文件可能看起来像 :

{{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

输出结果如下图所示.

输出