以下是 手动安装Consul 的详细步骤(不依赖APT仓库,直接使用二进制文件):
1. 更新系统
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl unzip
2. 下载Consul二进制文件
访问 Consul下载页面 或直接通过命令行获取最新版本(替换 1.18.0
为实际版本):
CONSUL_VERSION="1.18.0"
wget https://releases.hashicorp.com/consul/${CONSUL_VERSION}/consul_${CONSUL_VERSION}_linux_amd64.zip
3. 验证文件完整性(可选)
从同一页面下载校验文件并验证:
wget https://releases.hashicorp.com/consul/${CONSUL_VERSION}/consul_${CONSUL_VERSION}_SHA256SUMS
sha256sum -c consul_${CONSUL_VERSION}_SHA256SUMS 2>&1 | grep OK
# 应输出:consul_1.18.0_linux_amd64.zip: OK
4. 解压并安装到系统路径
unzip consul_${CONSUL_VERSION}_linux_amd64.zip
sudo mv consul /usr/local/bin/
sudo chmod +x /usr/local/bin/consul
5. 验证安装
consul --version
# 输出示例:Consul v1.18.0
6. 创建专用用户和目录
sudo useradd --system --home /etc/consul.d --shell /bin/false consul
sudo mkdir -p /etc/consul.d /opt/consul
sudo chown -R consul:consul /etc/consul.d /opt/consul
7. 创建配置文件
sudo nano /etc/consul.d/consul.hcl
基础配置(单节点开发模式):
datacenter = "dc1"
data_dir = "/opt/consul"
server = true
bootstrap_expect = 1
ui = true
bind_addr = "0.0.0.0"
client_addr = "0.0.0.0"
8. 创建Systemd服务
sudo nano /etc/systemd/system/consul.service
添加以下内容:
[Unit]
Description=Consul Service Discovery Agent
Documentation=https://www.consul.io/
After=network-online.target
[Service]
User=consul
Group=consul
ExecStart=/usr/local/bin/consul agent -config-dir=/etc/consul.d/
ExecReload=/usr/local/bin/consul reload
KillMode=process
Restart=on-failure
RestartSec=30s
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
9. 启动Consul服务
sudo systemctl daemon-reload
sudo systemctl enable consul
sudo systemctl start consul
sudo systemctl status consul # 检查运行状态
10. 防火墙配置(如启用UFW)
sudo ufw allow 8500/tcp # Web UI
sudo ufw allow 8600/tcp # DNS
sudo ufw allow 8300/tcp # Server RPC
sudo ufw allow 8301/tcp # LAN Gossip
sudo ufw allow 8302/tcp # WAN Gossip
11. 验证运行
curl localhost:8500/v1/agent/self | jq . # 检查节点信息
# 或访问Web界面:http://<服务器IP>:8500/ui
手动安装 vs APT安装的区别
特性 | 手动安装 | APT安装 |
---|---|---|
版本控制 | 可自由选择任意版本 | 依赖仓库中的版本 |
更新管理 | 需手动下载新版本 | apt upgrade 自动更新 |
文件位置 | 二进制在 /usr/local/bin |
二进制在 /usr/bin |
依赖管理 | 需自行处理依赖 | 自动解决依赖 |
卸载方法
sudo systemctl stop consul
sudo systemctl disable consul
sudo rm /etc/systemd/system/consul.service
sudo rm -rf /etc/consul.d /opt/consul
sudo rm /usr/local/bin/consul
sudo userdel consul
注意事项
版本更新:需定期检查 Consul Releases
生产环境:建议禁用
server = true
+bootstrap_expect = 1
,改用多节点集群安全加固:通过ACL和TLS加密保护API通信