Удаление#

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

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

Остановка сервисов#

  1. Остановите сервисы командой:

    sudo systemctl stop <имя сервиса>
    

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

    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 
    

Удаление ссылок на исполняемые файлы#

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

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

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

  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
    

Удаление пакетов#

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

    # команда для удаления в RPM-based системах
    sudo yum remove <имя пакета> -y
     
    # команда для удаления в DNF-based системах
    sudo dnf remove <имя пакета> -y
     
    # команда для удаления в DEB-based системах
    sudo apt --purge autoremove <имя пакета> -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-plpgsql-check
    pangolin-pgcopydb
    pangolin-auth-reencrypt
    pangolin-security-utilities
    pangolin-full
    
  2. Удалите многоверсионные пакеты:

    # Для RPM-based систем:
     
    rpm -ev --erase --allmatches --noscripts --nodeps $(rpm -qa <имя пакета>)
     
    # Для DEB-based систем:
     
    dpkg -l | grep '<имя пакета>' | awk '{print $2}' | xargs dpkg -P
    

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

     
    # Список RPM пакетов:
     
    postgresql-sber-edition
    platform-v-pangolin-dbms
    pangolin-dbms*
    pangolin-manager
    pangolin-pooler
    ansible-venv
    pangolin-timescaledb*
    pangolin-backup-tools*
     
    # Список DEB пакетов:
     
    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
    

Удаление записей sudoers_file#

Удалите записи в /etc/sudoers:

sudo rm -rf /etc/sudoers.d/10-kmadmin_pg
sudo rm -rf /etc/sudoers.d/10-postgres

Удаление сообщения motd#

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

sudo sed -i '/\/usr\/local\/sbin\/dynmotd.sh/d' /etc/profile
sudo sed -i '/# Dynamic motd/d' /etc/profile

Удаление рабочих файлов и папок#

Для удаления рабочих файлов и папок выполните команду:

sudo rm -rf <путь до файла или папки>

Примечание:

Параметр, указанный внутри «», можно найти в custom_config_initial.yml.

Подробнее о custom_config_initial.yml читайте в документе «Руководство по установке», раздел «Автоматизированная установка Pangolin».

Список файлов и папок, которые требуется удалить:

#Пути к файлам и папкам для удаления

/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

Удаление локальных репозиториев#

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

# Команды для RPM-based систем:

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

# Команды для DEB-based систем:

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

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

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

  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-файл, заполните адреса узлов и данные для доступа (см. документ «Руководство по установке», раздел «Заполнение inventory-файлов»).

  3. Запустите playbook очистки:

    ansible-playbook playbook_clean.yaml i inventories/cluster/hosts.ini '-ssh-extra-args=-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' -e 'ansible_ssh_pass=******' --flush-cache -vvvv -u pprb_dev --extra-vars 'local_distr_path=/home/postgres/test_clean/installer custom_config=scripts/custom_dev.yml clean_vault=false'