Перезапуск компонентов 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 — необходимый playbook replicator.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 развернут на нескольких хостах рекомендуется перезапускать компонент последовательно на каждом хосте во избежание даунтайма работы компонента.