tags: [consul, systemd, ubuntu]
At home I use Ubuntu, consul and (vault)[https://vaultproject.io] quite a bit, here is how I get consul to startup when my computer boots up using systemd
#!/usr/bin/env bash set -e echo "Installing dependencies..." if [ -x "$(command -v apt-get)" ]; then sudo apt-get update -y sudo apt-get install -y unzip else sudo yum update -y sudo yum install -y unzip wget fi echo "Fetching Consul..." CONSUL=0.7.5 cd /tmp wget https://releases.hashicorp.com/consul/${CONSUL}/consul_${CONSUL}_linux_amd64.zip -O consul.zip wget https://github.com/hashicorp/consul/blob/master/terraform/shared/scripts/rhel_consul.service -O consul.service echo "Installing Consul..." unzip consul.zip >/dev/null chmod +x consul sudo mv consul /usr/local/bin/consul sudo mkdir -p /opt/consul/data # Write the flags to a temporary file cat >/tmp/consul_flags << EOF CONSUL_FLAGS="-server -bind=192.168.1.97 -ui -data-dir=/opt/consul/data -bootstrap-expect 1" EOF if [ -f /tmp/upstart.conf ]; then echo "Installing Upstart service..." sudo mkdir -p /etc/consul.d sudo mkdir -p /etc/service sudo chown root:root /tmp/upstart.conf sudo mv /tmp/upstart.conf /etc/init/consul.conf sudo chmod 0644 /etc/init/consul.conf sudo mv /tmp/consul_flags /etc/service/consul sudo chmod 0644 /etc/service/consul else echo "Installing Systemd service..." sudo mkdir -p /etc/systemd/system/consul.d sudo chown root:root /tmp/consul.service sudo mv /tmp/consul.service /etc/systemd/system/consul.service sudo chmod 0644 /etc/systemd/system/consul.service sudo mv /tmp/consul_flags /etc/default/consul sudo chown root:root /etc/default/consul sudo chmod 0644 /etc/default/consul fi
I adapted this script from https://github.com/hashicorp/consul/blob/master/terraform/shared/scripts/install.sh
Written with StackEdit.