blob: 7db4771b1d69ab5fa7020dab36927d0d24e34267 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
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?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: "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
|