78 lines
2.8 KiB
YAML

- 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