クラウドスクリプトおよびクラウドスクリプトテンプレート

  • リリースバージョン: Xanadu
  • 更新日 2026年03月13日
  • 所要時間:5分
  • クラウドプロビジョニングとガバナンス アプリケーションでは、スクリプトの実行はクラウドスクリプトとクラウドスクリプトテンプレートに分割されます。スクリプトは詳細計画、理想ブロック、OS プロファイルで使用し、ポリシースクリプトを使用して要求フォーム属性を設定します。ポリシースクリプトがユーザーデータをオーバーライドすることはできません。

    クラウドスクリプト

    クラウドスクリプトは、プラットフォーム機能を使用するシンプルな Java スクリプトです。サンプルクラウドスクリプトの例:
    function evaluateTemplate() {
    	// Template Resolver is a helper function which we will use to fetch a template and replace its parameters,
    	// var templateResolver=new TemplateResolver(); this comes inbuild
    	// templateAttributes below will passed from the user.
    	var listDir=templateResolver.getTemplate('Install',templateAttributes);
    	return listDir;
    }
    

    各クラウドスクリプトには、特定のパラメーターが含まれています。パラメーターは、アクセスする属性です。パラメーターには、名前、デフォルト値、およびオーバーライド値が含まれます。デフォルト値は、リソースブロックで使用される文字列リテラル、リソースブロックパラメーター、または複雑なスクリプト式にできます。

    デフォルトでは、クラウドスクリプトは templateResolver オブジェクトにアクセスできます。デフォルトでは、templateResolver オブジェクトには、1 番目のパラメーターがクラウドスクリプトテンプレート名である getTemplate メソッドが含まれます。templateAttributes は、クラウドスクリプトの一部として作成されたクラウドスクリプトパラメーターです。必要に応じて、 templateAttributes でカスタマイズを行うことができます。例として、DevName パラメーターの値を John から Emily に変更する必要があるかどうかを、次のコードスニペットで確認してください。

    function evaluateTemplate() {
    	// Template Resolver is a helper function which we will use to fetch a template and replace its parameters,
    	// var templateResolver=new TemplateResolver(); this comes inbuild
    	// templateAttributes below will passed from the user.
    	templateAttributes['DevName'] = 'Emily';
    	var customNodeName;
    	var now_GR = new GlideRecord('some_custom_table_to_query');
    	gr.addQuery('some_parameter','some_value');
    	gr.query();
    	if(gr.next())
    	 	customNodeName=gr.getValue('some_custom_node_name');
    		
    	templateAttributes['NodeName'] = customNodeName;
    	var listDir=templateResolver.getTemplate('Install',templateAttributes);
    	return listDir;
    }
    evaluateTemplate();
    

    クラウドスクリプトテンプレート

    クラウドスクリプトテンプレートは、実行のターゲットである仮想マシンに渡される実際の実行可能ファイルです。クラウドテンプレートは、実行コンテキストに応じて任意の種類 (シェル/PowerShell/CloudInit) にできます。先にクラウドテンプレートを作成してから、それをクラウドスクリプトに関連付ける必要があります。

    CloudInit としてのクラウドスクリプト

    クラウドプロバイダーは、仮想マシンのブート時にスクリプトを実行する方法を提供します。クラウド管理 アプリケーションでは、さまざまなレベルで cloudinit スクリプトを指定できます。
    • イメージレベル:クラウドスクリプトを作成するときに、このスクリプトの実行対象のイメージを指定できます。この特定のイメージを含む OS プロファイルが選択されると、このイメージに対するデフォルトのクラウドスクリプトが実行されます。次の例では、Apache クラウドスクリプトが特定のイメージに関連付けられます。

      イメージに関連付けられた Apache クラウドスクリプト

    • OS プロファイルレベル:特定のクラウドプロバイダに対して、また特定の AMI/イメージに対して、cloudinit を実行できます。また、基盤となるイメージに関係なく、汎用的な cloudinit を OS プロファイルに関連付けることもできます。次の例では、複数のイメージが OS プロファイルに関連付けられます。[クラウドスクリプト OS プロファイルマッピング] タブで、任意のクラウドスクリプトを OS プロファイルにマップできます。OS プロファイルを使用するクラウドスクリプトのマッピングは、イメージレベルのクラウドスクリプトの関連付けよりも優先されます。

      OS プロファイルでのクラウドスクリプトのデフォルト

      この例では、Apache クラウドスクリプトが Centos OS プロファイルにマップされています。必要に応じて、[OS プロファイルマッピングの上書き] セクションでスクリプトパラメーターをオーバーライドできます。
    • リソースブロック:クラウドスクリプトを OS プロファイルにマッピングする際に、詳細計画で使用される特定のリソースブロックで、特定のリソースエイリアスに対してクラウドスクリプトを実行するかどうかを選択できます。「OS プロファイルの作成」を参照してください。

    Postinit としてのクラウドスクリプト

    クラウドスクリプトは、リソースブロック内の Postinit スクリプトとして使用できます。プロビジョニングする仮想マシンを持つリソースブロックを作成したら、ExecuteScript 操作を追加できます。ExecuteScript 操作でスクリプトパラメーター (クラウドスクリプトのプール) を受け取り、実行する任意のスクリプトを選択できます。スクリプトパラメーターをオーバーライドするには、ExecuteScript 操作の ScriptParameters 属性を使用します。スクリプトパラメーターとそのオーバーライド値の JSON マップを指定できます。クラウド管理 でサポートされているすべての式は、ScriptParamters 属性内で機能します。