Consul 的参数设定有三种方式: Environment Variables
、Command-line Options
与Configuration Files
.
优先级:Command-line Options > Configuration Files > Environment Variables
本节将介绍使用配置文件
这种方式来设置Consul的参数。
上一节,我们启动client的命令是:
consul agent -join 172.31.60.3 -bind 172.31.58.144 -data-dir /home/ec2-user/consul
本节我们把这三个参数配置在文件中,让consul来读取。
在/home/ec2-user/consul
目录下新建一个config
目录,并新建/home/ec2-user/consul/config/config_file.hcl
文件,内容如下:
data_dir = "/home/ec2-user/consul"
start_join = ["172.31.60.3"]
bind_addr = "172.31.58.144"
start_join
和bind_addr
根据实际ip做替换
以configuration file方式重新启动consul client:
consul agent -config-dir=/home/ec2-user/consul/config
查看集群node。client以configuration file的方式加入集群:
上面的命令指定了配置文件的目录。当有多个配置文件时,Consul会依据命名的顺序载入,例如: acl.hcl 会在 server_config.hcl前处理,后处理的设定档会合并到前面的,如有重复的参数,则后面会覆盖前面。
另外,configuration和cli的参数名称并不一致,这也是邪门的地方😂
CLI参数名称 | Configuration File对应参数名称 |
---|---|
join | start_join |
bind | bind_addr |
data-dir | data_dir(下划线!) |
参考:https://www.consul.io/docs/agent/options