-
jurgenhaas authoredjurgenhaas authored
main.yml 3.34 KiB
---
# file: roles/netdata/tasks/main.yml
- name: "NetData Role"
set_fact: role_netdata_started=true
tags: always
- block:
- name: "Install required packages"
apt:
pkg={{ item }}
state=installed
update_cache=yes
with_items:
- zlib1g-dev
- gcc
- make
- git
- autoconf
- autogen
- automake
- pkg-config
- uuid-dev
- python-dev
- python-yaml
#FireQOS available from 15.04
#- firehol
- name: "Remove existing components"
file:
path: '{{ item }}'
state: 'absent'
with_items:
- '/opt/netdata'
- '/etc/netdata'
- '/etc/init.d/netdata'
- '/etc/logrotate.d/netdata'
when: netdata_force_reset
- name: "Ensure Directory"
file:
path='/etc/netdata/python.d'
state='directory'
- include: install.yml
- name: "Add User to Admins"
user:
name: 'netdata'
groups: 'adm'
append: yes
- name: "Configure Registry"
ini_file:
dest='/etc/netdata/netdata.conf'
create=yes
section='registry'
option='{{ item.option }}'
value='{{ item.value }}'
with_items:
- option: 'enabled'
value: '{{ (netdata_registry|default("pmon1") == inventory_hostname)|ternary("yes", "no") }}'
- option: 'registry to announce'
value: 'http://{{ netdata_registry|default("pmon1") }}:19999'
notify:
- "Restart NetData"
- name: "Configure NetData"
template:
src='{{ item }}'
dest='/etc/netdata/{{ item }}'
owner='root'
group='root'
mode=644
backup=yes
with_items:
- 'health_alarm_notify.conf'
notify:
- "Restart NetData"
- name: "Patch Startup Script"
lineinfile:
dest: '/etc/init.d/netdata'
regexp: 'killproc -p \$\{PIDFILE\} \$DAEMON_PATH/\$DAEMON'
line: ' killproc -p ${PIDFILE} $DAEMON_PATH/$DAEMON && sleep 1'
when: ansible_lsb.major_release == '12'
- block:
- name: "Enable Apache Status Module"
apache2_module:
name=status
state=present
notify: "Restart Apache"
- name: "Apache Status Site"
template:
src=apache.conf
dest=/etc/apache2/sites-available/status{{ apache_conf_ext|default('.conf') }}
owner=root
group=root
mode=0644
notify: "Restart Apache"
- name: "Enable Apache Status Site"
command: a2ensite status creates=/etc/apache2/sites-enabled/status{{ apache_conf_ext|default('.conf') }}
notify: "Restart Apache"
when: groups['webserver'] is defined and inventory_hostname in groups['webserver']
- name: "Configure Plugin: MySQL"
replace:
dest: '/etc/netdata/python.d/mysql.conf'
regexp: '#[\s]*pass[\s]*:[\s]*'''''
replace: 'pass : ''{{ mysql_root_password|default("root") }}'''
notify:
- "Restart NetData"
- name: "Check if KSM is available"
stat: path='/sys/kernel/mm/ksm'
register: ksm
# Note: copy module doesn't work here because parent directory /sys
# is not writable, not even by root
- name: "Configure KSM"
shell: echo {{ item.value }} >/sys/kernel/mm/ksm/{{ item.file }}
with_items:
- file: 'run'
value: '1'
- file: 'sleep_millisecs'
value: '1000'
when: ksm.stat.exists
notify:
- "Restart NetData"
when: '"netdata" not in excluded_roles'