批量部署node_exporter+process_exporter
ansible批量部署node_exporter+process_exporter
config.yml
process_names:
- name: "{{.Comm}}"
cmdline:
- '.+'
play-book
---
- hosts: all
vars:
src_dir: /data/exporter
node_exporter_file: node_exporter-1.8.2.linux-arm64.tar.gz
process_exporter_file: process-exporter-0.8.3.linux-arm64.tar.gz
exporter_dir: /prometheus-monitor/exporter
tasks:
- name: Ensure exporter directory exists
file:
path: "{{ exporter_dir }}"
state: directory
mode: 0755
- name: Copy node_exporter and process_exporter tarballs
copy:
src: "{{ src_dir }}/{{ item }}"
dest: "{{ exporter_dir }}"
owner: root
group: root
mode: 0644
with_items:
- "{{ node_exporter_file }}"
- "{{ process_exporter_file }}"
- name: Extract node_exporter
unarchive:
src: "{{ exporter_dir }}/{{ node_exporter_file }}"
dest: "{{ exporter_dir }}"
remote_src: yes
owner: root
group: root
- name: Start node_exporter
shell: |
chdir="{{ exporter_dir }}/{{ node_exporter_file | splitext | first | replace('.tar', '') }}"
nohup ./node_exporter --web.listen-address=:9004 &
args:
executable: /bin/bash
- name: Extract process_exporter
unarchive:
src: "{{ exporter_dir }}/{{ process_exporter_file }}"
dest: "{{ exporter_dir }}"
remote_src: yes
owner: root
group: root
- name: Configure process_exporter
copy:
src: /etc/ansible/yaml/config.yml
dest: "{{ exporter_dir }}/{{ process_exporter_file | splitext | first | replace('.tar', '') }}/"
- name: Start process_exporter
shell: |
chdir="{{ exporter_dir }}/{{ process_exporter_file | splitext | first | replace('.tar', '') }}"
nohup ./process-exporter -config.path config.yml -web.listen-address=:9010 &
args:
executable: /bin/bash
...