Удаление брокера из кластера#

Пререквизиты#

Хосты брокеров подлежащих удалению из кластера (в виде ip адреса либо hostname) перенести в файле inventory из группы с именем artemis в группу с именем hosts_to_remove:

[hosts_to_remove]
host_to_remove_1
host_to_remove_2

После данного действия необходимо запустить playbook artemis_scale_down.yml с указанием пути до файла inventory ручным способом либо с помощью Jenkins.

После завершения выполнения playbook artemis_scale_down.yml содержимое группы с именем hosts_to_remove в файле inventory следует удалить.

Ручной способ#

На сервере, с которого производилась установка, выполнить команду:

ansible-playbook -i inventories/<ID>/inventory artemis_scale_down.yml --ask-vault-pass

, где inventories//inventory — путь до файла inventory.

С помощью Jenkins#

Наименование задания Jenkins: artemis_custom.

Параметры запуска:

  • job_config_renew — параметр, использующийся для перенастройки задания Jenkins. Его необходимо включить, если был добавлен новый inventory или изменен файл jenkins_defaults.groovy. Меняет значения по умолчанию всех параметров. Сохраняет предыдущее состояние параметров inventories_repo, inventories_branch, inventories_path. Обновляет список тегов для всех плейбуков. По умолчанию не указывается;

  • inventory — выбрать inventory, для которого необходимо произвести удаление брокеров из кластера;

  • nexusUrl — данный параметр можно не заполнять, он не используется в playbook artemis_scale_down.yml;

  • playbook — запускаемый playbook: artemis_scale_down.yml;

  • emailTo — список адресов электронной почты для отправки технических писем с логами;

  • custom_vault_password — указывается, если нужен ручной ввод пароля для Ansible Vault;

  • jenkins_slave — выбор Slave Jenkins;

  • jdk_tool — указать Jenkins Tool с нужной версией JDK;

  • ansible_branch — ветка скриптов развертывания (в настройках Jenkins Job указать ${ansible_branch});

  • ansible_version — версия используемого ansible, например ansible29;

  • nexus_user_cred — ID credential типа username with password для выкачивания дистрибутива. При задании параметра secman_url - полный путь в HashiCorp Vault до имени пользователя и пароля, например {ID credential типа vault app role для получение секретов из HashiCorp Vault}|/<путь до>/nexus:{user},{password};

  • vault_cred — ID credential типа secret file со строкой для расшифровки паролей (ansible vault) (можно указывать несколько через запятую). При задании параметра secman_url - полный путь в HashiCorp Vault до пароля, например {ID credential }|/<путь до>/vault:{password_1},{ID credential _2}|/<путь до>/vault:{password_2} (в качестве пароля можно использовать не строку, а файл в base64 формате с ключом секрета, заканчивающимся на Base64, например myVaultBase64);

  • server_ssh_cred — ID credential типа ssh key для подключения к серверам. При задании параметра secman_url - полный путь в HashiCorp Vault, например {ID credential типа vault app role для получение секретов из HashiCorp Vault}|/<путь до>/ssh:{юзер},{ключ},{passphrase} (в качестве ключа можно использовать не строку, а файл в base64 формате с ключом секрета, заканчивающимся на Base64, например myPrivateKeyBase64);

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

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

  • inventories_repo — репозиторий с inventory (ssh://);

  • inventories_branch — ветка репозитория;

  • inventories_path — путь до inventories от корня репозитория.

После заполнения всех параметров необходимо собрать Jenkins job.

После отработки Jenkins job необходимо убрать удаленный хост из блоков artemis и hosts_to_remove в файле inventory для успешного выполнения других сценариев администрирования.