Удаление EVTD#

С предустановкой Platform V Corax#

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

  1. Остановите работу кластера. На каждом узле Platform V Corax и Zookeeper в корневой директории Corax выполните команды:

bin/kafka-server-stop.sh
bin/zookeeper-server-stop.sh

Для удаления Platform V Corax и Zookeeper выполните:

sudo systemctl stop {KafkaServiceName}
sudo systemctl stop {ZookeeperServiceName}
  1. Удалите данные Platform V Corax командами:

sudo rm -rf {KafkaRootDir}
sudo rm -rf {KafkaLogDir}
sudo rm -rf {ZookeeperLogDir}

, где:

KafkaRootDir — корневая директория Platform V Corax; KafkaLogDir — значение параметра log.dirs из файла server.properties; ZookeeperLogDir — значение параметра dataDir из файла zookeeper.properties. ZookeeperLogDir — значение параметра dataDir`из файла zookeeper.properties.

Для удаления Platform V Corax и Zookeeper выполните:

sudo systemctl disable {KafkaServiceName}
sudo systemctl disable {ZookeeperServiceName}
sudo rm -f /etc/systemd/system/{KafkaServiceName}
sudo rm -f /etc/systemd/system/{ZookeeperServiceName}

Подробнее об удалении брокеров Platform V Corax в документации на продукт в разделе «Руководство по установке».

С помощью ansible#

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

ansible-playbook -i inventories/<ID>/inventory zk_and_kafka.yml --ask-vault-pass -t uninstall

, где ID — имя недавно созданного inventory.

Удаление всех компонентов будет производиться со всех серверов из inventory.

С помощью Jenkins#

Для удаления необходимо запустить Jenkins job SYN_custom_kafka с выбором playbook zk_and_kafka.yml c тегом uninstall. Отдельного удаления хранилища секретов и их содержимого не требуется, так как будет удалена вся директория установки/логов/данных.

Настраиваемые параметры SYN_custom_kafka:

  • job_config_renew — обновление Jenkins Job. При установке приложения должен быть выключен (false). Для обновления текущих параметров и сохранения значений по умолчанию должен быть включен (true);

  • inventory — имя inventory для установки;

  • nexusUrl — ссылка на переданный дистрибутив ./EVTD-kafka-[version]-distrib.zip;

  • nexusUrlKafka — полный путь до дистрибутива KFKA или дистрибутива Apache Kafka;

  • playbook— необходимый сценарий установки;

  • tags — список тегов для playbook zk_and_kafka.yml:

    • backup — создание backup;

    • backup_remove — удаление backup;

    • backup_restore — восстановление из backup;

    • distribute — распаковка переданного дистрибутива EVTD;

    • ini_change — используется для изменения настроек в конфигурации Kafka и Zookeper (параметры kafka.iniChange и zookeper.iniChange соответственно в файле vars.yml);

    • install — запуск блока установки;

    • start — запуск сервиса;

    • status — статус сервиса;

    • restart – перезапуск сервиса;

    • stop — остановка сервиса;

    • unistall — удаление сервиса;

    • update_audit — обновление настроек аудита.

  • select_all_hosts – выполнение playbook на всех серверах из выбранного inventory;

  • only_on_host – выполнение playbook на выбранных серверах;

  • emailto — список адресов электронной почты для отправки результатов (письмо исполнителю упадет автоматически, здесь можно указать дополнительные адреса);

  • custom_vault_password – ручной ввод пароля для Ansible Vault;

  • jenkins_slave — выбор Jenkins Slave;

  • ansible_branch — ветка скриптов развертывания;

  • ansible_version — указание Jenkins Tool с необходимой версией Ansible. Конкретное значение необходимо получить у администратора Jenkins;

  • nexus_user_cred — Jenkins Username with Password credential ID для выкачивания дистрибутива. При задании secman_url – полный путь в HashiCorp Vault до имени пользователя и пароля. Например: {Jenkins *Vault App Role credential* ID для получения секретов из HashiCorp Vault}|path/to/nexus:{user},{password};

  • vault_cred — Jenkins secret file credential ID со строкой для расшифровки паролей (ansible vault). При задании secman_url – полный путь в HashiCorp Vault до пароля. Например: {Jenkins *Vault App Role credential* ID_1}|/path/to/vault:{password_1}, {Jenkins *Vault App Role credential* ID_2}|/path/to/vault:{password_2} В качестве пароля можно использовать не строку, а файл в base64 формате с ключом секрета, заканчивающимся на Base64. Например, myVaultBase64;

  • server_ssh_cred — Jenkins ssh key Credential ID с ssh ключом для подключения к конечным серверам. Чтобы получить ssh_username, ssh_key, ssh_key_passsphrase для подключения к серверам из HashiCorp Vault, необходимо заполнить параметр secman_url в формате: JenkinsCredID|SecManPath:SecManKeys|SecManParams, где:

    • JenkinsСredID — Jenkins Vault App Role Credential ID, содержащий реквизиты для подключения к HashiCorp Vault;

    • SecManPath — путь к секретам в HashiCorp Vault;

    • SecManKeys — имена полей для JKS администратора в HashiCorp Vault и пароля от него через запятую.

      • Окончание имени поля для JKS администратора должно быть Base64;

      • JKS администратора в HashiCorp Vault должен храниться в KV хранилище в Base64 формате;

      • Поле пароля для JKS администратора опционально, в случае его отсутствия пароль будет запрошен в интерактивном режиме.

    • SecManParams — параметры подключения к HashiCorp Vault (через точку с запятой). Если данные параметры по умолчанию, то пропускаются вместе с «|» (в качестве ключа можно использовать не строку, а файл в base64 формате и секрет в HashiCorp Vault с именем, оканчивающимся на «Base64», например: myPrivateKeyBase64). Примеры:

      • SecManAppRoleCred|/CI01994970_CI02618129_ES/A/DEV/APP/JEN/KV/vault:ssh_username,ssh_key

      • SecManAppRoleCred|/CI01994970_CI02618129_ES/A/DEV/APP/JEN/KV/vault:ssh_username,ssh_key,ssh_key_passphrase

      • SecManAppRoleCred|/CI01994970_CI02618129_ES/A/DEV/APP/JEN/KV/vault:ssh_username,ssh_key,ssh_key_passphrase|engineVersion:2.

  • secman_url — URL для подключения к HashiCorp Vault;

  • jdk_tool — наименование Jenkins Tool с необходимой версией JDK. Конкретное значение необходимо получить у администратора Jenkins;

  • ssl_verify — проверка, являются ли сертификаты HashiCorp Vault/Nexus доверенными;

  • inventories_repo — репозиторий с inventory. Данный пункт применим, если inventory были созданы в другом репозитории, отличным от того, где лежат скрипты;

  • inventories_branch — ветка репозитория, где находятся inventory. Данный пункт применим, если inventory были созданы в другом репозитории, отличным от того, где лежат скрипты;

  • inventories_path — путь до inventories от корня репозитория (значение Ansible/inventories).

Если не выбран ни один из параметров only_on_host, select_all_hosts, выполнение Jenkins job прервется с ошибкой Не выбраны сервера.