Я предпочитаю использовать централизованные Jenkins вместо CoSt Crontabs; Это гораздо более заметно, и вы просто не можете побить цену. Чтобы улучшить выживаемость, мне нравится сохранить несколько экземпляров, работающих параллельно и переправы от Haproxy, но это представило проблему, когда я должен был запланирован задания, которые могли только безопасно работать один раз.
Немного подталкивания Curl -i
показывает, что экземпляры Jenkins возвращают хешированную идентификационную стоимость в заголовке ответа, который мы можем использовать для конкретных экземпляров; Приведенный ниже кусок будет молча прервать любой скрипт оболочки, он добавляется — если этот скрипт вызывается из экземпляра «Горячий запасной» jenkins.
#!/bin/bash LIVE=$(https_proxy="" curl -I -s -u $USERNAME:$PASSWORD https://$JENKINS_URL:8080 | awk '/X-Instance-Identity/ { print $2 }') IAM=$(https_proxy="" curl -I -s -u $USERNAME:$PASSWORD http://127.0.0.1:8080 | awk '/X-Instance-Identity/ { print $2 }') [[ "$LIVE" == "$IAM" ]] || exit 0
Оригинал: «https://dev.to/lbonanomi/am-i-the-live-jenkins-host-42nf»