summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThedro Neely <thedroneely@gmail.com>2020-04-10 01:14:52 -0400
committerThedro Neely <thedroneely@gmail.com>2020-04-10 01:14:52 -0400
commit71bd56ef4b5a8cb21f0f6b466c4c915f259eaa39 (patch)
treed1f5b370c6355be0cbaab3557847a833fa8709db
parenta75ffafdfe2a4ae335d3a8ae7d90b5b534373d4d (diff)
downloadplaybooks-71bd56ef4b5a8cb21f0f6b466c4c915f259eaa39.tar.gz
playbooks-71bd56ef4b5a8cb21f0f6b466c4c915f259eaa39.tar.bz2
playbooks-71bd56ef4b5a8cb21f0f6b466c4c915f259eaa39.zip
roles/goaccess/main: Add goaccess
-rw-r--r--roles/goaccess/main.yml134
-rw-r--r--roles/variables.yml5
2 files changed, 139 insertions, 0 deletions
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