下载地址:https://www.consul.io/downloads.html
#安装wget yum install wget #下载Consul wget https://releases.hashicorp.com/consul/1.8.0/consul_1.8.0_linux_amd64.zip
unzip consul_1.8.0_linux_amd64.zip
#创建目录 mkdir /usr/local/consul_1.8 #拷贝到新创建的目录中 cp consul /usr/local/consul_1.8/consul #删除现在和解压后文件 rm consul rm consul_1.8.0_linux_amd64.zip
参考资料:https://www.consul.io/docs/agent/basics.html
为agent机器和server机器 同为 192.168.2.171 为例。
#创建data、log目录 mkdir /usr/local/consul_1.8/data mkdir /usr/local/consul_1.8/log #启动 /usr/local/consul_1.8/consul agent -server -bootstrap-expect 1 -data-dir=/usr/local/consul_1.8/data/ -node=n1 -bind=192.168.2.171 -client=192.168.2.171 -ui
-server 表示是server模式
-bootstrap-expect=3 表示是集群中有3台服务器 bootstrap该模式node可以指定自己作为leader ,如果是非leader可不加该参数
-data-dir=/tmp/consul 目录
-node=n2 该服务器节点名
-bind=127.0.0.1 节点绑定的ip
-ui 非必须 webui的路径 用web来管理consul
如下图启动成功。
打开浏览器访问 http://192.168.2.171:8500/ 出现下图,启动成功。
如果不能访问查看一下是否防火墙影响,Ctrl + C 退出Consul,关闭防火墙,再重新执行启动试试。
#查看状态 systemctl status firewalld.service #打开防火墙 systemctl start firewalld.service #关闭防火墙 systemctl stop firewalld.service #开启防火墙 systemctl enable firewalld.service #禁用防火墙 systemctl disable firewalld.service
路径/usr/lib/systemd/system/,新建一个service命名为,consul.service
cd /usr/lib/systemd/system/ vi consul.service
在vi编辑器,编写如下写脚本:
[Unit] Description=ConsulServer After=network.target [Service] ExecStart=/usr/local/consul_1.8/consul.start.sh KillSignal=SIGTERM [Install] WantedBy=multi-user.target
创建启动脚本文件
cd /usr/local/consul_1.8/ vi consul.start.sh
写入启动脚本
#!/bin/bash /usr/local/consul_1.8/consul agent -server -ui -bootstrap-expect=1 -node=192.168.2.171 -data-dir=/usr/local/consul_1.8/data/ -log-file=/usr/local/consul_1.8/log/consul_log-$(date +%Y-%m-%d--%H-%M) -client=192.168.2.171 -bind=192.168.2.171 -datacenter=dc1 echo "consul startup"
重新加载配置
systemctl daemon-reload
Consul 启动
systemctl start consul
查看服务状态
systemctl status consul
如果出现下图,服务启动成功。
如果失败,这是因为用户没有权限,而导致无法执行。
用命令chmod 修改一下.sh权限就可以了,这里的u 这里指文件所有者,+x 添加可执行权限,*.sh表示所有的sh文件。
chmod u+x *.sh
systemctl enable consul.service
原文:https://www.cnblogs.com/liuxtj/p/13410697.html