Debian的Consul安装
Consul官方网址
Consul命令行安装
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install consul
解释每条命令
-
添加 GPG 密钥:
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
这条命令从 HashiCorp 官方网站下载 GPG 密钥,并将其存储在
/usr/share/keyrings/hashicorp-archive-keyring.gpg
文件中,以确保安装包的完整性和真实性。 -
添加 HashiCorp APT 存储库:
echo "deb [signed-by=/usr/share/keyringsbootstrap_expect/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
这条命令将 HashiCorp 的 APT 存储库添加到系统的包管理配置中,存储在
/etc/apt/sources.list.d/hashicorp.list
文件中。 -
更新包列表并安装 Consul:
sudo apt update && sudo apt install consul
这条命令更新本地包列表,并从 HashiCorp 存储库中安装 Consul。
安装后的文件位置
-
Consul 可执行文件:
Consul 的可执行文件通常会安装在/usr/bin/consul
或/usr/local/bin/consul
目录中。 -
配置文件:
默认情况下,Consul 的配置文件不会自动创建。你需要手动创建和配置它们,通常放在/etc/consul.d/
目录中。 -
服务文件:
如果使用 systemd,Consul 的服务文件会位于/etc/systemd/system/consul.service
。
检查安装情况
-
你可以使用以下命令检查 Consul 是否正确安装以及其路径:
which consul
-
这将显示 Consul 可执行文件的路径。你还可以运行以下命令查看 Consul 的版本信息,以确认安装成功:
consul --version
-
通过以上步骤,Consul 应该会被正确安装并位于系统的标准目录中。
Consul配置文件
检查与创建配置文件目录
-
检查是否存在目录:
ls -l /usr/local/consul/conf
-
不存在时创建目录:
sudo mkdir -p /usr/local/consul/conf
-
创建consul.json文件:
sudo touch /usr/local/consul/conf/consul.json
-
编辑consul.json文件:
{ "bootstrap_expect": 1, "server": true, "node_name": "consul-server", "datacenter": "dc1", "data_dir": "/usr/local/consul/Repository", "log_level": "INFO", "enable_syslog": true, "bootstrap_expect": 1, "bind_addr": "127.0.0.1", "advertise_addr": "127.0.0.1", "client_addr": "0.0.0.0", "ui": true }
配置项解释
-
bootstrap_expect
: 1- 指定集群中的服务器节点数量为 1。当集群中服务器节点的数量达到该值时,Consul 将进行领导者选举。适用于单节点集群的场景。
-
server
: true- 表示这个节点是一个 Consul 服务器节点。服务器节点负责存储 Consul 的状态信息和处理查询。
-
node_name
: "consul-server"- 指定这个节点的名称为
consul-server
。节点名称在集群中必须是唯一的。
- 指定这个节点的名称为
-
datacenter
: "dc1"- 指定这个节点所属的数据中心名称为
dc1
。Consul 支持跨数据中心操作,这是其中一个数据中心标识。
- 指定这个节点所属的数据中心名称为
-
data_dir
: "/opt/consul"- 指定 Consul 用于存储数据的目录为
/usr/local/consul/Repository
。这个目录需要对 Consul 进程有写权限。
- 指定 Consul 用于存储数据的目录为
-
log_level
: "INFO"- 设置日志记录的级别为
INFO
。其他可选级别包括DEBUG
、WARN
和ERROR
。INFO
级别通常提供足够的详细信息以供正常运行和故障排除。
- 设置日志记录的级别为
-
enable_syslog
: true- 启用将日志发送到系统日志(syslog)。这样可以方便地将 Consul 日志与其他系统日志一起管理。
-
bind_addr
: "127.0.0.1"- 指定 Consul 监听的地址为
127.0.0.1
,这意味着 Consul 将只监听本地回环接口上的请求。这适用于本地开发和测试环境。
- 指定 Consul 监听的地址为
-
advertise_addr
: "127.0.0.1"- 指定 Consul 向其他节点通告的地址为
127.0.0.1
。其他节点将使用该地址与该节点进行通信。在本地开发和测试环境中,这是合适的。
- 指定 Consul 向其他节点通告的地址为
-
client_addr
: "0.0.0.0"- 指定客户端访问 Consul 的地址为
0.0.0.0
,表示接受来自所有网络接口的客户端请求。
- 指定客户端访问 Consul 的地址为
-
ui
: true- 启用 Consul 的 Web UI。启用后,可以通过浏览器访问 Consul 的用户界面,以查看集群状态和执行管理操作。
配置文件用途
这个配置文件用于配置一个 Consul 服务器节点。该节点将作为单节点集群的服务器,并启用 Web UI 和系统日志记录。日志记录级别设置为 INFO
,并且节点绑定到本地回环接口,允许来自所有网络接口的客户端请求。
使用场景
- 本地开发和测试:由于
bind_addr
和advertise_addr
都设置为127.0.0.1
,这个配置适用于本地开发和测试环境,而不是生产环境。 - 单节点集群:
bootstrap_expect
设置为 1,表示这是一个单节点集群配置,适用于开发或测试用途。
Consul开机自启动配置
- 编辑consul.service文件:
sudo vim /etc/systemd/system/consul.service
[Unit] Description=Consul Service Documentation=https://www.consul.io/ Requires=network-online.target After=network-online.target [Service] Environment="GOMAXPROCS=2" ExecStart=/usr/bin/consul agent -config-dir=/usr/local/consul/conf ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure LimitNOFILE=65536 [Install] WantedBy=multi-user.target
- 重新加载 systemd 配置:
sudo systemctl daemon-reload
- 启动并启用 Consul 服务:
sudo systemctl start consul sudo systemctl enable consul
- 检查 Consul 服务状态:
sudo systemctl status consul