
Etcd is a base service [1] so it should be include in the installation tutorial so that other services can assume that it is installed. Right now, there is no package available for etcd3. This patch suggest to download the released tarball in github [2] instead. The installation steps are similar to the automated installation script in devstack [3]. [1] https://governance.openstack.org/tc/reference/base-services.html [2] https://github.com/coreos/etcd/releases/tag/v3.1.7 [3] https://github.com/openstack-dev/devstack/blob/master/lib/etcd3 Change-Id: Ic532e5a01571900d60d51c3e94ba170e22a30e93
2.5 KiB
2.5 KiB
Etcd for Ubuntu
Right now, there is no distro package available for etcd3. This guide uses the tarball installation as a workaround until proper distro packages are available.
Install and configure components
Install etcd:
Create etcd user:
# groupadd --system etcd # useradd --home-dir "/var/lib/etcd" \ --system \ --shell /bin/false \ -g etcd \ etcd
Create the necessary directories:
# mkdir -p /etc/etcd # chown etcd:etcd /etc/etcd # mkdir -p /var/lib/etcd # chown etcd:etcd /var/lib/etcd
Download and install the etcd tarball:
# ETCD_VER=v3.2.7 # rm -rf /tmp/etcd && mkdir -p /tmp/etcd # curl -L https://github.com/coreos/etcd/releases/download/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz # tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/etcd --strip-components=1 # cp /tmp/etcd/etcd /usr/bin/etcd # cp /tmp/etcd/etcdctl /usr/bin/etcdctl
Create and edit the
/etc/etcd/etcd.conf.yml
file and set theinitial-cluster
,initial-advertise-peer-urls
,advertise-client-urls
,listen-client-urls
to the management IP address of the controller node to enable access by other nodes via the management network:name: controller data-dir: /var/lib/etcd initial-cluster-state: 'new' initial-cluster-token: 'etcd-cluster-01' initial-cluster: controller=http://10.0.0.11:2380 initial-advertise-peer-urls: http://10.0.0.11:2380 advertise-client-urls: http://10.0.0.11:2379 listen-peer-urls: http://0.0.0.0:2380 listen-client-urls: http://10.0.0.11:2379
Create and edit the
/lib/systemd/system/etcd.service
file:[Unit] After=network.target Description=etcd - highly-available key value store [Service] LimitNOFILE=65536 Restart=on-failure Type=notify ExecStart=/usr/bin/etcd --config-file /etc/etcd/etcd.conf.yml User=etcd [Install] WantedBy=multi-user.target
Finalize installation
Enable and start the etcd service:
# systemctl enable etcd # systemctl start etcd