diff --git a/prometheus-slave/main.yml b/prometheus-slave/main.yml index e5f34b2..9f2e8a3 100644 --- a/prometheus-slave/main.yml +++ b/prometheus-slave/main.yml @@ -4,6 +4,27 @@ become: yes tasks: + - name: Install dependencies + apt: + name: + - libffi-dev + - python3 + - python3-pip + - python3-setuptools + state: latest + update_cache: true + + - name: Upgrade pip + pip: + name: pip + state: latest + + - name: Install required pip packages + pip: + name: + - pyopenssl + state: present + - name: Create node_exporter group group: name: "node_exporter" @@ -20,6 +41,44 @@ system: true state: present + - name: Create config directory + file: + path: "/etc/node_exporter" + state: directory + owner: "node_exporter" + group: "node_exporter" + + - name: Generate an OpenSSL private key + openssl_privatekey: + path: /etc/node_exporter/node_exporter.key + owner: "node_exporter" + group: "node_exporter" + + - name: Generate an OpenSSL Certificate Signing Request + openssl_csr: + path: /etc/node_exporter/node_exporter.csr + privatekey_path: /etc/node_exporter/node_exporter.key + common_name: localhost + owner: "node_exporter" + group: "node_exporter" + + - name: Generate a Self Signed OpenSSL certificate + openssl_certificate: + path: /etc/node_exporter/node_exporter.crt + privatekey_path: /etc/node_exporter/node_exporter.key + csr_path: /etc/node_exporter/node_exporter.csr + provider: selfsigned + owner: "node_exporter" + group: "node_exporter" + + - name: Copy config + template: + src: config.yml.j2 + dest: /etc/node_exporter/config.yml + owner: "node_exporter" + group: "node_exporter" + mode: 0755 + - name: Download and unzip Node Exporter unarchive: src: "https://github.com/prometheus/node_exporter/releases/download/v{{ node_exporter_version }}/node_exporter-{{ node_exporter_version }}.linux-amd64.tar.gz" diff --git a/prometheus-slave/templates/config.yml.j2 b/prometheus-slave/templates/config.yml.j2 new file mode 100644 index 0000000..1c12203 --- /dev/null +++ b/prometheus-slave/templates/config.yml.j2 @@ -0,0 +1,3 @@ +tls_server_config: + cert_file: node_exporter.crt + key_file: node_exporter.key diff --git a/prometheus-slave/templates/node_exporter.service.j2 b/prometheus-slave/templates/node_exporter.service.j2 index 9fda35e..b6e2960 100644 --- a/prometheus-slave/templates/node_exporter.service.j2 +++ b/prometheus-slave/templates/node_exporter.service.j2 @@ -10,6 +10,6 @@ Group=node_exporter Type=simple Restart=on-failure RestartSec=5s -ExecStart=/usr/local/bin/node_exporter +ExecStart=/usr/local/bin/node_exporter --web.config.file=/etc/node_exporter/config.yml [Install] WantedBy=multi-user.target