Удаление брокера из кластера#
Пререквизиты#
Хосты брокеров подлежащих удалению из кластера (в виде 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/
С помощью 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 для успешного выполнения других сценариев администрирования.