クラウドスクリプトおよびクラウドスクリプトテンプレート
クラウドプロビジョニングとガバナンス アプリケーションでは、スクリプトの実行はクラウドスクリプトとクラウドスクリプトテンプレートに分割されます。スクリプトは詳細計画、理想ブロック、OS プロファイルで使用し、ポリシースクリプトを使用して要求フォーム属性を設定します。ポリシースクリプトがユーザーデータをオーバーライドすることはできません。
クラウドスクリプト
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 としてのクラウドスクリプト
- イメージレベル:クラウドスクリプトを作成するときに、このスクリプトの実行対象のイメージを指定できます。この特定のイメージを含む OS プロファイルが選択されると、このイメージに対するデフォルトのクラウドスクリプトが実行されます。次の例では、Apache クラウドスクリプトが特定のイメージに関連付けられます。
- OS プロファイルレベル:特定のクラウドプロバイダに対して、また特定の AMI/イメージに対して、cloudinit を実行できます。また、基盤となるイメージに関係なく、汎用的な cloudinit を OS プロファイルに関連付けることもできます。次の例では、複数のイメージが OS プロファイルに関連付けられます。[クラウドスクリプト OS プロファイルマッピング] タブで、任意のクラウドスクリプトを OS プロファイルにマップできます。OS プロファイルを使用するクラウドスクリプトのマッピングは、イメージレベルのクラウドスクリプトの関連付けよりも優先されます。
この例では、Apache クラウドスクリプトが Centos OS プロファイルにマップされています。必要に応じて、[OS プロファイルマッピングの上書き] セクションでスクリプトパラメーターをオーバーライドできます。 - リソースブロック:クラウドスクリプトを OS プロファイルにマッピングする際に、詳細計画で使用される特定のリソースブロックで、特定のリソースエイリアスに対してクラウドスクリプトを実行するかどうかを選択できます。「OS プロファイルの作成」を参照してください。
Postinit としてのクラウドスクリプト
クラウドスクリプトは、リソースブロック内の Postinit スクリプトとして使用できます。プロビジョニングする仮想マシンを持つリソースブロックを作成したら、ExecuteScript 操作を追加できます。ExecuteScript 操作でスクリプトパラメーター (クラウドスクリプトのプール) を受け取り、実行する任意のスクリプトを選択できます。スクリプトパラメーターをオーバーライドするには、ExecuteScript 操作の ScriptParameters 属性を使用します。スクリプトパラメーターとそのオーバーライド値の JSON マップを指定できます。クラウド管理 でサポートされているすべての式は、ScriptParamters 属性内で機能します。