#!/bin/bash set -e -o pipefail country_location="GeoLite2-Country-CSV_*/GeoLite2-Country-Locations-en.csv" country_ip="GeoLite2-Country-CSV_*/GeoLite2-Country-Blocks-IPv4.csv" haproxy_dir="{{haproxy_dir}}" MAXMIND_LICENSE="{{maxmind_key}}" PROXY="{{PROXY}}" if [[ $PROXY != "" ]] then export http_proxy="$PROXY" export https_proxy="$PROXY" fi cd /tmp rm -rf geo2lite if [[ ! -d geo2lite ]]; then mkdir geo2lite && cd geo2lite && mkdir subnets else cd geo2lite fi if [[ -f geoip2lite.zip ]]; then rm -f geoip2lite.zip fi wget "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country-CSV&license_key=${MAXMIND_LICENSE}&suffix=zip" -qO geoip2lite.zip && unzip -oq geoip2lite.zip function get_ips_by_country { rm -f subnets/$2.subnets cat $country_ip |grep $1 |awk -F"," '{print $1}' >> subnets/$2.subnets } while read line; do country_code_dig=$(echo $line |awk -F"," '{print $1}') country_code_buk=$(echo $line |awk -F"," '{print $5}') if [[ $country_code_dig != '' ]] && [[ $country_code_buk != '' ]] && [[ $country_code_buk != 'country_iso_code' ]] ; then get_ips_by_country $country_code_dig $country_code_buk fi done < $country_location if [[ ! -d "$haproxy_dir"/geoip ]]; then mkdir "$haproxy_dir"/geoip fi cp subnets/* "$haproxy_dir"/geoip systemctl reload haproxy