我有一个简单的 charm A,它由一个钩子(安装)组成,它有一个 bash 脚本,用于安装将安装在某些节点上的附加硬件的第三方软件/驱动程序。
我希望管理员能够将 charm 部署到那些特定的节点,但是当我将同一个 charm 部署到另一台机器上时,Juju 会发出抱怨。
另一种选择更加痛苦——手动通过 SSH 进入每个节点并运行安装 bash 脚本。
那么有没有办法在多个节点上安装相同的 Juju charm?
答案1
是的,最好的办法就是让你的魅力成为与其相关的机器集上运行的应用程序的“下属”。
从属 charm 与普通应用 charm“耦合”,它会安装在安装“普通”应用 charm 的任何地方。通常,它用于将应用连接到某种辅助系统,例如监控系统。一旦建立了从属关系,每当主应用扩展到更多机器时,从属 charm 也会随之扩展。
因此,在您的示例中,您可能有一个主应用程序,如 OpenStack 中的虚拟机管理程序控制器“nova-compute”,它运行在与您的代码相关的机器上。您将 Charm 设置为从属,然后将其与 nova-compute 关联部署。现在,您的代码随处可见 nova-compute。
需要注意一些复杂情况。主应用程序将首先安装,然后是下属应用程序,因此如果您需要先运行代码,则需要以不同的方式执行。在这种情况下,请先将代码设为主应用程序魅力并部署它。然后使用“juju deploy foo --to X”将其他魅力单元手动放置在相同的机器上,其中 X 是已经安装了您的应用程序的机器。后一种方法比较麻烦,因为您需要决定所有内容的位置,并将其明确地放在那里。