Para Juju/Openstack, ¿puedo implementar el mismo acceso a varios nodos?

Para Juju/Openstack, ¿puedo implementar el mismo acceso a varios nodos?

Tengo un acceso simple A, que consta de un solo gancho (instalación), que tiene un script bash para instalar software/controladores de terceros para hardware adicional que se instalará en algunos de los nodos.

Me gustaría que el administrador pudiera implementar el amuleto en esos nodos específicos, pero Juju se queja cuando uso el mismo amuleto en una máquina diferente.

La alternativa es mucho más dolorosa: utilizar SSH manualmente en cada nodo y ejecutar el script bash de instalación.

Entonces, ¿hay alguna forma de instalar el mismo amuleto Juju en varios nodos?

Respuesta1

Sí, la mejor manera de hacerlo será convertir su charm en un "subordinado" de las aplicaciones que se ejecutan en el conjunto de máquinas para las que es relevante.

Un acceso subordinado está "acoplado" a un acceso de aplicación normal y se instala en todos los lugares donde se instala el acceso de aplicación "normal". Por lo general, se utiliza para conectar la aplicación a algún tipo de sistema auxiliar, como un sistema de monitoreo. Una vez que haya establecido la relación subordinada, cada vez que la aplicación principal se amplíe a más máquinas, la subordinada también aparecerá.

Entonces, en su ejemplo, probablemente tenga una aplicación principal, como el controlador de hipervisor "nova-compute" en OpenStack, que va a las máquinas donde su código es relevante. Haces que tu encanto sea un subordinado y luego lo implementas asociado con nova-compute. Ahora su código está en todos lados donde vaya nova-compute.

Hay complicaciones a tener en cuenta. La aplicación principal se instalará primero y luego la subordinada, por lo que si necesita que su código se ejecute primero, deberá hacerlo de manera diferente. En ese caso, convierta su código en un acceso de aplicación principal e impleméntelo primero. Luego, coloque manualmente las otras unidades de encanto en las mismas máquinas usando "juju implementar foo --to X", donde X es una máquina que ya tiene su aplicación. Este último enfoque es más complicado porque es necesario decidir dónde va todo y ponerlo ahí explícitamente.

información relacionada