Удаление
Ручное удаление
Чтобы полностью очистить кластер от всех компонентов продукта СУБД Pangolin, выполните следующие шаги на каждом узле:
Обозначения
Далее в разделе используются следующие переменные:
<service_name>
- имя сервиса;<package_name>
- наименование rpm/deb-пакета;<path_to_file_or_directory>
- путь до файла или папки;<user>
- имя пользователя.
Шаг 1. Остановка сервисов
-
Остановите сервисы командой:
sudo systemctl stop <service_name>
Список сервисов, которые необходимо остановить:
etcd.service
patroni.service
pangolin.service
haproxy.service
pgbouncer.service
confd.service
postgresql.service
pangolin_reencrypt@postgres.service
pangolin_reencrypt@kmadmin_pg.service
pangolin-auth-reencrypt@postgres.service
pangolin-auth-reencrypt@kmadmin_pg.service
pangolin-auth-reencrypt.service
pg_receivewal.service
pg_certs_rotate_agent.service
pangolin-certs-rotate.service
pangolin-manager.service
pangolin-pooler.service
pangolin-pqgd.service -
Перезагрузите сервисы командой:
sudo systemctl reload
Шаг 2. Удаление ссылок на исполняемые файлы
Для удаления ссылок вып олните команды:
/usr/pangolin/bin/pangolin-linker remove
/usr/pangolin-dbms-client/bin/pangolin-linker remove
Шаг 3. Удаление пользователей и групп
-
Остановите задания планировщика для пользователей
kmadmin_pg
,postgres
,etcd
:sudo crontab -r -u kmadmin_pg
sudo crontab -r -u postgres
sudo crontab -r -u etcd -
Остановите все процессы для пользователей
kmadmin_pg
,postgres
,etcd
:sudo pkill -9 -u kmadmin_pg
sudo pkill -9 -u postgres
sudo pkill -9 -u etcd -
Отключите логин для пользователей
kmadmin_pg
,postgres
:loginctl disable-linger kmadmin_pg
loginctl disable-linger postgres -
Удалите пользователей
kmadmin_pg
,postgres
,etcd
:sudo deluser --remove-home kmadmin_pg
sudo deluser --remove-home postgres
sudo deluser --remove-home etcd -
Удалите группы
kmadmin_pg
,postgres
,etcd
,pangolin_users
:sudo groupdel kmadmin_pg
sudo groupdel postgres
sudo groupdel etcdsudo groupdel
sudo groupdel pangolin_users
Шаг 4. Удаление пакетов
-
Удалите пакеты стандартных версий:
- SberLinux, РЕД ОС, CentOS
- Red Hat Enterprise Linux
- Astra Linux
- Альт СП
sudo dnf remove <package_name> -y
sudo yum remove <package_name> -y
sudo apt --purge autoremove <package_name> -y
sudo apt-get remove <package_name> -y
Список пакетов, которые необходимо удалить:
etcd
etcd-client
etcd-server
haproxy
pg_probackup-11
confd
rh-python36-python-psycopg2
python-psycopg2
rh-python36-python
pangolin-manager
pangolin-pooler
pangolin-backup-tools
ansible-venv
pangolin-diagnostic-tool
pangolin-ansible-venv-controlled
pangolin-certs-rotate
pangolin-pgq
pangolin-pgqd
pangolin-pgq-coop
pangolin-pgsql-http
pangolin-pgloader
pangolin-postgis
pangolin-pgrouting
pangolin-pg-background
pangolin-pg-dbms-lock
pangolin-plpgsql-check
pangolin-pgcopydb
pangolin-auth-reencrypt
pangolin-security-utilities
pangolin-full -
Удалите многоверсионные пакеты:
- Для rpm-пакетов
- Для deb-пакетов
rpm -ev --erase --allmatches --noscripts --nodeps $(rpm -qa <package_name>)
dpkg -l | grep '<package_name>' | awk '{print $2}' | xargs dpkg -P
Список пакетов, которые необходимо удалить:
- Список rpm-пакетов
- Список deb-пакетов
postgresql-sber-edition
platform-v-pangolin-dbms
pangolin-dbms*
pangolin-manager
pangolin-pooler
ansible-venv
pangolin-timescaledb*
pangolin-backup-tools*platform-v-pangolin-dbms
pangolin-*Общий список компонентов
debug-info
для удаления:pangolin-full-debuginfo
pangolin-backup-tools-debuginfo
pangolin-certs-rotate-debuginfo
pangolin-dbms-*-debuginfo
pangolin-dbms-*-client-debuginfo
pangolin-dbms-*-libpq-debuginfo
pangolin-manager-debuginfo
pangolin-pooler-debuginfo
pangolin-security-utilities-debuginfo
Шаг 5. Удаление записей sudoers_file
Удалите записи в /etc/sudoers
:
sudo rm -rf /etc/sudoers.d/10-kmadmin_pg
sudo rm -rf /etc/sudoers.d/10-postgres
Шаг 6. Удаление сообщения motd
Для удаления записи выполните команды:
sudo sed -i '/\/usr\/local\/sbin\/dynmotd.sh/d' /etc/profile
sudo sed -i '/# Dynamic motd/d' /etc/profile
Шаг 7. Удаление рабочих файлов и папок
Для удаления рабочих файлов и папок выполните команду:
sudo rm -rf <path_to_file_or_directory>
Примечание:
Параметр, указанный внутри
{{ }}
, можно найти вcustom_config_initial.yml
.Подробнее о
custom_config_initial.yml
читайте в разделе «Автоматизированная установка при помощи запуска Ansible плейбука».
Список файлов и папок, которые требуется удалить:
/etc/systemd/system/pg_certs_rotate_agent.service
/etc/systemd/system/postgresql.service
/etc/systemd/system/patroni.service
/etc/systemd/system/patroni.service.old
/etc/systemd/system/etcd.service
/etc/systemd/system/pgbouncer.service
/etc/systemd/system/pgbouncer.service.old
/etc/systemd/system/confd.service
/etc/systemd/system/pg_receivewal.service
/usr/lib/systemd/system/pg_certs_rotate_agent.service
/usr/lib/systemd/system/postgresql.service
/usr/lib/systemd/system/patroni.service
/usr/lib/systemd/system/patroni.service.old
/usr/lib/systemd/system/etcd.service
/usr/lib/systemd/system/pgbouncer.service
/usr/lib/systemd/system/pgbouncer.service.old
/usr/lib/systemd/system/confd.service
/usr/lib/systemd/system/pg_receivewal.service
/etc/confd
/etc/pangolin-backup-tools
/etc/pangolin-certs-rotate
/etc/pangolin-auth-reencrypt
/etc/pangolin-encryption
/etc/pangolin-auth-encryption
/etc/pangolin-manager
/etc/pgbouncer
/etc/pangolin-security-utilities
/opt/pangolin-security-utilities
/etc/etcd
/etc/pangolin-pooler
/etc/postgres
/etc/motd
/opt/confd
/usr/local/bin/pgbouncer
/usr/local/pgsql
/usr/patroni
/usr/bin/etcd
/usr/sbin/etcd
/usr/sbin/haproxy
/usr/local/pgsql/
/usr/pgsql-se-06/
/usr/pgsql-se-old/
/opt/pangolin-common
/opt/omni
/pg_ssl
/pgarclogs
/pgbackup
/pgdata
/pgerrorlogs
/pgsql
/opt/pangolin-manager/
/opt/pangolin_cache
/opt/pangolin-certs-rotate
/etc/opt/omni/
/var/opt/omni/
/var/run/pangolin_reencrypt
/var/run/postgresql
/var/run//pangolin-pooler
/var/lib/etcd
/home/postgres/ansible_cache_dir
/tmp/PGSE
/tmp/major_update_scripts
/tmp/upgrade_protected_global.dump
/home/postgres
/etc/sudoers.d/10-kmadmin_pg
/etc/sudoers.d/10-postgres
/tmp/.crl.lock
/usr/local/sbin/dynmotd.sh
/usr/local/sbin/postgresql_clean_logs
/pg_backup_restore
/opt/pangolin_license
/opt/pangolin-diagnostic-tool
/opt/pangolin*
/var/messages-*
/usr/pgsql*
/usr/pangolin*
/opt/pangolin*
/pgarclogs/*
/pgdata/*
/pgdata
/pgbackup/*
/pgerrorlogs/*
/pgerrorlogs
/etc/systemd/system/*.rpm*
/etc/systemd/system/pangolin*.service
/usr/lib/systemd/system/*.rpm*
/usr/lib/systemd/system/pangolin*.service
Шаг 8. Удаление локальных репозиториев
Для удаления локальных репозиториев выполните команды в зависимости от типа ОС:
- SberLinux, РЕД ОС, CentOS
- Red Hat Enterprise Linux
- Astra Linux
- Альт СП
sudo dnf clean metadata
sudo dnf clean all
sudo dnf makecache
sudo rm -rf /etc/dnf.repos.d/pangolin_local_repo*
sudo dnf clean all
sudo dnf makecache
sudo yum clean metadata
sudo yum clean all
sudo yum makecache
sudo rm -rf /etc/yum.repos.d/pangolin_local_repo*
sudo yum clean all
sudo yum makecache
sudo apt update
sudo apt update
sudo rm -rf /var/cache/apt/archives/pangolin_local_repo*
sudo rm -rf /etc/apt/sources.list.d/pangolin_local_repo*
sudo apt update
sudo apt update
sudo apt-get update
sudo apt-repo update
sudo rm -rf /var/cache/apt/archives/pangolin_local_repo*
sudo rm -rf /etc/apt/sources.list.d/pangolin_local_repo*
sudo apt-get update
sudo apt-repo update
Автоматическое удаление
Для выполнения автоматического удаления выполните следующие действия:
-
Установите pip-пакеты в виртуальное окружение или напрямую в систему:
pip install cffi==1.15.0 cryptography==3.3.* Jinja2==3.0.3 jmespath==0.10.0 MarkupSafe==2.0.1 netaddr==0.7.19 packaging==21.3 pycparser==2.21 pyparsing==3.0.6 PyYAML==6.0 resolvelib==0.5.5 six==1.16.0 ansible==4.10.0
-
Подготовьте inventory-файл, заполните адреса узлов и данные для доступа (см. раздел «Автоматизированная установка при помощи запуска Ansible плейбука», блок «Заполнение inventory-файлов»).
-
Запустите playbook очистки. Пример команды запуска:
ansible-playbook playbook_clean.yaml -i inventories/standalone/hosts.ini '--ssh-extra-args=-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' --flush-cache -vvvv -u <user> --extra-vars 'local_distr_path=/home/postgres/test_clean/installer custom_config=templates/custom_config_sample.yml clean_vault=false'
Примечание:
Укажите верный путь до
hosts.ini
в зависимости от типа конфигурации СУБД. Если вhosts.ini
не указан пароль, то добавьте в скрипт следующий ключ-e 'ansible_ssh_pass=******'
.В параметр
custom_config
укажите путь до конфигурации.
Удаление компонентов
Удаление компонентов предусмотрено в общем сценарии удаления продукта СУБД Pangolin.