From cee8d2fb55fd4eadccfc7e89ae1c87a35711d569 Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Mon, 27 Oct 2025 22:47:58 +0100 Subject: [PATCH] windows: set up windows_exporter --- roles/windows/README.md | 6 ++++++ roles/windows/handlers/main.yml | 6 ++++++ roles/windows/tasks/main.yml | 4 ++++ roles/windows/tasks/windows_exporter.yml | 25 ++++++++++++++++++++++++ 4 files changed, 41 insertions(+) create mode 100644 roles/windows/tasks/windows_exporter.yml diff --git a/roles/windows/README.md b/roles/windows/README.md index 84ebc28..efca8d9 100644 --- a/roles/windows/README.md +++ b/roles/windows/README.md @@ -1,3 +1,9 @@ Set up a generic Windows host. Rename and configure network interfaces. Configure the SSH server. + +If `windows_exporter_version` is set, Prometheus [windows_exporter](https://github.com/prometheus-community/windows_exporter) will be installed and configured on port 9100. + +Before first run, set the network profile to private and start the SSH server manually with + + start-service sshd diff --git a/roles/windows/handlers/main.yml b/roles/windows/handlers/main.yml index 3e97365..14c46f3 100644 --- a/roles/windows/handlers/main.yml +++ b/roles/windows/handlers/main.yml @@ -3,3 +3,9 @@ name: sshd state: restarted when: "'handler' not in ansible_skip_tags" + +- name: restart windows_exporter + win_service: + name: windows_exporter + state: restarted + when: "'handler' not in ansible_skip_tags" diff --git a/roles/windows/tasks/main.yml b/roles/windows/tasks/main.yml index 93d2a00..85acf59 100644 --- a/roles/windows/tasks/main.yml +++ b/roles/windows/tasks/main.yml @@ -45,3 +45,7 @@ name: sshd start_mode: auto state: started + +- name: Install windows-exporter for prometheus metrics + when: 'windows_exporter_version is defined' + include_tasks: windows_exporter.yml diff --git a/roles/windows/tasks/windows_exporter.yml b/roles/windows/tasks/windows_exporter.yml new file mode 100644 index 0000000..0ff0a12 --- /dev/null +++ b/roles/windows/tasks/windows_exporter.yml @@ -0,0 +1,25 @@ +- name: Check current windows_exporter version + win_command: '"c:\program files\windows_exporter\windows_exporter.exe" --version' + failed_when: false + changed_when: false + register: result + +- when: '"stderr" not in result or "version "+windows_exporter_version not in result.stderr' + block: + - name: Download windows_exporter + win_get_url: + url: "https://github.com/prometheus-community/windows_exporter/releases/download/v{{ windows_exporter_version }}/windows_exporter-{{ windows_exporter_version }}-amd64.msi" + dest: 'c:\windows\temp\windows_exporter.msi' + force: true + + - name: Install Windows exporter + win_package: + path: 'c:\windows\temp\windows_exporter.msi' + arguments: "LISTEN_PORT=9100" + notify: restart windows_exporter + + - name: Enable windows_exporter service + win_service: + name: windows_exporter + start_mode: delayed + state: started