--- - name: Bootstrapping Container vars: lxc_base: ansible-centos8 lxc_name: test import_playbook: ../common/tasks/lxc.yml - name: Installing GoAccess hosts: test vars_files: - ../variables.yml tasks: - name: Ensuring group exists group: name: "{{ goaccess_user }}" state: present - name: Creating user and making home directory user: system: yes state: present name: "{{ goaccess_user }}" groups: "{{ goaccess_user }}" home: "{{ goaccess_home }}" - block: - name: Cloning repository git: repo: "{{ goaccess_repository }}" dest: "{{ goaccess_home }}" version: "{{ goaccess_version }}" force: yes - name: Creating configuration shell: autoreconf -fiv args: chdir: "{{ goaccess_home }}" creates: configure - name: Configuring application shell: ./configure --enable-utf8 --enable-geoip=mmdb --with-openssl args: chdir: "{{ goaccess_home }}" creates: config.status - name: Increasing max referrer ignore limit lineinfile: path: "{{ goaccess_home }}/src/settings.h" regexp: '#define MAX_IGNORE_REF 64' line: '#define MAX_IGNORE_REF 2000' - name: Compiling application shell: make args: chdir: "{{ goaccess_home }}" creates: goaccess - name: Creating directories file: path: "{{ goaccess_home }}/{{ item }}" state: directory with_items: - public - database - database/geoip - name: Downloading referrer spam list get_url: url: https://raw.githubusercontent.com/matomo-org/referrer-spam-blacklist/master/spammers.txt dest: "{{ goaccess_home }}/config" mode: '0644' - name: Prepend referrer ignore directive shell: sed 's/^/ignore-referer /' spammers.txt > spammers-ignore.txt args: chdir: "{{ goaccess_home }}/config" creates: spammers-ignore.txt - name: Downloading GeoLite2 city database get_url: url: "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&license_key={{ maxmind_geoip2_key }}&suffix=tar.gz" dest: "{{ goaccess_home }}/database/geoip/geolite2-city.tar.gz" mode: '0644' - name: Extracting GeoLite2 city database shell: tar -xf geolite2-city.tar.gz --strip 1 args: chdir: "{{ goaccess_home }}/database/geoip" creates: config.status warn: false changed_when: false - name: Placing configuration files template: src: "{{ item | basename }}.j2" dest: "{{ goaccess_home }}/{{ item }}" with_items: - public/favicon.ico - config/goaccess.conf.default - config/browsers.list - config/exclude.list - name: Concatenate configuration shell: cat goaccess.conf.default spammers-ignore.txt > goaccess.conf args: chdir: "{{ goaccess_home }}/config" changed_when: false become: true become_user: "{{ goaccess_user }}" - name: Placing system files template: src: "{{ item | basename }}.j2" dest: "{{ item }}" with_items: - /etc/systemd/system/goaccess.service - /etc/systemd/system/goaccess.timer - /etc/systemd/system/referrer-blacklist.service - /etc/systemd/system/referrer-blacklist.timer - name: Enabling and starting units systemd: name: "{{ item }}" state: started enabled: yes daemon_reload: yes with_items: - goaccess.timer - referrer-blacklist.timer - name: Running GoAccess systemd: name: goaccess state: started daemon_reload: yes