mirror of
https://github.com/prometheus-community/ansible
synced 2025-02-17 05:08:28 +00:00
78 lines
2.4 KiB
YAML
78 lines
2.4 KiB
YAML
---
|
|
- name: Run local preparation
|
|
hosts: localhost
|
|
gather_facts: false
|
|
tasks:
|
|
- name: Download ipmi_exporter binary to local folder
|
|
become: false
|
|
ansible.builtin.get_url:
|
|
url: "https://github.com/prometheus-community/ipmi_exporter/releases/download/v{{\
|
|
\ ipmi_exporter_version }}/ipmi_exporter-{{ ipmi_exporter_version }}.linux-{{\
|
|
\ go_arch }}.tar.gz"
|
|
dest: "/tmp/ipmi_exporter-{{ ipmi_exporter_version }}.linux-{{ go_arch }}.tar.gz"
|
|
mode: 0644
|
|
register: _download_binary
|
|
until: _download_binary is succeeded
|
|
retries: 5
|
|
delay: 2
|
|
check_mode: false
|
|
|
|
- name: Unpack ipmi_exporter binary
|
|
become: false
|
|
ansible.builtin.unarchive:
|
|
src: "/tmp/ipmi_exporter-{{ ipmi_exporter_version }}.linux-{{ go_arch }}.tar.gz"
|
|
dest: "/tmp"
|
|
creates: "/tmp/ipmi_exporter-{{ ipmi_exporter_version }}.linux-{{ go_arch\
|
|
\ }}/ipmi_exporter"
|
|
check_mode: false
|
|
|
|
- name: Link to ipmi_exporter binaries directory
|
|
become: false
|
|
ansible.builtin.file:
|
|
src: "/tmp/ipmi_exporter-{{ ipmi_exporter_version }}.linux-amd64"
|
|
dest: "/tmp/ipmi_exporter-linux-amd64"
|
|
state: link
|
|
check_mode: false
|
|
|
|
- name: Install pyOpenSSL for certificate generation
|
|
ansible.builtin.pip:
|
|
name: "pyOpenSSL"
|
|
|
|
- name: Create private key
|
|
community.crypto.openssl_privatekey:
|
|
path: "/tmp/tls.key"
|
|
|
|
- name: Create CSR
|
|
community.crypto.openssl_csr:
|
|
path: "/tmp/tls.csr"
|
|
privatekey_path: "/tmp/tls.key"
|
|
|
|
- name: Create certificate
|
|
community.crypto.x509_certificate:
|
|
path: "/tmp/tls.cert"
|
|
csr_path: "/tmp/tls.csr"
|
|
privatekey_path: "/tmp/tls.key"
|
|
provider: selfsigned
|
|
|
|
- name: Run target preparation
|
|
hosts: all
|
|
any_errors_fatal: true
|
|
tasks:
|
|
- name: Create ipmi_exporter cert dir
|
|
ansible.builtin.file:
|
|
path: "{{ ipmi_exporter_tls_server_config.cert_file | dirname }}"
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: u+rwX,g+rwX,o=rX
|
|
|
|
- name: Copy cert and key
|
|
ansible.builtin.copy:
|
|
src: "{{ item.src }}"
|
|
dest: "{{ item.dest }}"
|
|
mode: "{{ item.mode | default('0644') }}"
|
|
loop:
|
|
- src: "/tmp/tls.cert"
|
|
dest: "{{ ipmi_exporter_tls_server_config.cert_file }}"
|
|
- src: "/tmp/tls.key"
|
|
dest: "{{ ipmi_exporter_tls_server_config.key_file }}"
|