Install keepalived from the distribution's repositories or, alternatively, compile from source. Although installing from the repositories is generally the fastest way to get keepalived running on a system, the version of keepalived available in the repositories are typically a few releases behind the latest available stable version.
As of Red Hat 6.4, Red Hat and the clones have included the keepalived package in the base repository. Therefore, run the following to install the keepalived package and all the required dependencies using dnf (or yum on older systems):
dnf install keepalived
Run the following to install the keepalived package and all the required dependencies using Debian's APT package handling utility:
apt-get install keepalived
In order to run the latest stable version, compile keepalived from source. Compiling keepalived requires a compiler, OpenSSL and the Netlink Library. You may optionally install Net-SNMP, which is required for SNMP support.
On RHEL, Centos, Fedora etc install the following prerequisites (on older systems replace dnf with yum):
dnf install gcc make autoconf automake openssl-devel libnl3-devel \
iptables-devel ipset-devel net-snmp-devel libnfnetlink-devel file-devel \
glib2-devel pcre2-revel libnftnl-devel libmnl-devel systemd-devel kmod-devel
For DBUS support:
dnf install glib2-devel
For JSON support:
dnf install json-c-devel
- Note: On RHEL the codeready-builder-for-rhel-8-x86_64-rpms (or equivalent) repo
needs to be enabled, and on CentOS the PowerTools repo is needed.
On Debian/Ubuntu, install the following prerequisites:
apt-get install build-essential pkg-config curl gcc autoconf automake libssl-dev \
libnl-3-dev libnl-genl-3-dev libsnmp-dev libnl-route-3-dev libnfnetlink-dev \
iptables-dev* libipset-dev libsnmp-dev libmagic-dev libglib2.0-dev libpcre2-dev \
libnftnl-dev libmnl-dev libsystemd-dev libkmod-dev
* on more recent versions replace iptables-dev with libxtables-dev libip4tc-dev libip6tc-dev
For DBUS support:
dnf install libglib2.0-dev
On Alpine Linux install the following prerequisites:
autoconf automake iptables-dev ipset-dev libnfnetlink-dev libnl3-dev musl-dev
libnftnl-dev file-dev pcre2-dev
and
openssl-dev or libressl-dev
For SNMP support:
net-snmp-dev (requires libressl-dev and not openssl-dev)
On Archlinux run the following to install the required libraries:
pacman -S ipset libnfnetlink libnl1 pcre-2
For SNMP support:
pacman -S net-snmp
Use curl or any other transfer tool such as wget to download keepalived. The software is available at http://www.keepalived.org/download.html or https://github.com/acassen/keepalived. Then, compile the package:
curl --location --progress http://keepalived.org/software/keepalived-1.2.15.tar.gz | tar xz
cd keepalived-1.2.15
./build_setup
./configure
make
sudo make install
It is a general recommendation when compiling from source to specify a PREFIX. For example:
./configure --prefix=/usr/local/keepalived-1.2.15
This makes it easy to uninstall a compiled version of keepalived simply by deleting the parent directory. Additionally, this method of installation allows for multiple versions of Keepalived installed without overwriting each other. Use a symlink to point to the desired version. For example, your directory layout could look like this:
[root@lvs1 ~]# cd /usr/local
[root@lvs1 local]# ls -l
total 12
lrwxrwxrwx. 1 root root 17 Feb 24 20:23 keepalived -> keepalived-1.2.15
drwxr-xr-x. 2 root root 4096 Feb 24 20:22 keepalived-1.2.13
drwxr-xr-x. 2 root root 4096 Feb 24 20:22 keepalived-1.2.14
drwxr-xr-x. 2 root root 4096 Feb 24 20:22 keepalived-1.2.15
After compiling, create an init script in order to control the keepalived daemon.
On RHEL:
ln -s /etc/rc.d/init.d/keepalived.init /etc/rc.d/rc3.d/S99keepalived
On Debian:
ln -s /etc/init.d/keepalived.init /etc/rc2.d/S99keepalived
Note: The link should be added in your default run level directory.