Sim, a melhor maneira de fazer isso é tornar o seu charme "subordinado" aos aplicativos em execução no conjunto de máquinas para o qual ele é relevante.
Um encanto subordinado é "acoplado" a um encanto de aplicativo normal e é instalado em todos os lugares em que o encanto de aplicativo "normal" está instalado. Normalmente, é usado para conectar o aplicativo a algum tipo de sistema auxiliar, como um sistema de monitoramento. Depois de estabelecer o relacionamento subordinado, sempre que o aplicativo principal for ampliado para mais computadores, o subordinado também aparecerá.
Portanto, no seu exemplo, você provavelmente tem um aplicativo principal, como o controlador de hipervisor "nova-compute" no OpenStack, que entra nas máquinas onde seu código é relevante. Você faz do seu charme um subordinado e depois o implanta associado a nova-compute. Agora seu código está em todos os lugares que a nova-computa vai.
Existem complicações para estar ciente. O aplicativo principal será instalado primeiro e, ENTÃO, seu subordinado, portanto, se você precisar que seu código seja executado primeiro, será necessário fazer isso de maneira diferente. Nesse caso, torne seu código um encanto de aplicativo principal e implante-o primeiro. Em seguida, coloque manualmente as outras unidades de charme nas mesmas máquinas usando "juju deploy foo - para X", onde X é uma máquina que já tem seu aplicativo. Esta última abordagem é muito complicada, porque você precisa decidir aonde tudo vai e colocá-la lá explicitamente.