commit 10479ddef8be6b28545c4012ea38316459af59fb Author: 1xtier Date: Sun Jan 25 15:18:59 2026 +0400 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..579ab81 --- /dev/null +++ b/README.md @@ -0,0 +1,78 @@ +Ansible-Role: Node exporter +========= + +This role installs [node-exporter](https://github.com/prometheus/node_exporter) for the prometeus metrics server and configures the systemd service + +#### Installation + +1: go to the roles folder +2: cloning the repository git clone url node_exporter + +Requirements +------------ + +N/A + +Role Variables +-------------- + +--- +#### General + +```yaml +NE_version: 'latest' +NE_arch: 'amd64' +NE_host: '' +NE_port: 9100 +NE_options: '' +``` +- NE_version: Node_exporter version +- NE_arch: System architecture +- NE_host: the IP address where node_exporter will listen +- NE_port: the port where node_exporter will listen (Don't forget to open it.) +- NE_optinos: Abstract attributes of node_exporter +#### Download + +```yaml +NE_download_url: https://github.com/prometheus/node_exporter/releases/download/v{{ NE_version }}/node_exporter-{{ NE_version }}.linux-{{ NE_arch }}.tar.gz +``` +- NE_download_url generating the node_exporter download link + +#### Setting systemd + +```yaml +NE_bin_path: /usr/local/bin/node_exporter +NE_state: started +NE_enabled: true +NE_restart: on-failure +``` +- NE_bin_path The installation path of the binary file +- NE_state Start of the systemd service +- NE_enbaled Enabling systemd service startup +- NE_restart restarting node_exporter.service when it fails + +Dependencies +------------ + +no + +Example Playbook +---------------- + +```yaml + - hosts: servers + roles: + - role: node_exporter +``` +License +------- + +MIT + +Author Information +------------------ +1xtier + +[github](https://github.com/1xtier) + +[blog](https://1xtier.ru) diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..25dde3b --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,14 @@ +--- +# General +NE_version: '1.10.2' +NE_arch: 'amd64' +NE_host: '' +NE_port: 9100 +NE_options: '' +# Download +NE_download_url: https://github.com/prometheus/node_exporter/releases/download/v{{ NE_version }}/node_exporter-{{ NE_version }}.linux-{{ NE_arch }}.tar.gz +# Setting systemd +NE_bin_path: /usr/local/bin/node_exporter +NE_state: started +NE_enabled: true +NE_restart: on-failure diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..99db495 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +--- +# handlers file for node-exporter diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..933b134 --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,30 @@ +#SPDX-License-Identifier: MIT-0 +dependencies: [] +galaxy_info: + author: 1xtier + role_name: node_exporter + description: Installing node-exporter + company: RedFex + license: license (MIT) + min_ansible_version: 2.1 + platforms: + - name: GenericUNIX + versions: + - all + - name: Fedora + versions: + - all + - name: Ubuntu + versions: + - all + - name: Debian + versions: + - all + galaxy_tags: + - system + - monitoring + - prometheus + - node + - exporter + - metrics + diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..4a32686 --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,38 @@ +#SPDX-License-Identifier: MIT-0 +--- +- name: Downloading node-exporter + ansible.builtin.unarchive: + src: "{{ NE_download_url }}" + dest: /tmp + mode: 0755 + remote_src: yes + +- name: Copying the node_exporter bin file + ansible.builtin.copy: + src: "/tmp/node_exporter-{{ NE_version }}.linux-{{NE_arch }}/node_exporter" + dest: "{{ NE_bin_path }}" + mode: 0755 + remote_src: yes + +- name: "Installing node-exporter" + ansible.builtin.user: + name: "nodeusr" + shell: "/bin/false" + create_home: false + state: present + +- name: I copy the node_exporter.service file + ansible.builtin.template: + src: node_exporter.service.j2 + dest: /etc/systemd/system/node_exporter.service + mode: 0644 + +- name: re-reading the systemd configuration + ansible.builtin.systemd_service: + daemon_reload: true + +- name: Starting node_exoporter.service + ansible.builtin.systemd_service: + name: node_exporter.service + state: "{{ NE_state }}" + enabled: "{{ NE_enabled }}" diff --git a/templates/node_exporter.service.j2 b/templates/node_exporter.service.j2 new file mode 100644 index 0000000..857db1f --- /dev/null +++ b/templates/node_exporter.service.j2 @@ -0,0 +1,14 @@ +[Unit] +Description=Node Exporter Service +After=network.target + +[Service] +User=nodeusr +Group=nodeusr +Type=simple +ExecStart={{ NE_bin_path }} --web.listen-address={{ NE_host }}:{{ NE_port }} {{ NE_options }} +ExecReload=/bin/kill -HUP $MAINPID +Restart={{ NE_restart }} + +[Install] +WantedBy=multi-user.target diff --git a/tests/inventory b/tests/inventory new file mode 100644 index 0000000..03ca42f --- /dev/null +++ b/tests/inventory @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +localhost + diff --git a/tests/test.yml b/tests/test.yml new file mode 100644 index 0000000..f83e590 --- /dev/null +++ b/tests/test.yml @@ -0,0 +1,6 @@ +#SPDX-License-Identifier: MIT-0 +--- +- hosts: localhost + remote_user: root + roles: + - node-exporter diff --git a/vars/main.yml b/vars/main.yml new file mode 100644 index 0000000..5e9ca22 --- /dev/null +++ b/vars/main.yml @@ -0,0 +1,3 @@ +#SPDX-License-Identifier: MIT-0 +--- +# vars file for node-exporter