0

私は、私が働いている会社内で展開サイクルを自動化することになっている卒業プロジェクトを行っています。彼らが使用したいツールは MicrosoftRelease Managementです。

しかし、Release Management の機能を詳しく調べてみると、答えよりも多くの疑問が生じます。

いくつかの背景情報。

会社が持っているすべての環境は、データ センターに移動され、仮想マシン (VMware) で実行される予定です。ツールvCloudディレクターを使用して VM を作成および管理できます。

今のところ物事を単純にするために、4 つの環境があります: 1 つは開発、2 つはテスト、1 つは承認です。4 つの環境は常に稼働しているので、Release Management はこれらのサーバーに接続しても問題なく、リリース テンプレートを問題なく作成できると思います。

ここで、トリッキーな部分が来ます。開発環境への展開が行われると同時に、新しい VM を作成し (powershell スクリプト、開発の何らかのコピーを使用)、この環境への同じ展開を行います。このスクリプトは、サードパーティ ツールまたはホスティング プロバイダーが提供する REST API と通信する必要があります。リリース テンプレートのサーバー コンポーネント内でスクリプトを実行する必要があることはわかっています。だから私はこれに対する2つの既知の回避策を知っています。開発者にデプロイするときにリリース テンプレートでこのスクリプトを実行するか、専用サーバーを使用してすべてのスクリプトを実行し、新しい VM を作成できます。

問題は、リリース管理に新しいサーバーがあることを手動で通知せずに、この新しい環境にデプロイするにはどうすればよいですか? このプロセスは完全に自動化する必要があります。

4

1 に答える 1

0

結論: 現在、Release Management には、新しい VM をプロビジョニングしてデプロイするネイティブで簡単な方法がありません。私は自分でこの制限に達しました。デプロイヤを使用してそれを行うことはできません。ただし、回避することはできます。

私が取ったアプローチは、Desired State Configuration を使用し、「スプリングボード」サーバー (rm-dsc-launcher) を、私が作成したカスタム PowerShell スクリプトと組み合わせて使用​​することです。私の場合は Azure でした。あなたの場合、それは VMWare です。関係なく:

  1. Desired State Configuration スクリプトと、環境を構成してソフトウェアをインストールするために必要なカスタム DSC リソースを作成しました。これはソース管理にチェックインされ、ビルド ドロップにプッシュされるため、展開時に使用できます。
  2. 新しい VM を作成するために必要なすべてのパラメーターを使用する「Provision Environment」というカスタム ツール/アクションを作成しました。
  3. 「Execute DSC script」というカスタム ツールを作成し、これをアプリケーションのバイナリのコンポーネント内で使用しました。パラメーターの 1 つは、デプロイ スクリプトへのパスです。$(PackageLocation)値をパラメータとしてコンポーネントに渡すことで、バイナリ/スクリプトへのパスにアクセスできます。

これは世界で最も美しいソリューションではありませんが、機能的です。

于 2014-12-12T13:36:04.117 に答える