Skip to content
Snippets Groups Projects
Commit e412697a authored by jurgenhaas's avatar jurgenhaas
Browse files

#3 Refactor this role to use bitsensors elastalert docker implementation

parent 72075099
No related branches found
No related tags found
No related merge requests found
---
elastalert_version: 3.0.0-beta.0
elastalert_defaults:
drupal:
syslog:
......
---
# file: roles/elastalert/handlers/main.yml
- name: ElastAlert installation
shell: '{{ item }}'
args:
chdir: /opt/elastalert
with_items:
- python setup.py install
- /usr/local/bin/elastalert-create-index --host "localhost" --port "9200" --no-auth --index "elastalert_status" --old-index ""
- name: Add ElastAlert to Boot-List
systemd:
- name: Re-create the elastalert container
docker_container:
name: elastalert
image: bitsensor/elastalert:{{ elastalert_version }}
state: started
daemon_reload: yes
enabled: yes
- name: Restart ElastAlert
service:
name: elastalert
state: restarted
recreate: yes
restart_policy: always
network_mode: host
volumes:
- /opt/elastalert/config/elastalert.yaml:/opt/elastalert/config.yaml
- /opt/elastalert/config/elastalert-test.yaml:/opt/elastalert/config-test.yaml
- /opt/elastalert/config/config.json:/opt/elastalert-server/config/config.json
- /opt/elastalert/rules:/opt/elastalert/rules
- /opt/elastalert/rule_templates:/opt/elastalert/rule_templates
---
dependencies:
- { role: elasticsearch }
- role: elasticsearch
......@@ -4,56 +4,15 @@
- name: Clone ElastAlert
git:
accept_hostkey: yes
repo: 'https://github.com/Yelp/elastalert.git'
repo: 'https://github.com/bitsensor/elastalert.git'
dest: /opt/elastalert
force: yes
version: master
notify:
- ElastAlert installation
- Add ElastAlert to Boot-List
- Restart ElastAlert
- name: Start Script
template:
src: etc_init_d_elastalert
dest: /etc/init.d/elastalert
owner: root
group: root
mode: 0755
- name: Install PIP Components
pip:
name: '{{ packages }}'
state: latest
vars:
packages:
- pip
- setuptools
- six
notify:
- Restart ElastAlert
- name: Install PIP Requirements
pip:
requirements: /opt/elastalert/requirements.txt
state: latest
notify:
- Restart ElastAlert
- name: Ensure Rules Directory
file:
path: /opt/elastalert/my_rules
state: directory
owner: root
group: root
mode: 0755
version: '{{ elastalert_version }}'
- name: Configuration
template:
src: config.yaml
dest: /opt/elastalert/config.yaml
owner: root
group: root
mode: 0644
- name: Pull docker image
docker_image:
name: bitsensor/elastalert:{{ elastalert_version }}
source: pull
force_source: yes
notify:
- Restart ElastAlert
- Re-create the elastalert container
......@@ -23,5 +23,4 @@
loop_control:
loop_var: drupal_host
# when: not excluded_roles or "elastalert" not in excluded_roles
when: no
when: not excluded_roles or "elastalert" not in excluded_roles
......@@ -9,7 +9,7 @@
- name: Rule for Drupal
template:
src: '{{ filename }}.yaml'
dest: /opt/elastalert/my_rules/{{ filename }}.{{ item.1.domain }}.yaml
dest: /opt/elastalert/rules/{{ filename }}.{{ item.1.domain }}.yaml
owner: root
group: root
mode: 0644
......
......@@ -4,7 +4,7 @@
- name: Rules
template:
src: rule.yaml
dest: /opt/elastalert/my_rules/{{ item.key }}.yaml
dest: /opt/elastalert/rules/{{ item.key }}.yaml
owner: root
group: root
mode: 0644
......
#!/bin/sh
### BEGIN INIT INFO
# Provides: elastalert
# Short-Description: Start and stop ElastAlert
# Description: ElastAlert
# Required-Start: $remote_fs
# Required-Stop: $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
export HOME=/root
# Action to take
case "$1" in
start)
echo "Starting ElastAlert ..."
cd /opt/elastalert
/usr/local/bin/elastalert &
;;
stop)
echo "Stoping ElastAlert ..."
kill `pidof /usr/bin/python /usr/local/bin/elastalert` && echo "ElastAlert stopped"
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: service elastalert {start|stop|restart}"
exit 1
;;
esac
exit 0
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment