mirror of
https://github.com/luzifer-ansible/netdata.git
synced 2024-12-22 17:11:17 +00:00
Initial version
Signed-off-by: Knut Ahlers <knut@ahlers.me>
This commit is contained in:
commit
d0a6edd67c
5 changed files with 238 additions and 0 deletions
15
README.md
Normal file
15
README.md
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
# Luzifer-Ansible / netdata
|
||||||
|
|
||||||
|
This role installs a systemd service running [netdata](https://github.com/firehol/netdata) using Docker and my [Docker image](https://quay.io/luzifer/netdata) for it.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
roles:
|
||||||
|
- role: netdata
|
||||||
|
config:
|
||||||
|
PUSHOVER_APP_TOKEN: 'mytoken'
|
||||||
|
DEFAULT_RECIPIENT_PUSHOVER: 'myuser'
|
||||||
|
```
|
||||||
|
|
||||||
|
(For configuration values see the [original repositories](https://github.com/luzifer-docker/netdata) README file!)
|
5
defaults/main.yml
Normal file
5
defaults/main.yml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
config: {}
|
||||||
|
hostname: '{{ ansible_hostname }}'
|
||||||
|
version: latest
|
134
meta/main.yml
Normal file
134
meta/main.yml
Normal file
|
@ -0,0 +1,134 @@
|
||||||
|
---
|
||||||
|
galaxy_info:
|
||||||
|
author: Knut Ahlers
|
||||||
|
description: Install netdata using Docker container on host
|
||||||
|
# If the issue tracker for your role is not on github, uncomment the
|
||||||
|
# next line and provide a value
|
||||||
|
# issue_tracker_url: http://example.com/issue/tracker
|
||||||
|
# Some suggested licenses:
|
||||||
|
# - BSD (default)
|
||||||
|
# - MIT
|
||||||
|
# - GPLv2
|
||||||
|
# - GPLv3
|
||||||
|
# - Apache
|
||||||
|
# - CC-BY
|
||||||
|
license: Apache
|
||||||
|
min_ansible_version: 2.3
|
||||||
|
#
|
||||||
|
# Below are all platforms currently available. Just uncomment
|
||||||
|
# the ones that apply to your role. If you don't see your
|
||||||
|
# platform on this list, let us know and we'll get it added!
|
||||||
|
#
|
||||||
|
platforms:
|
||||||
|
#- name: EL
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - 5
|
||||||
|
# - 6
|
||||||
|
# - 7
|
||||||
|
#- name: GenericUNIX
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - any
|
||||||
|
#- name: Fedora
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - 16
|
||||||
|
# - 17
|
||||||
|
# - 18
|
||||||
|
# - 19
|
||||||
|
# - 20
|
||||||
|
# - 21
|
||||||
|
# - 22
|
||||||
|
#- name: SmartOS
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - any
|
||||||
|
#- name: opensuse
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - 12.1
|
||||||
|
# - 12.2
|
||||||
|
# - 12.3
|
||||||
|
# - 13.1
|
||||||
|
# - 13.2
|
||||||
|
#- name: Amazon
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - 2013.03
|
||||||
|
# - 2013.09
|
||||||
|
#- name: GenericBSD
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - any
|
||||||
|
#- name: FreeBSD
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - 8.0
|
||||||
|
# - 8.1
|
||||||
|
# - 8.2
|
||||||
|
# - 8.3
|
||||||
|
# - 8.4
|
||||||
|
# - 9.0
|
||||||
|
# - 9.1
|
||||||
|
# - 9.1
|
||||||
|
# - 9.2
|
||||||
|
- name: Ubuntu
|
||||||
|
versions:
|
||||||
|
# - all
|
||||||
|
# - lucid
|
||||||
|
# - maverick
|
||||||
|
# - natty
|
||||||
|
# - oneiric
|
||||||
|
# - precise
|
||||||
|
# - quantal
|
||||||
|
# - raring
|
||||||
|
# - saucy
|
||||||
|
# - trusty
|
||||||
|
# - utopic
|
||||||
|
# - vivid
|
||||||
|
- xenial
|
||||||
|
#- name: SLES
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - 10SP3
|
||||||
|
# - 10SP4
|
||||||
|
# - 11
|
||||||
|
# - 11SP1
|
||||||
|
# - 11SP2
|
||||||
|
# - 11SP3
|
||||||
|
#- name: GenericLinux
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - any
|
||||||
|
#- name: Debian
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - etch
|
||||||
|
# - jessie
|
||||||
|
# - lenny
|
||||||
|
# - squeeze
|
||||||
|
# - wheezy
|
||||||
|
#
|
||||||
|
# Below are all categories currently available. Just as with
|
||||||
|
# the platforms above, uncomment those that apply to your role.
|
||||||
|
#
|
||||||
|
categories:
|
||||||
|
#- cloud
|
||||||
|
#- cloud:ec2
|
||||||
|
#- cloud:gce
|
||||||
|
#- cloud:rax
|
||||||
|
#- clustering
|
||||||
|
#- database
|
||||||
|
#- database:nosql
|
||||||
|
#- database:sql
|
||||||
|
#- development
|
||||||
|
#- monitoring
|
||||||
|
#- networking
|
||||||
|
#- packaging
|
||||||
|
- system
|
||||||
|
#- web
|
||||||
|
dependencies: []
|
||||||
|
# List your role dependencies here, one per line.
|
||||||
|
# Be sure to remove the '[]' above if you add dependencies
|
||||||
|
# to this list.
|
79
tasks/main.yml
Normal file
79
tasks/main.yml
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: Ensure directories required
|
||||||
|
file:
|
||||||
|
dest: '{{ item }}'
|
||||||
|
state: directory
|
||||||
|
with_items:
|
||||||
|
- /etc/netdata
|
||||||
|
- /etc/netdata/conf.d
|
||||||
|
- /etc/netdata/charts.d
|
||||||
|
- /etc/netdata/node.d
|
||||||
|
- /etc/netdata/plugins.d
|
||||||
|
- /etc/netdata/python.d
|
||||||
|
|
||||||
|
- name: Set system hostname as netdata hostname
|
||||||
|
copy:
|
||||||
|
dest: /etc/netdata/conf.d/netdata.conf
|
||||||
|
content: |
|
||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
|
[global]
|
||||||
|
hostname = {{ hostname }}
|
||||||
|
register: netdata_conf
|
||||||
|
|
||||||
|
- name: Set environment variables
|
||||||
|
template:
|
||||||
|
dest: /etc/netdata/environment
|
||||||
|
src: environment.j2
|
||||||
|
register: configuration
|
||||||
|
|
||||||
|
- name: Install netdata systemctl service
|
||||||
|
copy:
|
||||||
|
dest: /etc/systemd/system/netdata.service
|
||||||
|
content: |
|
||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=Netdata metrics daemon
|
||||||
|
After=docker.service
|
||||||
|
Requires=docker.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
RemainAfterExit=yes
|
||||||
|
|
||||||
|
EnvironmentFile=-/etc/netdata/environment
|
||||||
|
|
||||||
|
ExecStartPre=/usr/bin/docker pull quay.io/luzifer/netdata
|
||||||
|
ExecStartPre=-/usr/bin/docker rm -f netdata
|
||||||
|
|
||||||
|
ExecStart=/usr/bin/docker run -d --cap-add SYS_PTRACE \
|
||||||
|
-v /proc:/host/proc:ro \
|
||||||
|
-v /sys:/host/sys:ro \
|
||||||
|
-v /etc/netdata:/override:ro \
|
||||||
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
|
-p 19999:19999 \
|
||||||
|
--name=netdata \
|
||||||
|
quay.io/luzifer/netdata:{{ version }}
|
||||||
|
|
||||||
|
ExecReload=/usr/bin/docker restart netdata
|
||||||
|
|
||||||
|
ExecStop=/usr/bin/docker stop netdata
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
register: service
|
||||||
|
|
||||||
|
- name: Activate netdata service
|
||||||
|
systemd:
|
||||||
|
daemon_reload: yes
|
||||||
|
enabled: yes
|
||||||
|
name: netdata.service
|
||||||
|
state: restarted
|
||||||
|
when: service.changed
|
||||||
|
|
||||||
|
- name: Reload configuration when required
|
||||||
|
systemd:
|
||||||
|
name: netdata.service
|
||||||
|
state: reloaded
|
||||||
|
when: configuration.changed or netdata_conf.changed
|
5
templates/environment.j2
Normal file
5
templates/environment.j2
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
|
{% for k,v in config.items() %}
|
||||||
|
{{k}}={{v}}
|
||||||
|
{% endfor %}
|
Loading…
Reference in a new issue