Estamos usando o systemd para executar vários serviços em produção. (Dã...)
Estamos construindo um site de "recuperação de desastres" correspondente, que terá o mesmo aplicativo instalado -- com as mesmas unidades de sistema para ativar seus vários componentes em caso de desastre .
Este ambiente de DR é "quente", pronto para assumir o controle em pouco tempo (quanto mais curto, melhor) - tornando-se assim a própria produção. Então, quando o "desastre" for resolvido, o outro ambiente se tornará o DR.
Minha pergunta é: como manter esses serviços do systemd prontos para iniciar, mas não iniciando até que uma determinada condição se torne verdadeira?
Para concluir que um determinado site é atualmente o primário (produção), um comando ( amIthePrimary
) precisa ser executado e sair com um código de saída 0. A verificação é fácil e rápida - e pode ser realizada uma vez por minuto. Mas, porque requer a execução de um comando, não há Condition
para isso fornecido pelo systemd .
Eu coloco esse comando em cada unidade ExecPre
, ou isso se tornará um erro barulhento, incomodando desnecessariamente os administradores? Coloco-o em uma unidade própria, com todos os outros serviços Require
?
Separadamente, uma vez que a condição é verdadeira -- e os serviços são iniciados -- como continuo verificando, para que todos sejam desligados, caso se torne falso novamente?