0
私はARMのテンプレートを使用してVMSSを導入しました。ARM - VMSSのプライベートIPを取得する
最初のVMのIPアドレスをoutput
に追加します。 Azureのリソースエクスプローラで
- 私は、リソースを参照してください。だから私はvariables
に追加しようとしました
...
"ipConfigurations": [
{
"name": "jm-website-script-4-master-ip",
"id": "/subscriptions/0a4f2b9c-***-40b17ef8c3ab/resourceGroups/jm-website-script-4/providers/Microsoft.Compute/virtualMachineScaleSets/jm-website-script-4-master-vmss/virtualMachines/1/networkInterfaces/jm-website-script-4-master-nic/ipConfigurations/jm-website-script-4-master-ip",
"etag": "W/\"09be80d2-76f5-49fc-ad47-0ef836a3799a\"",
"properties": {
"provisioningState": "Succeeded",
"privateIPAddress": "10.0.0.5",
...
:その後、
"masterVM": "[concat('Microsoft.Compute/virtualMachineScaleSets/jm-website-script-4-master-vmss/virtualMachines/1/networkInterfaces/jm-website-script-4-master-nic/ipConfigurations/jm-website-script-4-master-ip')]",
そして出力に呼び出す:
"outputs": {
"MasterFirstIPConfig": {
"type": "string",
"value": "[reference(variables('masterVM').properties.privateIPAddress)]"
}
}
私にエラーが返されます:
The language expression property 'Microsoft.WindowsAzure.ResourceStack.Frontdoor.Expression.Expressions.JTokenExpression' can't be evaluated..
私のmasterVM
変数定義は完全に間違っていると思いますが、それを得ることはできません。
UPD
おかげ4c74356b41によって答えのためのソリューション。
ソリューションは、次のようになります。
変数定義:
"masterVM": "Microsoft.Compute/virtualMachineScaleSets/jm-website-script-4-master-vmss/virtualMachines/1/networkInterfaces/jm-website-script-4-master-nic"
出力:
"outputs": {
"MasterFirstIPConfig": {
"type": "string",
"value": "[reference(variables('masterVM'),'2016-09-01').ipConfigurations[0].properties.privateIPAddress]"
}
}
わからないような参照:、あなたも適切にそれを参照する必要があなたは、ネットワークインタフェースをターゲットにする必要があります(そして、あなたは、この場合には、CONCATする必要はありません)これは、Azure Resource Explorerの場合、(たとえそれがVMSS名前空間にあるとしても)ネットワークインターフェイス情報を返すネットワークリソースプロバイダへの呼び出しだからですが、変数定義はComputeスタックを経由しています。 外部からIPアドレスを取得することができます。 ...(取得-AzureRmNetworkInterface -VirtualMachineScaleSetName $ VMSSName -ResourceGroupName $ RG -VirtualMachineIndex 0).IpConfigurationsのようなPowerShellを使用し、[0] .PrivateIpAddress はのために使用されている出力は何ですか?たぶん、必要なものを手に入れる別の方法があります。 – sendmarsh
@sendmarshご意見ありがとうございます。 Docker Swarmの初期化プロセス(参加者)にIPを使用する必要があります。だから私はマスターのIPをARMの変数に入れて、それを 'CustomScript'拡張の' bash'スクリプトに渡そうとしています。 Azure CLIでIPを取得する方法を見つけようとしましたが、まもなくいいことはありません。 – setevoy