前面几节运行consul时,全部以命令行方式启动。当机器遇到故障重启时,需要重新登录机器并运行命令,对于运维非常不便。
本节将介绍consul以服务方式运行,可以达到开机自启动和故障自动重启,减轻运维负担。
在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
如果我们想在机器重启后自动启动consul,可以执行sytemctl enable
命令
enable
will hook the specified unit into relevant places, so that it will automatically start on boot,
重启client所在机器,观察启动后是否会自动加入集群。
在重启过程中,可以持续观察consul UI,会看到client有离开和重新加入的动作: