É possível pedir ao Juju para iniciar outra máquina, adicionar instâncias de um serviço ou destruir instâncias? Por exemplo, fazendo algo semelhante ao juju gui: como o juju gui realiza a criação de máquinas, por exemplo? Gostaria de ter um serviço que monitorasse outros serviços e adicionasse instâncias para escalar, por exemplo.
Responder1
Existem algumas maneiras de isso ser possível.
Instalando e chamando binários Juju
A camada charms.reactive emhttps://github.com/galgalesh/juju-clientfaz isso. O processo básico é primeiro inicializar o ambiente e depois implantar um charm passando todos os arquivos de configuração, estado e segredos necessários para controlar o ambiente. O charme instala o cliente juju, reconstrói ~/.juju e agora pode controlar o ambiente por dentro.
Esta camada ainda é experimental. Se você encontrar algum problema, registre um relatório de bug no repositório do GitHub.
Usando o cliente Python Juju
Existe umCliente Python para gerenciar ambientes Juju. Este cliente chama a API Juju. Você poderia colocar isso em um feitiço.
Usando a API Go
Você pode encontrar a API go aqui:https://godoc.org/github.com/juju/juju/api
Usando ligações Perl
Se você gosta desse tipo de coisa:https://metacpan.org/release/Juju
Chamando a API diretamente
Para obter mais informações sobre isso, consulte esta pergunta:Existe uma API REST Juju?