2025-07-09 20:01:38
Ниже пример простого Ansible playbook для **удаления node_exporter и mysqld_exporter** с RHEL 8, включая:
- остановку и отключение systemd-сервисов (`node_exporter` на порту 9100 и `mysqld_exporter` на 9104),
- удаление unit-файлов,
- удаление бинарников из `/usr/local/bin`,
- удаление созданных системных пользователей и групп (если они не нужны),
- очистку временных файлов и конфигураций.
```yaml
---
- name: Удаление node_exporter и mysqld_exporter с сервера
hosts: all
become: yes
vars:
exporters:
- name: node_exporter
service: node_exporter
binary_path: /usr/local/bin/node_exporter
user: node_exporter
group: node_exporter
systemd_unit: /etc/systemd/system/node_exporter.service
- name: mysqld_exporter
service: mysqld_exporter
binary_path: /usr/local/bin/mysqld_exporter
user: prometheus
group: prometheus
systemd_unit: /etc/systemd/system/mysqld_exporter.service
config_file: /etc/.mysqld_exporter.cnf
tasks:
- name: Останавливаем и отключаем сервисы экспортёров
systemd:
name: "{{ item.service }}"
state: stopped
enabled: no
loop: "{{ exporters }}"
- name: Удаляем systemd unit-файлы экспортёров
file:
path: "{{ item.systemd_unit }}"
state: absent
loop: "{{ exporters }}"
- name: Перезагружаем systemd после удаления unit-файлов
systemd:
daemon_reload: yes
- name: Удаляем бинарники экспортёров
file:
path: "{{ item.binary_path }}"
state: absent
loop: "{{ exporters }}"
- name: Удаляем конфигурационный файл mysqld_exporter (если есть)
file:
path: "{{ exporters[1].config_file }}"
state: absent
when: exporters[1].config_file is defined
- name: Удаляем системных пользователей и группы экспортёров
user:
name: "{{ item.user }}"
state: absent
remove: yes
loop: "{{ exporters }}"
- name: Удаляем системные группы экспортёров
group:
name: "{{ item.group }}"
state: absent
loop: "{{ exporters }}"
```
### Объяснение:
- Сервисы останавливаются и отключаются от автозапуска.
- Unit-файлы systemd удаляются, после чего systemd перезагружается.
- Удаляются бинарные файлы из `/usr/local/bin`.
- Удаляется конфигурационный файл mysqld_exporter с паролями.
- Удаляются системные пользователи и группы, созданные для запусков экспортёров (если не нужны для других сервисов).
Этот playbook аккуратно удалит оба экспортёра с сервера, освободив порты 9100 и 9104 и очистив связанные файлы и пользователей.
Если нужно, могу помочь адаптировать под конкретные требования или добавить проверку существования сервисов перед удалением.
Back to list