- name: Download and verify the blackbox archive get_url: url: "https://github.com/blackbox/blackbox/releases/download/v{{ blackbox_version }}/blackbox-{{ blackbox_version }}.linux-amd64.tar.gz" dest: "/tmp/blackbox-{{ blackbox_version }}.linux-amd64.tar.gz" checksum: "sha256:{{ blackbox_sha256 }}" register: download_result - name: Unarchive blackbox binary unarchive: src: "{{ download_result.dest }}" dest: /tmp remote_src: true # Indicates the source file is on the remote host owner: root group: root mode: 0755 - name: Copy blackbox binary to /usr/local/bin copy: src: "/tmp/blackbox-{{ blackbox_version }}.linux-amd64/blackbox" dest: "/usr/local/bin/blackbox-{{ blackbox_version }}" owner: root group: root mode: '0755' remote_src: yes - name: Create blackbox binary symlink file: src: "/usr/local/bin/blackbox-{{ blackbox_version }}" dest: "/usr/local/bin/blackbox" state: link owner: root group: root mode: '0755' # Permissions for the target file force: yes - name: Create a blackbox group group: name: blackbox state: present gid: 1052 - name: Create a blackbox user user: name: blackbox uid: 1052 group: 1052 comment: "blackbox user" shell: /bin/bash state: present create_home: no - name: Create blackbox data and config directories file: path: "{{ item }}" state: directory mode: 0750 owner: blackbox group: blackbox loop: - /var/lib/blackbox_exporter - /etc/blackbox_exporter - name: Install blackbox config template: src: templates/blackbox.yml.j2 dest: /etc/blackbox/blackbox.yml owner: blackbox group: blackbox mode: '0640' notify: Restart blackbox - name: Install blackbox service template: src: templates/blackbox.service.j2 dest: /etc/systemd/system/blackbox.service owner: root group: root mode: 0640 register: blackbox_service notify: Restart blackbox - name: systemctl daemon-reload to pickup blackbox service changes systemd_service: daemon_reload: true when: blackbox_service.changed notify: Restart blackbox - name: Start and enable blackbox service: name: blackbox state: started enabled: true