Перейти к основному содержимому

Удаление

Ручное удаление

Чтобы полностью очистить кластер от всех компонентов продукта СУБД Pangolin, выполните следующие шаги на каждом узле:

Обозначения

Далее в разделе используются следующие переменные:

  • <service_name> - имя сервиса;
  • <package_name> - наименование rpm/deb-пакета;
  • <path_to_file_or_directory> - путь до файла или папки;
  • <user> - имя пользователя.

Шаг 1. Остановка сервисов

  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
  2. Перезагрузите сервисы командой:

    sudo systemctl reload 

Шаг 2. Удаление ссылок на исполняемые файлы

Для удаления ссылок выполните команды:

/usr/pangolin/bin/pangolin-linker remove
/usr/pangolin-dbms-client/bin/pangolin-linker remove

Шаг 3. Удаление пользователей и групп

  1. Остановите задания планировщика для пользователей kmadmin_pg, postgres, etcd:

    sudo crontab -r -u kmadmin_pg
    sudo crontab -r -u postgres
    sudo crontab -r -u etcd
  2. Остановите все процессы для пользователей kmadmin_pg, postgres, etcd:

    sudo pkill -9 -u kmadmin_pg
    sudo pkill -9 -u postgres
    sudo pkill -9 -u etcd
  3. Отключите логин для пользователей kmadmin_pg, postgres:

    loginctl disable-linger kmadmin_pg
    loginctl disable-linger postgres
  4. Удалите пользователей kmadmin_pg, postgres, etcd:

    sudo deluser --remove-home kmadmin_pg
    sudo deluser --remove-home postgres
    sudo deluser --remove-home etcd
  5. Удалите группы kmadmin_pg, postgres, etcd, pangolin_users:

    sudo groupdel kmadmin_pg
    sudo groupdel postgres
    sudo groupdel etcdsudo groupdel
    sudo groupdel pangolin_users

Шаг 4. Удаление пакетов

  1. Удалите пакеты стандартных версий:

    sudo dnf 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
  2. Удалите многоверсионные пакеты:

    rpm -ev --erase --allmatches --noscripts --nodeps $(rpm -qa <package_name>)

    Список пакетов, которые необходимо удалить:

    postgresql-sber-edition
    platform-v-pangolin-dbms
    pangolin-dbms*
    pangolin-manager
    pangolin-pooler
    ansible-venv
    pangolin-timescaledb*
    pangolin-backup-tools*

    Общий список компонентов 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. Удаление локальных репозиториев

Для удаления локальных репозиториев выполните команды в зависимости от типа ОС:

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

Автоматическое удаление

Для выполнения автоматического удаления выполните следующие действия:

  1. Установите 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
  2. Подготовьте inventory-файл, заполните адреса узлов и данные для доступа (см. раздел «Автоматизированная установка при помощи запуска Ansible плейбука», блок «Заполнение inventory-файлов»).

  3. Запустите 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.