52 lines
2 KiB
Bash
Executable file
52 lines
2 KiB
Bash
Executable file
print_config_title 'CHECK IPAM CONFIG'
|
|
|
|
RES_AUTHENT=$(${CURL} -k -X POST --user ${USER_IPAM}:${PASSWORD_IPAM} ${URL}/user/ 2>/dev/null)
|
|
CODE_RETOUR_RES_AUTHENT=$(echo ${RES_AUTHENT} | jq '.code')
|
|
TOKEN=$(echo ${RES_AUTHENT} | jq -r '.data.token')
|
|
|
|
# Check if IPAM API request succeded
|
|
# If IPAM API connection FAILED
|
|
if [ ${CODE_RETOUR_RES_AUTHENT} != 200 ] || [ ! -n "${TOKEN}" ]; then
|
|
echo -e "${RED}Connection to IPAM API FAILED or empty TOKEN : check KO${NC}\n"
|
|
|
|
# If IPAM API connection SUCCEDED
|
|
else
|
|
|
|
# Get list of IP to check
|
|
# WARNING, if one of variable is empty, ALL IP may be checked (but we just want to check our public ranges and admin IPs)
|
|
IPS_TO_CHECK=$(ip addr show scope global | awk '/inet/ { sub(/\/.*$/, "", $2); print $2 }' | sort | uniq | grep -e "^${IPV4_ADMIN_NETWORK}" -e "^${IPV6_ADMIN_NETWORK}" -e "^${RANGE_IPV4_1_NETWORK}" -e "^${RANGE_IPV4_2_NETWORK}" -e "^${RANGE_IPV6_NETWORK}" )
|
|
|
|
# Return Code
|
|
RC=$?
|
|
|
|
# If no IP to check found
|
|
if [ $RC -ne 0 ]
|
|
then
|
|
IPAM_CONFIG_CHECK_FAILED="${IPAM_CONFIG_CHECK_FAILED} No IP to check in IPAM, check the IP configuration"
|
|
echo -e "${RED}NO IP to check in IPAM : check KO${NC}\n"
|
|
else
|
|
|
|
# Check if all found IP are recorded in IPAM
|
|
for ip_to_check in ${IPS_TO_CHECK}
|
|
do
|
|
echo -e "Check if ${BLUE}${ip_to_check}${NC} is recorded in IPAM"
|
|
|
|
# Request one IP
|
|
REQUEST_ONE_IP=$(curl -k --header "Content-type: application/x-www-form-urlencoded" --header "token: ${TOKEN}" -X GET "${URL}/addresses/search/fd00:1e02:40::1/" 2>/dev/null | jq -r .data[].ip &>/dev/null)
|
|
|
|
# Return Code
|
|
RC=$?
|
|
|
|
# If IP not found in IPAM
|
|
if [ $RC -ne 0 ]
|
|
then
|
|
IPAM_CONFIG_CHECK_FAILED="${IPAM_CONFIG_CHECK_FAILED} ${ip_to_check} NOT FOUND in IPAM or problem with API connection ;"
|
|
echo -e "${RED}${ip_to_check} NOT FOUND in IPAM or problem with API connection : check KO${NC}\n"
|
|
# If IP found in IPAM
|
|
else
|
|
echo -e "${GREEN}${ip_to_check}FOUND in IPAM : check OK${NC}\n"
|
|
fi
|
|
done
|
|
fi
|
|
fi
|