Перезапуск компонентов SEDR#
Перезапуск компонентов SEDR выполняется пользователем с логической ролью «Администратор».
Ручной способ#
На сервере, с которого производилась установка, выполните команду:
ansible-playbook -i inventories/<ID>/inventory replicator.yml --ask-vault-pass -t restart -l <host>
где:
ID— имя созданного inventory;host— дополнительный параметр для указания конкретных hosts, если требуется перезапуск на конкретных hosts.
При помощи Jenkins#
Для перезапуска Worker с помощью Jenkins используйте задание SYN_custom_replicator с выбором:
playbook
replicator.yml;тега
restart(для перезапуска всех Workers на выбранном контуре).
Для перезапуска конкретного Worker помимо указанных тегов следует дополнительно включить тег run_only и в поле usedWorker указать те Workers (из выбранного inventory), которые необходимо перезапустить.
Настраиваемые параметры:
job_config_renew— параметр, использующийся для перенастройки задания Jenkins. Данный параметр используется, если был добавлен новый inventory. Меняет значения по умолчанию всех параметров. Сохраняет предыдущее состояние параметров inventories_repo, inventories_branch, inventories_path. Обновляет список тегов для всех playbooks. По умолчанию не указывается;inventory— кластер, для которого необходимо обновить библиотеки и конфигурации;nexusUrl— полный путь до дистрибутива (можно указать несколько через запятую);emailto— список адресов электронной почты, на которые придет письмо с результатом выполнения задания Jenkins;playbook— необходимый playbookreplicator.yml;tags— используемый тег:restart;usedWorker— используемые Workers;usedConnector— используемые коннекторы;select_all_hosts— запуск задания Jenkins на всех hosts из указанного inventory;only_on_host— необходимые hosts (отмечаются галочками);custom_vault_password— указывается, если нужен ручной ввод пароля для Ansible Vault;jenkins_slave— Slave Jenkins;jdk_tool— указание Jenkins Tool с нужной версией JDK;ansible_branch— ветка скриптов развертывания;ansible_version— версия используемого ansible;nexus_user_cred— ID credential типа username with password для выкачивания дистрибутива компонента из Nexus. Чтобы получить username и password для Nexus из HashiCorp Vault, необходимо заполнить параметр secman_url в формате:JenkinsCredID |SecManPath:SecManKeys|SecManParams, где:JenkinsСredID — Jenkins Vault App Role Credential ID c реквизитами для подключения к HashiCorp Vault;
SecManPath — путь к секретам в HashiCorp Vault;
SecManKeys — имена полей для username и password в HashiCorp Vault (через запятую);
SecManParams — параметры для подключения к HashiCorp Vault (через точку с запятой). Если данные параметры по умолчанию, то пропускаются вместе с «|». Примеры:
SecManAppRoleCred|/CI01994970_CI02618129_ES/A/DEV/APP/JEN/KV/nexus:username,password
SecManAppRoleCred|/CI01994970_CI02618129_ES/A/DEV/APP/JEN/KV/nexus:username,password|engineVersion:2
vault_cred— ID credential типа secret file со строкой для расшифровки паролей ansible vault (можно указывать несколько через запятую). Чтобы получить ansible vault password из HashiCorp Vault, необходимо заполнить параметр secman_url в формате:JenkinsСredID|SecManPath:SecManKey|SecManParams, где:JenkinsСredID — Jenkins Vault App Role Credential ID с реквизитами для подключения к HashiCorp Vault;
SecManPath — путь к секрету в HashiCorp Vault;
SecManKey — имя поля для ansible vault password в HashiCorp Vault;
SecManParams — параметры для подключения к HashiCorp Vault (через точку с запятой). Если данные параметры по умолчанию, то пропускаются вместе с «|» (в качестве пароля можно использовать не строку, а файл в base64 формате и секрет в HashiCorp Vault с именем, оканчивающимся на «Base640», например: myVaultBase64). Примеры:
SecManAppRoleCred|/CI01994970_CI02618129_ES/A/DEV/APP/JEN/KV/vault:ansible_vault_password
SecManAppRoleCred|/CI01994970_CI02618129_ES/A/DEV/APP/JEN/KV/vault:ansible_vault_password|engineVersion:2
SecManAppRoleCred1|/CI01994970_CI02618129_ES/A/DEV/APP/JEN/KV/vault:ansible_vault_password1,SecManAppRoleCred2|/CI01994970_CI02618129_ES/A/DEV/APP/JEN/KV/vault:ansible_vault_password2
SecManAppRoleCred1|/CI01994970_CI02618129_ES/A/DEV/APP/JEN/KV/vault:ansible_vault_password1|engineVersion:2,SecManAppRoleCred2|/CI01994970_CI02618129_ES/A/DEV/APP/JEN/KV/vault:ansible_vault_password2|engineVersion:2
server_ssh_cred— ID credential типа ssh key с 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 — имена полей для ssh_username, ssh_key, ssh_key_passphrase в HashiCorp Vault (через запятую). Ssh_key_passphrase не указывается, если у ssh ключа нет пароля;
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;ssl_verify— проверка, являются ли сертификаты HashiCorp Vault/Nexus доверенными;second_hand_approve— подтверждение запуска другим администратором (контроль «второй рукой»);inventories_repo— репозиторий с inventory (ssh://);inventories_branch— ветка репозитория;inventories_path— путь до inventories от корня репозитория.
Если не выбран ни один из параметров only_on_host, select_all_hosts выполнение задания Jenkins прервется с ошибкой «Не выбраны hosts».
Если кластер SEDR развернут на нескольких хостах рекомендуется перезапускать компонент последовательно на каждом хосте во избежание даунтайма работы компонента.