Last active
December 3, 2023 18:26
-
-
Save bouroo/3145ecb33381e1a1ac3b354ac8e28817 to your computer and use it in GitHub Desktop.
Install kea DHCP server from source on ubuntu
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# Define variable | |
KEA_VER="v1_8_0" | |
CPU_CORES=$(grep -c processor /proc/cpuinfo) | |
if [ ${CPU_CORES} -gt 1 ]; then | |
CPU_CORES=$((CPU_CORES - 1)) | |
fi | |
if [ "$(whoami)" != "root" ]; then | |
SUDO=sudo | |
fi | |
# Install libary for build kea DHCP server | |
${SUDO} apt update && ${SUDO} apt -y full-upgrade | |
${SUDO} apt -y install build-essential autoconf automake curl git | |
${SUDO} apt -y build-dep kea-dhcp6-server | |
# Get kea DHCP source code | |
rm -rf kea | |
git clone https://gitlab.isc.org/isc-projects/kea.git -b ${KEA_VER} | |
# Goto source file | |
cd kea | |
# Config to use mysql backend | |
autoreconf --install --force --warnings='all' | |
./configure --prefix='/usr' \ | |
--sbindir='/usr/local/sbin' \ | |
--sysconfdir='/etc' \ | |
--localstatedir='/var' \ | |
--with-openssl \ | |
--with-boost-lib-dir='/usr/lib/x86_64-linux-gnu' \ | |
--with-mysql \ | |
--with-pgsql | |
# Make and install kea DHCP | |
make -j${CPU_CORES} && ${SUDO} make install | |
${SUDO} ldconfig | |
# Add systemd service | |
cat <<EOF >/lib/systemd/system/kea-dhcp.service | |
[Unit] | |
Description=Kea DHCP Server | |
Documentation=man:kea-dhcp4(8) | |
Wants=network-online.target | |
After=network-online.target | |
After=time-sync.target | |
[Service] | |
PermissionsStartOnly=true | |
Type=forking | |
RuntimeDirectory=/var/run/kea | |
RuntimeDirectoryMode=0775 | |
ExecStart=/usr/sbin/keactrl start | |
ExecReload=/usr/sbin/keactrl reload | |
ExecStop=/usr/sbin/keactrl stop | |
Restart=on-failure | |
[Install] | |
WantedBy=multi-user.target | |
EOF | |
# Reload service | |
${SUDO} systemctl daemon-reload | |
# Enable service | |
${SUDO} systemctl enable kea-dhcp | |
# Start service | |
${SUDO} systemctl restart kea-dhcp | |
# Edit config file | |
# /etc/kea/keactrl.conf | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment