- name: Создаём групу ansible.builtin.group: name: "{{ blackbox_exporter_group }}" system: yes state: present - name: Создаём пользователя ansible.builtin.user: name: "{{ blackbox_exporter_user }}" group: "{{ blackbox_exporter_user }}" system: yes shell: /sbin/nologin create_home: no - name: Проверяем, существует ли архив ansible.builtin.stat: path: "/tmp/blackbox_exporter-{{ blackbox_exporter_version }}.tar.gz" register: archive_stat - name: Загружаем архив экспортера, если не существует ansible.builtin.get_url: url: "https://github.com/prometheus/blackbox_exporter/releases/download/v{{ blackbox_exporter_version }}/blackbox_exporter-{{ blackbox_exporter_version }}.linux-amd64.tar.gz" dest: "/tmp/blackbox_exporter-{{ blackbox_exporter_version }}.tar.gz" mode: '0644' when: not archive_stat.stat.exists changed_when: false - name: Создаём целевую директорию ansible.builtin.file: path: "{{ blackbox_exporter_install_dir }}" state: directory mode: '0755' owner: "{{ blackbox_exporter_user }}" group: "{{ blackbox_exporter_user }}" - name: Разархивируем файл архива ansible.builtin.unarchive: src: "/tmp/blackbox_exporter-{{ blackbox_exporter_version }}.tar.gz" dest: "{{ blackbox_exporter_install_dir }}" owner: "{{ blackbox_exporter_user }}" group: "{{ blackbox_exporter_user }}" mode: "0755" remote_src: yes extra_opts: [--strip-components=1] creates: "{{ blackbox_exporter_install_dir }}/blackbox_exporter" # предотвращает повторную распаковку - name: Удляем архив после разархивации ansible.builtin.file: path: "/tmp/blackbox_exporter-{{ blackbox_exporter_version }}.tar.gz" state: absent changed_when: false - name: Создаём симовлическую ссылку на бинарный файл ansible.builtin.file: src: "{{ blackbox_exporter_install_dir }}/blackbox_exporter" dest: /usr/local/bin/blackbox_exporter state: link - name: Создаём каталог для конфигурационного файла ansible.builtin.file: path: "{{ blackbox_exporter_config_path | dirname }}" state: directory owner: "{{ blackbox_exporter_user }}" group: "{{ blackbox_exporter_group }}" mode: '0755' - name: Создаём systemd юнит ansible.builtin.template: src: blackbox_exporter.service.j2 dest: /etc/systemd/system/blackbox_exporter.service mode: '0644' notify: Перезапустить Blackbox Exporter - name: Enable and start service ansible.builtin.systemd: name: blackbox_exporter enabled: yes state: started