Manage Netdata configuration
This commit is contained in:
parent
e511b71706
commit
9fc3a461ce
|
@ -4,3 +4,4 @@
|
||||||
### Features
|
### Features
|
||||||
* Install Netdata.
|
* Install Netdata.
|
||||||
* Can choose to install recommends packages.
|
* Can choose to install recommends packages.
|
||||||
|
* Manage Netdata configuration (/etc).
|
||||||
|
|
29
README.md
29
README.md
|
@ -17,22 +17,49 @@ A role to manage Netdata installation and configuration.
|
||||||
* **netdata__base_packages** : List of base packages in order to provide Netdata [default : `netdata`].
|
* **netdata__base_packages** : List of base packages in order to provide Netdata [default : `netdata`].
|
||||||
* **netdata__install_recommends** : If recommends packages should be install [default : `True`].
|
* **netdata__install_recommends** : If recommends packages should be install [default : `True`].
|
||||||
* **netdata__deploy_state** : The desired state this role should achieve. [default : `present`].
|
* **netdata__deploy_state** : The desired state this role should achieve. [default : `present`].
|
||||||
|
* **netdata__etc_src** : Directory used as source to templating /etc/netdata configuration content [default : `../templates/etc/netdata`].
|
||||||
|
|
||||||
## Example Playbook
|
## Example Playbook
|
||||||
|
|
||||||
* Use defaults vars :
|
* Use defaults vars :
|
||||||
|
|
||||||
``` yaml
|
``` yaml
|
||||||
- hosts: mynode.domain
|
- hosts: mynode.DOMAIN
|
||||||
roles:
|
roles:
|
||||||
- role: ipr-cnrs.netdata
|
- role: ipr-cnrs.netdata
|
||||||
tags: ['role::netdata', 'ipr']
|
tags: ['role::netdata', 'ipr']
|
||||||
```
|
```
|
||||||
|
|
||||||
|
* Use your own Netdata's configuration as source :
|
||||||
|
|
||||||
|
``` yml
|
||||||
|
- hosts: mynode.DOMAIN
|
||||||
|
roles:
|
||||||
|
- role: ipr-cnrs.netdata
|
||||||
|
netdata__etc_src: '{{ inventory_dir + "/../resources/host/mynode.DOMAIN/etc/netdata/" }}'
|
||||||
|
```
|
||||||
|
|
||||||
|
* Ensure your directory contains only templates or sub-directories, such as :
|
||||||
|
|
||||||
|
``` sh
|
||||||
|
mynode.DOMAIN
|
||||||
|
└── etc
|
||||||
|
└── netdata
|
||||||
|
├── fping.conf.j2
|
||||||
|
├── health_alarm_notify.conf.j2
|
||||||
|
├── netdata.conf.j2
|
||||||
|
└── node.d
|
||||||
|
├── named.conf.md.j2
|
||||||
|
├── README.md.j2
|
||||||
|
├── sma_webbox.conf.md.j2
|
||||||
|
└── snmp.conf.md.j2
|
||||||
|
```
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
This role will :
|
This role will :
|
||||||
* Install needed packages to provide `netdata` service.
|
* Install needed packages to provide `netdata` service.
|
||||||
|
* Manage Netdata configuration (/etc/netdata).
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
|
|
|
@ -37,3 +37,18 @@ netdata__install_recommends: True
|
||||||
netdata__deploy_state: 'present'
|
netdata__deploy_state: 'present'
|
||||||
# ]]]
|
# ]]]
|
||||||
# ]]]
|
# ]]]
|
||||||
|
# Configuration [[[
|
||||||
|
# -----------------------------
|
||||||
|
|
||||||
|
# .. envvar:: netdata__etc_src [[[.
|
||||||
|
# Directory with templates used to provide Netdata configuration (usually in
|
||||||
|
# '/etc/netdata').
|
||||||
|
#
|
||||||
|
# Must be a relative path to default directory of this role
|
||||||
|
# or to your ansible inventory directory.
|
||||||
|
#
|
||||||
|
netdata__etc_src: '../templates/etc/netdata'
|
||||||
|
|
||||||
|
# ]]]
|
||||||
|
|
||||||
|
# ]]]
|
||||||
|
|
|
@ -13,3 +13,32 @@
|
||||||
- '{{ netdata__base_packages }}'
|
- '{{ netdata__base_packages }}'
|
||||||
|
|
||||||
|
|
||||||
|
# Server Manage /etc configuration files [[[1
|
||||||
|
- name: Ensure Netdata directory structure exists
|
||||||
|
file:
|
||||||
|
path: '/etc/netdata/{{ item.path }}'
|
||||||
|
state: directory
|
||||||
|
owner: 'root'
|
||||||
|
group: 'netdata'
|
||||||
|
mode: '0755'
|
||||||
|
with_filetree: '{{ netdata__etc_src }}'
|
||||||
|
when: item.state == 'directory'
|
||||||
|
|
||||||
|
- name: Generate Netdata configuration files
|
||||||
|
template:
|
||||||
|
src: '{{ item.src }}'
|
||||||
|
dest: "/etc/netdata/{{ item.path | replace('.j2','') }}"
|
||||||
|
owner: 'root'
|
||||||
|
group: 'netdata'
|
||||||
|
mode: '{{ item.mode }}'
|
||||||
|
with_filetree: '{{ netdata__etc_src }}'
|
||||||
|
when: item.state == 'file'
|
||||||
|
|
||||||
|
- name: Generate Netdata configuration symlinks
|
||||||
|
template:
|
||||||
|
src: '{{ item.src }}'
|
||||||
|
dest: "/etc/netdata/{{ item.path | replace('.j2','') }}"
|
||||||
|
state: 'link'
|
||||||
|
force: true
|
||||||
|
with_filetree: '{{ netdata__etc_src }}'
|
||||||
|
when: item.state == 'link'
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
## {{ ansible_managed }}
|
||||||
|
|
||||||
|
# NetData Configuration
|
||||||
|
|
||||||
|
# The current full configuration can be retrieved from the running
|
||||||
|
# server at the URL
|
||||||
|
#
|
||||||
|
# http://localhost:19999/netdata.conf
|
||||||
|
#
|
||||||
|
# for example:
|
||||||
|
#
|
||||||
|
# wget -O /etc/netdata/netdata.conf http://localhost:19999/netdata.conf
|
||||||
|
#
|
||||||
|
|
||||||
|
[global]
|
||||||
|
run as user = netdata
|
||||||
|
web files owner = root
|
||||||
|
web files group = root
|
||||||
|
# Netdata is not designed to be exposed to potentially hostile
|
||||||
|
# networks.See https://github.com/firehol/netdata/issues/164
|
||||||
|
bind socket to IP = 127.0.0.1
|
Loading…
Reference in New Issue