Consul官方网址

DebianConsul官方安装地址

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

解释每条命令

  1. 添加 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 文件中,以确保安装包的完整性和真实性。

  2. 添加 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 文件中。

  3. 更新包列表并安装 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配置文件

检查与创建配置文件目录

  1. 检查是否存在目录:

    ls -l /usr/local/consul/conf
    
  2. 不存在时创建目录:

    sudo mkdir -p /usr/local/consul/conf
    
  3. 创建consul.json文件:

     sudo touch /usr/local/consul/conf/consul.json
    
  4. 编辑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 进程有写权限。
  • log_level: "INFO"

    • 设置日志记录的级别为 INFO。其他可选级别包括 DEBUGWARNERRORINFO 级别通常提供足够的详细信息以供正常运行和故障排除。
  • enable_syslog: true

    • 启用将日志发送到系统日志(syslog)。这样可以方便地将 Consul 日志与其他系统日志一起管理。
  • bind_addr: "127.0.0.1"

    • 指定 Consul 监听的地址为 127.0.0.1,这意味着 Consul 将只监听本地回环接口上的请求。这适用于本地开发和测试环境。
  • advertise_addr: "127.0.0.1"

    • 指定 Consul 向其他节点通告的地址为 127.0.0.1。其他节点将使用该地址与该节点进行通信。在本地开发和测试环境中,这是合适的。
  • client_addr: "0.0.0.0"

    • 指定客户端访问 Consul 的地址为 0.0.0.0,表示接受来自所有网络接口的客户端请求。
  • ui: true

    • 启用 Consul 的 Web UI。启用后,可以通过浏览器访问 Consul 的用户界面,以查看集群状态和执行管理操作。

配置文件用途

这个配置文件用于配置一个 Consul 服务器节点。该节点将作为单节点集群的服务器,并启用 Web UI 和系统日志记录。日志记录级别设置为 INFO,并且节点绑定到本地回环接口,允许来自所有网络接口的客户端请求。

使用场景

  • 本地开发和测试:由于 bind_addradvertise_addr 都设置为 127.0.0.1,这个配置适用于本地开发和测试环境,而不是生产环境。
  • 单节点集群bootstrap_expect 设置为 1,表示这是一个单节点集群配置,适用于开发或测试用途。

Consul开机自启动配置

  1. 编辑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
    
  2. 重新加载 systemd 配置:
    sudo systemctl daemon-reload
    
  3. 启动并启用 Consul 服务:
    sudo systemctl start consul
    sudo systemctl enable consul
    
  4. 检查 Consul 服务状态:
    sudo systemctl status consul