--- - name: install python-cryptoraphy apt: name: "{{ python_basename }}-cryptography" state: present - name: create base directory file: path: /etc/ssl/prometheus state: directory - name: create server cert/key directory file: path: /etc/ssl/prometheus/server state: directory owner: root group: prometheus mode: 0750 - name: create private key to connect to exporter openssl_privatekey: path: /etc/ssl/prometheus/server/exporter-key.pem type: RSA size: 4096 owner: prometheus group: prometheus mode: 0400 notify: reload prometheus - name: create signing request for client certificate to connect to exporter openssl_csr: path: /etc/ssl/prometheus/server/exporter-csr.pem privatekey_path: /etc/ssl/prometheus/server/exporter-key.pem CN: "{{ inventory_hostname }}" subject_alt_name: - "DNS:{{ host_name }}.{{ host_domain }}" - "IP:{{ ansible_default_ipv4.address }}" key_usage: - digitalSignature key_usage_critical: yes extended_key_usage: - clientAuth extended_key_usage_critical: yes basic_constraints: - 'CA:FALSE' basic_constraints_critical: yes ## TODO: implement remote signing? - name: create client certificate to connect to exporter openssl_certificate: path: /etc/ssl/prometheus/server/exporter-crt.pem csr_path: /etc/ssl/prometheus/server/exporter-csr.pem provider: ownca ownca_path: /etc/ssl/prometheus/ca-crt.pem ownca_privatekey_path: /etc/ssl/prometheus/ca/key.pem ownca_digest: sha256 ownca_not_after: "+18250d" ## 50 years notify: reload prometheus ## TODO: install /etc/ssl/prometheus/ca-crt.pem from server