From 71bd56ef4b5a8cb21f0f6b466c4c915f259eaa39 Mon Sep 17 00:00:00 2001 From: Thedro Neely Date: Fri, 10 Apr 2020 01:14:52 -0400 Subject: roles/goaccess/main: Add goaccess --- roles/goaccess/main.yml | 134 ++++++++++++++++++++++++++++++++++++++++++++++++ roles/variables.yml | 5 ++ 2 files changed, 139 insertions(+) create mode 100644 roles/goaccess/main.yml diff --git a/roles/goaccess/main.yml b/roles/goaccess/main.yml new file mode 100644 index 0000000..3bc0c3a --- /dev/null +++ b/roles/goaccess/main.yml @@ -0,0 +1,134 @@ +--- +- name: Container Setup + + vars: + lxc_base: ansible-alpine3.11 + 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 }}" + + - name: Installing the required dependencies + apk: + state: present + update_cache: yes + name: + - sudo + - git + - supervisor + - tar + - autoconf + - automake + - gcc + - g++ + - libmaxminddb-dev + - gettext-dev + - ncurses-dev + - openssl-dev + - make + + - 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: 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: Downloading GeoLite2 city database + get_url: + url: "https://download.maxmind.com/app/geoip_download_by_token?edition_id=GeoLite2-City&date=20200407&suffix=tar.gz&token={{ maxmind_geoip2_token }}" + 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: "templates/{{ item | basename }}.j2" + dest: "{{ goaccess_home }}/{{ item }}" + with_items: + - public/favicon.ico + - config/goaccess.conf + - config/browsers.list + + become: true + become_user: "{{ goaccess_user }}" + + - name: Copying supervisord config files + template: + src: "templates/{{ item | basename }}.j2" + dest: "{{ item }}" + with_items: + - /etc/supervisord.conf + + - name: Ensuring supervisord has been started and enabled + service: + name: supervisord + state: restarted + enabled: yes + changed_when: false + + - name: Waiting for supervisor to become active + wait_for: + port: 9100 diff --git a/roles/variables.yml b/roles/variables.yml index 739ebe2..9bf8bfc 100644 --- a/roles/variables.yml +++ b/roles/variables.yml @@ -39,3 +39,8 @@ paperless_home: "/opt/{{ paperless_user }}" paperless_version: e394c76aad6350ed324fa7ab65627ded7197370e paperless_repository: https://github.com/tdro/paperless paperless_ocrmypdf_version: 9.6.1 + +goaccess_user: goaccess +goaccess_home: "/opt/{{ goaccess_user }}" +goaccess_version: 906e0488b75b2e00bde5409b49e0ca7b4e83da94 +goaccess_repository: https://github.com/allinurl/goaccess -- cgit v1.2.3