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

0

Eu tenho um charme simples A, que consiste em um único gancho (instalação), que tem 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 charme para esses nós específicos, mas Juju reclama quando eu coloco o mesmo charme em uma máquina diferente.

A alternativa é muito mais dolorosa - para manualmente o SSH 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?

    
por Imran Khakoo 02.09.2016 / 12:33

1 resposta

2

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.

    
por Mark Shuttleworth 04.09.2016 / 13:43