Para Juju/Openstack, posso implantar o mesmo charme em vários nós?

Para Juju/Openstack, posso implantar o mesmo charme em vários nós?

Eu tenho um charme simples A, que consiste em um único gancho (instalação), que possui um script bash para instalar software/drivers de terceiros para hardware adicional que será instalado em alguns dos nós.

Eu gostaria que o administrador pudesse implantar o feitiço nesses nós específicos, mas Juju reclama quando eu lanço o mesmo feitiço para uma máquina diferente.

A alternativa é muito mais dolorosa - fazer SSH manualmente em cada nó e executar o script bash de instalação.

Então, existe uma maneira de instalar o mesmo encanto Juju em vários nós?

Responder1

Sim, a melhor maneira de fazer isso será tornar o seu charme um “subordinado” para os aplicativos executados no conjunto de máquinas para as quais ele é relevante.

Um charme subordinado é "acoplado" a um charme de aplicativo normal e é instalado em todos os lugares onde o charme 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 máquinas, 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 funciona nas máquinas onde seu código é relevante. Você transforma seu charme em um subordinado e depois o implanta associado à nova-computação. Agora seu código está em todos os lugares onde o nova-compute vai.

Existem complicações das quais você deve estar ciente. O aplicativo principal será instalado primeiro e DEPOIS o seu subordinado, portanto, se você precisar que seu código seja executado primeiro, será necessário fazer isso de forma diferente. Nesse caso, torne seu código um recurso principal do aplicativo e implante-o primeiro. Em seguida, coloque manualmente as outras unidades de charme nas mesmas máquinas usando "juju deploy foo --to X", onde X é uma máquina que já possui seu aplicativo. Esta última abordagem é complicada porque você precisa decidir para onde tudo vai e colocá-lo lá explicitamente.

informação relacionada