@ -0,0 +1,8 @@ | |||||
--- | |||||
- name: Configure prometheus node to be used with server | |||||
hosts: all | |||||
user: root | |||||
gather_facts: yes | |||||
roles: | |||||
- prometheus_nodexporter |
@ -0,0 +1,5 @@ | |||||
--- | |||||
prometheus_exporter_listen_address: "0.0.0.0" | |||||
prometheus_exporter_listen_port: "9100" | |||||
prometheus_sd_directory: "/etc/prometheus/nodes/" |
@ -0,0 +1,10 @@ | |||||
- name: restart exporter | |||||
systemd: state=restarted name= {{ prometheus_exporter_service }} | |||||
- name: enable exporter | |||||
systemd: enabled=yes name={{ prometheus_exporter_service }} | |||||
- name: reload server | |||||
uri: | |||||
url: "http://{{ prometheus_server }}:9090/-/reload" | |||||
method: POST |
@ -0,0 +1,2 @@ | |||||
--- | |||||
@ -0,0 +1,9 @@ | |||||
--- | |||||
- name: enable exporter on listen address | |||||
lineinfile: | |||||
path: /etc/default/prometheus-node-exporter | |||||
regexp: '^ARGS=(.*) \\' | |||||
backrefs: yes | |||||
line: 'ARGS=\1 -web.listen-address {{ prometheus_exporter_listen_address }}:{{ prometheus_exporter_listen_port }} \\' | |||||
notify: restart exporter |
@ -0,0 +1,33 @@ | |||||
--- | |||||
# Role to deploy prometheus node and add them to a prometheus server | |||||
- name: Import OS variables | |||||
include_vars: "{{ ansible_os_family }}.yml" | |||||
- name: install node exporter | |||||
package: | |||||
name: "{{ prometheus_exporter_package }}" | |||||
state: latest | |||||
notify: enable exporter | |||||
- import_tasks: debian.yml | |||||
when: ansible_distribution == 'Debian' or ansible_distribution == 'Ubuntu' | |||||
- import_tasks: redhat.yml | |||||
when: ansible_distribution == 'CentOS' or ansible_distribution == 'CloudLinux' or ansible_distribution == 'Virtuozzo' | |||||
- name: import discovery file to server | |||||
template: | |||||
src: sd_file.yml.j2 | |||||
dest: "{{ prometheus_sd_directory }}/{{ ansible_nodename }}.yml" | |||||
delegate_to: "{{ prometheus_server }}" | |||||
- name: add nodename to server hosts | |||||
lineinfile: | |||||
path: /etc/hosts | |||||
regexp: '{{ prometheus_exporter_listen_address }} {{ ansible_nodename }}' | |||||
state: present | |||||
line: '{{ prometheus_exporter_listen_address }} {{ ansible_nodename }}' | |||||
delegate_to: "{{ prometheus_server }}" | |||||
when: prometheus_exporter_listen_address is defined and prometheus_exporter_listen_address != "0.0.0.0" | |||||
notify: reload server |
@ -0,0 +1,9 @@ | |||||
--- | |||||
- name: enable exporter on listen address | |||||
lineinfile: | |||||
path: /etc/sysconfig/node_exporter | |||||
regexp: '^LISTEN_ADDRESS=' | |||||
backrefs: yes | |||||
line: 'LISTEN_ADDRESS="{{ prometheus_exporter_listen_address }}:{{ prometheus_exporter_listen_port }}"' | |||||
notify: restart exporter |
@ -0,0 +1,2 @@ | |||||
- targets: | |||||
- "{{ ansible_nodename }}:{{ prometheus_exporter_listen_port }}" |
@ -0,0 +1,6 @@ | |||||
--- | |||||
# Prometheus variables for Debian | |||||
prometheus_exporter_package: "prometheus-node-exporter" | |||||
prometheus_exporter_service: "prometheus-node-exporter.service" |
@ -0,0 +1,6 @@ | |||||
--- | |||||
# Prometheus variables for RedHat | |||||
prometheus_exporter_package: "prometheus-node_exporter" | |||||
prometheus_exporter_service: "node_exporter.service" |
@ -0,0 +1 @@ | |||||
RedHat.yml |