Juju/Openstack の場合、同じチャームを複数のノードにデプロイできますか?

Juju/Openstack の場合、同じチャームを複数のノードにデプロイできますか?

単純なチャーム A があります。これは単一のフック (インストール) で構成されており、一部のノードにインストールされる追加のハードウェア用のサードパーティ製ソフトウェア/ドライバーをインストールするための bash スクリプトが含まれています。

管理者が特定のノードにチャームを展開できるようにしたいのですが、同じチャームを別のマシンに展開すると、Juju からエラーが発生します。

代替案は、各ノードに手動で SSH 接続し、インストール bash スクリプトを実行するという、はるかに面倒な方法です。

では、同じ Juju チャームを複数のノードにインストールする方法はありますか?

答え1

はい、これを行う最善の方法は、チャームを、それが関連する一連のマシン上で実行されているアプリケーションの「従属」にすることです。

従属チャームは通常のアプリケーション チャームに「結合」されており、その「通常の」アプリケーション チャームがインストールされているすべての場所にインストールされます。通常、これは監視システムなどの補助システムにアプリを接続するために使用されます。従属関係を確立すると、メイン アプリケーションがより多くのマシンに拡張されるたびに、従属チャームも一緒に拡張されます。

したがって、あなたの例では、OpenStack のハイパーバイザー コントローラー「nova-compute」のようなメイン アプリケーションがあり、コードが関連するマシンに配置されることになります。チャームを従属させ、nova-compute に関連付けてデプロイします。これで、あなたのコードは nova-compute が移動するあらゆる場所に存在します。

注意すべき複雑な点があります。メイン アプリケーションが最初にインストールされ、その後に従属アプリケーションがインストールされるため、コードを最初に実行する必要がある場合は、別の方法で行う必要があります。その場合は、コードをプライマリ アプリケーション チャームにして、最初に展開します。次に、"juju deploy foo --to X" を使用して、他のチャーム ユニットを同じマシンに手動で配置します。ここで、X は、既にアプリケーションがインストールされているマシンです。この後者のアプローチは、すべての配置場所を決定し、明示的に配置する必要があるため、より面倒です。

関連情報