Consul修改端口+修改consul源码编译二级制文件

背景:

同一台服务器需要在两个IP(内、外)上各启一个consul server,且不在一个datacenter中,所以其中一个consul必须要修改各项端口,我们暂且称之为"consul-public"。由于consul的二进制文件默认HTTP端口8500,对于consul-public无法使用原有的二级制文件,需要修改consul源码重新进行编译。

Consul修改端口

  1. 将编辑好的json配置文件放到指定目录下
    请看ports部分
    “ports”:{
    “http” : 9500,
    “dns” : 9600,
    “serf_lan” : 9301,
    “serf_wan” : 9302,
    “server” : 9300
    }
    Consul修改端口+修改consul源码编译二级制文件_第1张图片

  2. 编辑consul-server的启动文件
    [Unit]
    Description=Consul-public
    After=network.target

    [Service]
    EnvironmentFile=/opt/consul-public/etc/systemd/consul.confExecStart=/opt/consul-public/bin/consul agent -config-dir /opt/consul-public/etc/ -config-file /opt/consul-public/etc/consul/config-server.json -bind 10.10.10.10

    [Install]
    WantedBy=multi-user.target
    Consul修改端口+修改consul源码编译二级制文件_第2张图片

  3. 编辑一个install脚本,并执行

    #!/bin/bash
    cp -f /opt/consul-public/etc/systemd/consul-client.service /usr/lib/systemd/system/consul-client-public.service
    cp -f /opt/consul-public/etc/systemd/consul-server.service /usr/lib/systemd/system/consul-server-public.service
    systemctl daemon-reload

    在这里插入图片描述

  4. 启动consul
    systemctl start consul-server-public.service在这里插入图片描述
    到这里,修改端口后的consul就启动成功了,但是consul的原二进制文件默认端口8500,此时无法验证consul的其他信息,所以需要对consul进行重新编译。

修改consul源码编译二级制文件

注:consul的编译过程需要联网下载大量的库文件,且需要VPN

下载consul源码

当前版本1.5.3.4
https://github.com/hashicorp/consul
Consul修改端口+修改consul源码编译二级制文件_第3张图片

下载GO环境安装包(需1.10以上)

https://golang.org/dl/
当前版本1.12.7

安装GO环境

  1. 将安装包上传至服务器并解压
    tar -C /usr/local -xf go1.12.7.linux-amd64.tar.gz

  2. 编辑环境变量

export GOROOT=/usr/local/go
export GOBIN=$GOPATH/bin
export GOPATH=/home/sy/go
PATH=$PATH:$GOBIN

Consul修改端口+修改consul源码编译二级制文件_第4张图片

  1. 生效环境变量
source /root/.bash_profile
  1. 检查GO环境是否生效
    在这里插入图片描述

编译consul

  1. 创建如下目录
mkdir -p /usr/local/go/src/github.com/hashicorp
  1. 将下载好后的consul源码consul-master.zip解压至/usr/local/go/src/github.com/hashicorp,并修改目录名称为consul
    Consul修改端口+修改consul源码编译二级制文件_第5张图片
  2. 执行编译前过程
make tools

在这里插入图片描述
该过程是在下载consul编译需要的各种库,时间漫长,需耐心等待。。。。。




30min later…
执行完毕无报错。。。。
Consul修改端口+修改consul源码编译二级制文件_第6张图片
4. 更改端口

grep -rn 8500 *

执行命令查找8500,下列文件中的端口需要修改为指定端口(本文修改为9500)
agent/config/default.go
api/api.go
build-support/functions/40-publish.sh
command/flags/http.go
Vagrantfile
以上文件逐一手动修改
website/目录下所有的文件中的8500都需要修改,进入website目录后执行

grep -rn :8500 * |awk -F: '{print $1}' | xargs sed -i "s/8500/9500/g"
  1. 执行编译过程
make

成功执行无报错
Consul修改端口+修改consul源码编译二级制文件_第7张图片
最后会在/usr/local/go/src/github.com/hashicorp/consul/pkg/bin目录下生成各系统所需的二进制文件,将符合本机使用的放到/usr/local/go/src/github.com/hashicorp/consul/bin下
在这里插入图片描述
可以看到,consul现在默认去读9500端口
至此,修改端口全部完成
其余端口,可参照 步骤4 进行修改

你可能感兴趣的:(Linux运维)