76 lines
1.7 KiB
YAML
76 lines
1.7 KiB
YAML
|
---
|
||
|
- name: Make sure python3 is installed
|
||
|
apt:
|
||
|
name:
|
||
|
- python3
|
||
|
- python3-pip
|
||
|
|
||
|
- name: Install ElasticSearch python module
|
||
|
pip:
|
||
|
name: elasticsearch
|
||
|
executable: pip3
|
||
|
|
||
|
- name: Find out the name of ES load balancer
|
||
|
uri:
|
||
|
url: '{{ consul_query_url }}'
|
||
|
register: es_lbs
|
||
|
|
||
|
- name: Install stat collecting script
|
||
|
copy:
|
||
|
src: collect.py
|
||
|
dest: '{{ nimbus_stats_script }}'
|
||
|
mode: 0755
|
||
|
register: nimbus_script
|
||
|
|
||
|
- name: Create the cron script
|
||
|
copy:
|
||
|
dest: '{{ nimbus_stats_cron_script }}'
|
||
|
mode: 0755
|
||
|
content: |
|
||
|
#!/usr/bin/env bash
|
||
|
exec {{ nimbus_stats_script }} \
|
||
|
-H {{ es_lbs.json[0].ServiceAddress }} \
|
||
|
-o {{ nimbus_stats_json }}
|
||
|
|
||
|
- name: Create www directory
|
||
|
file:
|
||
|
path: '{{ nimbus_stats_web_root }}'
|
||
|
state: directory
|
||
|
group: www-data
|
||
|
mode: 0755
|
||
|
|
||
|
- name: Run the script before Nginx configuration
|
||
|
command: '{{ nimbus_stats_cron_script }}'
|
||
|
when: nimbus_script.changed
|
||
|
|
||
|
- name: Create nginx config
|
||
|
template:
|
||
|
src: proxy.conf.j2
|
||
|
dest: '/etc/nginx/sites-available/{{ nimbus_stats_domain | mandatory }}.conf'
|
||
|
notify:
|
||
|
- reload nginx
|
||
|
|
||
|
- name: Enable site
|
||
|
file:
|
||
|
src: '/etc/nginx/sites-available/{{ nimbus_stats_domain | mandatory }}.conf'
|
||
|
dest: '/etc/nginx/sites-enabled/{{ nimbus_stats_domain | mandatory }}.conf'
|
||
|
state: link
|
||
|
|
||
|
- name: Enable HTTPS port
|
||
|
iptables:
|
||
|
comment: 'HTTPS'
|
||
|
chain: INPUT
|
||
|
jump: ACCEPT
|
||
|
source: '0.0.0.0/0'
|
||
|
protocol: tcp
|
||
|
destination_port: 443
|
||
|
notify:
|
||
|
- Save iptables rules
|
||
|
|
||
|
- name: Create a cron job for updating stats
|
||
|
cron:
|
||
|
name: Nimbus Fleet Stats
|
||
|
minute: '*/5'
|
||
|
user: root
|
||
|
job: '{{ nimbus_stats_cron_script }}'
|