Skip to content

Instantly share code, notes, and snippets.

@alice-xu
Created June 16, 2014 01:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save alice-xu/6f5f3ff65bd09dc4c02e to your computer and use it in GitHub Desktop.
Save alice-xu/6f5f3ff65bd09dc4c02e to your computer and use it in GitHub Desktop.
OpenVPN client config discovery for Zabbix LLD
#!/usr/bin/env bash
VPN_SERVER=$( hostname --fqdn )
CLIENT_CONFIG_DIR="$1"
[ -z "${CLIENT_CONFIG_DIR}" ] && CLIENT_CONFIG_DIR='/etc/openvpn/ccd'
{
echo "{"
echo " \"data\":["
for line in $( ls -1 "${CLIENT_CONFIG_DIR}" 2> /dev/null ); do
CLIENT_CN=$(echo $line|sed -e 's/\\/\\\\/g' -e 's|/|\\/|g')
CLIENT_VPN_IP=$(cat "${CLIENT_CONFIG_DIR}"/$line|grep ifconfig-push|awk '{print $2}')
echo " {"
echo " \"{#VPN_SERVER}\":\"${VPN_SERVER}\","
echo " \"{#CLIENT_CN}\":\"${CLIENT_CN}\","
echo " \"{#CLIENT_VPN_IP}\":\"${CLIENT_VPN_IP}\""
echo " },"
done | sed -e '$d'
echo " }"
echo " ]"
echo "}"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment