无法启动consul作为服务

问题描述 投票:0回答:1

我在Ubuntu上安装了consul。

consul version
工作正常,
consul validate /etc/consul.d/
有效。我正在尝试创建一个服务,该服务基本上应该执行此命令的操作:

consul agent -server -ui -node=test -bootstrap-expect=1 -client=0.0.0.0 -data-dir /opt/consul -config-dir /etc/consul.d/

这里是配置:

/etc/consul.d/consul.hcl:

datacenter="dc1"
data_dir="/opt/consul"
encrypt="UEY...."

/etc/consul.d/server.hcl:

node_name="test"
server=true
bootstrap_expect=1
client_addr="0.0.0.0"
ui_config {
  enabled=true
}

/etc/systemd/system/consul.service:

[Unit]
Description="HashiCorp Consul - A service mesh solution"
Documentation=https://www.consul.io/
Requires=network-online.target
After=network-online.target
ConditionFileNotEmpty=/etc/consul.d/consul.hcl

[Service]
EnvironmentFile=-/etc/consul.d/consul.env
User=consul
Group=consul
ExecStart=/usr/bin/consul agent -config-dir=/etc/consul.d/
ExecReload=/bin/kill --signal HUP $MAINPID
KillMode=process
KillSignal=SIGTERM
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

systemctl start consu
l之后,当我检查
status
时,我得到了这个:

● consul.service - "HashiCorp Consul - A service mesh solution"
     Loaded: loaded (/etc/systemd/system/consul.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Wed 2023-10-18 14:45:40 +03; 5min ago
       Docs: https://www.consul.io/
    Process: 3172748 ExecStart=/usr/bin/consul agent -config-dir=/etc/consul.d/ (code=exited, status=1/FAILURE)
   Main PID: 3172748 (code=exited, status=1/FAILURE)

systemd[1]: consul.service: Scheduled restart job, restart counter is at 5.
systemd[1]: Stopped "HashiCorp Consul - A service mesh solution".
systemd[1]: consul.service: Start request repeated too quickly.
systemd[1]: consul.service: Failed with result 'exit-code'.
systemd[1]: Failed to start "HashiCorp Consul - A service mesh solution".

有趣的是,如果我手动运行

/usr/bin/consul agent -config-dir=/etc/consul.d/
,效果很好。

我还在

journalctl
日志中发现了一些奇怪的东西,看起来律师没有使用作为
ExecStart
参数给出的配置。这是日志示例:

==> Starting Consul agent
..
             Node name: '<server name>'

当我使用

ExecStart
中的相同命令手动启动它时,这是正确的:

==> Starting Consul agent...
..
             Node name: '<node name in config file>'

我该怎么办?如果有任何反馈,我将不胜感激。

consul hashicorp
1个回答
0
投票

您应该将文件 consul.hcl 和 server.hcl 合并到 consul.hcl:

datacenter="dc1"
data_dir="/opt/consul"
encrypt="UEY...."
node_name="test"
server=true
bootstrap_expect=1
client_addr="0.0.0.0"
ui_config {
  enabled=true
}
© www.soinside.com 2019 - 2024. All rights reserved.