以Systemd方式运行

前面几节运行consul时,全部以命令行方式启动。当机器遇到故障重启时,需要重新登录机器并运行命令,对于运维非常不便。

本节将介绍consul以服务方式运行,可以达到开机自启动和故障自动重启,减轻运维负担。

配置systemd

在client机器上,新建consul.service文件,并复制到/usr/lib/systemd/system/下,文件内容:

[Unit]
Description=Consul server agent
Requires=network-online.target
After=network-online.target

[Service]
User=ec2-user
Group=ec2-user
ExecStart=/usr/bin/consul agent -config-dir=/home/ec2-user/consul/config 
ExecReload=/usr/bin/consul reload
ExecStop=/usr/bin/consul agent leave 
KillMode=process
Restart=on-failure
RestartSec=60s

[Install]
WantedBy=multi-user.target

运行systemctl daemon-reload;systemctl start consul

image-20211017111846441

如果我们想在机器重启后自动启动consul,可以执行sytemctl enable命令

enable will hook the specified unit into relevant places, so that it will automatically start on boot,

image-20211017112032667


重启client所在机器,观察启动后是否会自动加入集群。

image-20211017112132666


在重启过程中,可以持续观察consul UI,会看到client有离开和重新加入的动作:

image-20211017112150610