ansible-collection-prometheus/roles/ipmi_exporter/molecule/alternative/prepare.yml
SuperQ b3582f1ff9
feat: Add ipmi_exporter role
Add a new role for the `ipmi_exporter`.

Signed-off-by: SuperQ <superq@gmail.com>
2024-01-15 09:35:44 +01:00

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 }}"