feat: update Caddyfile and Docker Compose for EchoIP service with improved IP header handling and database management
Some checks failed
Ansible Lint Check / check-ansible (push) Failing after 14s
Nix Format Check / check-format (push) Successful in 57s
Python Lint Check / check-python (push) Failing after 11s

This commit is contained in:
2025-03-26 15:54:34 +01:00
parent 7d4b255b4c
commit eeae791f72
3 changed files with 86 additions and 3 deletions

View File

@@ -4,6 +4,9 @@
- name: Set EchoIP directories
ansible.builtin.set_fact:
echoip_service_dir: "{{ ansible_env.HOME }}/services/echoip"
echoip_data_dir: "/mnt/object_storage/services/echoip"
maxmind_account_id: {{ lookup('community.general.onepassword', 'finpwvqp6evflzjcsnwge74n34', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='account_id') }}
maxmind_license_key: {{ lookup('community.general.onepassword', 'finpwvqp6evflzjcsnwge74n34', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='license_key') }}
- name: Create EchoIP directory
ansible.builtin.file:
@@ -11,6 +14,66 @@
state: directory
mode: "0755"
- name: Create EchoIP data directory
ansible.builtin.file:
path: "{{ echoip_data_dir }}"
state: directory
mode: "0755"
- name: Download GeoLite2 ASN database
ansible.builtin.get_url:
url: "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-ASN&license_key={{ maxmind_license_key }}&suffix=tar.gz"
dest: "{{ echoip_data_dir }}/GeoLite2-ASN.tar.gz"
mode: "0644"
- name: Extract GeoLite2 ASN database
ansible.builtin.unarchive:
src: "{{ echoip_data_dir }}/GeoLite2-ASN.tar.gz"
dest: "{{ echoip_data_dir }}"
remote_src: true
register: asn_extracted
- name: Move ASN database to correct location
ansible.builtin.command:
cmd: "mv {{ echoip_data_dir }}/GeoLite2-ASN_*/GeoLite2-ASN.mmdb {{ echoip_data_dir }}/GeoLite2-ASN.mmdb"
when: asn_extracted.changed
- name: Download GeoLite2 City database
ansible.builtin.get_url:
url: "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&license_key={{ maxmind_license_key }}&suffix=tar.gz"
dest: "{{ echoip_data_dir }}/GeoLite2-City.tar.gz"
mode: "0644"
- name: Extract GeoLite2 City database
ansible.builtin.unarchive:
src: "{{ echoip_data_dir }}/GeoLite2-City.tar.gz"
dest: "{{ echoip_data_dir }}"
remote_src: true
register: city_extracted
- name: Move City database to correct location
ansible.builtin.command:
cmd: "mv {{ echoip_data_dir }}/GeoLite2-City_*/GeoLite2-City.mmdb {{ echoip_data_dir }}/GeoLite2-City.mmdb"
when: city_extracted.changed
- name: Download GeoLite2 Country database
ansible.builtin.get_url:
url: "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country&license_key={{ maxmind_license_key }}&suffix=tar.gz"
dest: "{{ echoip_data_dir }}/GeoLite2-Country.tar.gz"
mode: "0644"
- name: Extract GeoLite2 Country database
ansible.builtin.unarchive:
src: "{{ echoip_data_dir }}/GeoLite2-Country.tar.gz"
dest: "{{ echoip_data_dir }}"
remote_src: true
register: country_extracted
- name: Move Country database to correct location
ansible.builtin.command:
cmd: "mv {{ echoip_data_dir }}/GeoLite2-Country_*/GeoLite2-Country.mmdb {{ echoip_data_dir }}/GeoLite2-Country.mmdb"
when: country_extracted.changed
- name: Deploy EchoIP docker-compose.yml
ansible.builtin.template:
src: docker-compose.yml.j2