consul.json consul默认配置文件
https://www.consul.io/docs/install/index.html
consul 默认使用下列端口
8300(tcp): Server RPC,server 用于接受其他 agent 的请求
8301(tcp,udp): Serf LAN,数据中心内 gossip 交换数据用
8302(tcp,udp): Serf WAN,跨数据中心 gossip 交换数据用
8400(tcp): CLI RPC,接受命令行的 RPC 调用
8500(tcp): HTTP API 及 Web UI
8600(tcp udp): DNS 服务,可以把它配置到 53 端口来响应 dns 请求
1./var/lib/consul/serf/local.keyring存在不更新的问题,方发现诡异的节点无法组成集群的情况时,删除该文件重启。
获取value:
consul kv get [key]
设置value:
consul kv put [key] [value]
删除key:
consul kv delete [key]
获取全部kv信息:
consul kv get -recurse
武器库配置信息使用consul+confd进行配置。
单机版(无数据写入磁盘,重启数据丢失):consul agent -dev -config-dir=/etc/consul.d/
正式版(需要至少三台机器):consul agent -config-dir=/etc/consul.d/
consul服务的web页面是是无登录用户认证的,登录{host}:8500即可访问。 由于consul存在数据库密码信息泄露的风险,所以需要给consul添加用户验证,此处采用nginx添加baseauth的方式来处理。
yum install httpd-tools -y
htpasswd -c -d /etc/nginx/pass_file consul
用户名:consul, 密码:[用户输入]
nginx配置信息代码段参见conf/[mode]/nginx.conf.part,nginx会监听8090端口,将请求转发到consul的8500端口。
执行env.sh
使用*sh export_config.sh {consul_token}*命令导出机器中consul的所有k v,并在同级目录生成env.sh文件。 将env.sh文件拷入到新机器中,执行env.sh文件可以在新机器中导入旧机器的k v。