¿Es posible pedirle a Juju que inicie otra máquina, agregue instancias de un servicio o destruya instancias? Por ejemplo, haciendo algo similar al juju gui: ¿cómo realiza juju gui la creación de máquinas, por ejemplo? Necesitaría tener un servicio que monitoree otros servicios y agregue instancias para escalar, por ejemplo.
Respuesta1
Hay algunas maneras en que esto es posible.
Instalar y llamar a binarios de Juju
La capa charms.reactive enhttps://github.com/galgalesh/juju-clientHaz esto. El proceso básico es primero iniciar el entorno y luego implementar un acceso que pase todos los archivos de configuración, estado y secretos necesarios para controlar el entorno. El charm instala el cliente juju, reconstruye ~/.juju y ahora puede controlar el entorno desde dentro.
Esta capa aún es experimental. Si encuentra algún problema, presente un informe de error en el repositorio de github.
Usando el cliente Python Juju
Hay unCliente Python para gestionar entornos Juju. Este cliente llama a la API de Juju. Podrías poner esto en un Charm.
Usando la API Go
Puede encontrar la API de go aquí:https://godoc.org/github.com/juju/juju/api
Usando enlaces Perl
Si te gustan ese tipo de cosas:https://metacpan.org/release/Juju
Llamando a la API directamente
Para obtener más información al respecto, consulte esta pregunta:¿Existe una API REST de Juju?