Skip to content

Instantly share code, notes, and snippets.

@jonaskahn
Last active December 5, 2022 09:03
Show Gist options
  • Save jonaskahn/1401562bc4a48a7ae1faa65d162ef584 to your computer and use it in GitHub Desktop.
Save jonaskahn/1401562bc4a48a7ae1faa65d162ef584 to your computer and use it in GitHub Desktop.
#!/bin/bash
sudo apt install -y unzip zip
export CONSUL_VERSION=1.13.4
printf "Download & install consul ${CONSUL_VERSION}\n"
export CONSUL_URL="https://releases.hashicorp.com/consul"
curl --silent --remote-name \
${CONSUL_URL}/${CONSUL_VERSION}/consul_${CONSUL_VERSION}_linux_amd64.zip
unzip consul_${CONSUL_VERSION}_linux_amd64.zip
sudo chown root:root consul
sudo mv consul /usr/bin/
consul --version
printf "Setup consul . . .\n"
consul -autocomplete-install
complete -C /usr/bin/consul consul
sudo useradd --system --home /etc/consul.d --shell /bin/false consul
sudo mkdir --parents /opt/consul
sudo chown --recursive consul:consul /opt/consul
sudo mkdir --parents /etc/consul.d
sudo touch /etc/consul.d/consul.hcl
sudo touch /etc/consul.d/server.hcl
sudo chown --recursive consul:consul /etc/consul.d
sudo chmod 640 /etc/consul.d/*.hcl
sudo rm -rf /etc/systemd/system/consul.service
sudo touch /etc/systemd/system/consul.service
echo "[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
" | sudo tee -a /etc/systemd/system/consul.service
sudo rm -rf consul_${CONSUL_VERSION}_linux_amd64.zip
sudo systemctl enable consul
printf "Consul installed. Start configuration to continue\n"
@jonaskahn
Copy link
Author

jonaskahn commented Nov 7, 2022

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment