Então, se eu entendi corretamente, você deseja instalar um aplicativo que precisa de um ip do servidor para instalar corretamente? O que você basicamente tem é um cliente que é "inútil" sem relação com um servidor.
Juju é baseado em eventos. Quando um evento é acionado, Juju enfileira todos os outros eventos para esse charme. O próximo até é demitido do momento em que o anterior é feito. Os eventos relation só serão disparados depois que o evento install for concluído. Tecnicamente falando, a relação entre dois encantos só pode ser adicionada depois que o gancho install de um encanto terminar.
Se você tem um charme que não pode ser instalado a menos que tenha uma relação (a menos que ele saiba o ip do "servidor"), então o install hook não faz nada. A instalação real deve acontecer no gancho relation-joined .
Então, implemente isso:
-
installhook basicamente não faz nada [1] -
relation-joinedhook pega o ip usandorelation-get private-address -
relation-joinedhook faz a instalação e configuração reais do cliente
[1] ou o hook de instalação pode fazer a instalação até o ponto em que o ip é necessário, e depois parar