aboutsummaryrefslogtreecommitdiffstats
path: root/deploy/azure/_arm_deploy_onap_cd.json
blob: de3d5a08250fac8366d1388cc394860007ae56d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
      "scriptURL": { "type": "string","metadata": { "description": "entrypoint script location" }},
      "scriptName": { "type": "string", "metadata": { "description": "entrypoint script name"}},
      "onapBranch": { "type": "string","metadata": { "description": "onap branch amsterdam or master" }},
      "onapEnvironment": { "type": "string","metadata": { "description": "onap environment usually defaults to onap" }},
      "vmName": { "type": "string","metadata": { "description": "Name of the VM" }},
      "osType": { "type": "string", "allowedValues": ["Linux"], "metadata": { "description": "Type of OS" }},
      "adminUsername": { "type": "string", "metadata": { "description": "User name for the VM" }},
      "sshKeyData": { "type": "string", "metadata": { "description": "SSH rsa public key file as a string." }},
      "dnsLabelPrefix": { "type": "string", "metadata": { "description": "Unique DNS Name for the Public IP used to access the Virtual Machine." }},
      "ubuntuOSVersion": { "type": "string", "defaultValue": "16.04.0-LTS", "allowedValues": ["16.04.0-LTS"], "metadata": { "description": "The OS"}},
      "vmSize": { "type": "string",
      "defaultValue": "Standard_D1",
      "allowedValues": [
        "Standard_E8_v3",
         "Standard_E2_v3",
         "Standard_D1",
         "Standard_D4_v3",
         "Standard_D8S_v3",
         "Standard_D32s_v3",
         "Standard_D16s_v3",
         "Standard_E16_v3",
         "Standard_E64_v3"],
         "metadata": { "description": "VM size" }}
    },
  "variables": {
    "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'salinuxvm')]",
    "imagePublisher": "Canonical",
    "imageOffer": "UbuntuServer",
    "nicName": "[concat(parameters('vmName'),'VMNic')]",
    "addressPrefix": "10.0.0.0/16",
    "subnetName": "Subnet",
    "subnetPrefix": "10.0.0.0/24",
    "storageAccountType": "Standard_LRS",
    "publicIPAddressName": "[concat(parameters('vmName'),'PublicIP')]",
    "publicIPAddressType": "Dynamic",
    "virtualNetworkName": "[concat(parameters('vmName'),'VNET')]",
    "vnetID": "[resourceId('Microsoft.Network/virtualNetworks',variables('virtualNetworkName'))]",
    "subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
    "networkSecurityGroupName": "[concat(parameters('vmName'), '_obrien_local_nsg')]",
    "sshKeyPath": "[concat('/home/',parameters('adminUsername'),'/.ssh/authorized_keys')]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "name": "[variables('storageAccountName')]",
      "apiVersion": "2017-06-01",
      "location": "[resourceGroup().location]",
      "sku": { "name": "[variables('storageAccountType')]"},
      "kind": "Storage",
      "properties": {}
    },
    {
      "apiVersion": "2017-03-01",
      "type": "Microsoft.Network/networkSecurityGroups",
      "name": "[variables('networkSecurityGroupName')]",
      "location": "[resourceGroup().location]",
      "tags": { "displayName": "NSG" },
      "properties": {
      "securityRules": [
        {
          "name": "port_10249-10255_172",
          "properties": {
            "description": "port_10249-10255_172",
            "protocol": "*",
            "sourcePortRange": "*",
            "destinationPortRange": "10249-10255",
            "sourceAddressPrefix": "172.17.0.1/32",
            "destinationAddressPrefix": "*",
            "access": "Allow",
            "priority": 120,
            "direction": "Inbound"
            }
        },
        {
          "name": "port_10249-10255_127",
          "properties": {
            "description": "port_10249-10255_127",
            "protocol": "*",
            "sourcePortRange": "*",
            "destinationPortRange": "10249-10255",
            "sourceAddressPrefix": "127.0.0.1/32",
            "destinationAddressPrefix": "*",
            "access": "Allow",
            "priority": 122,
            "direction": "Inbound"
            }
        },
        {
          "name": "Port_10249-10255-block",
          "properties": {
            "description": "Port_10249-10255-block",
            "protocol": "Tcp",
            "sourcePortRange": "*",
            "destinationPortRange": "10249-10255",
            "sourceAddressPrefix": "Internet",
            "destinationAddressPrefix": "*",
            "access": "Deny",
            "priority": 130,
            "direction": "Inbound"
            }
        },
        {
          "name": "in-rule",
          "properties": {
            "description": "All in",
            "protocol": "Tcp",
            "sourcePortRange": "*",
            "destinationPortRange": "*",
            "sourceAddressPrefix": "Internet",
            "destinationAddressPrefix": "*",
            "access": "Allow",
            "priority": 140,
            "direction": "Inbound"
            }
        },
       {
          "name": "block-8080",
          "properties": {
            "description": "block-8080",
            "protocol": "Tcp",
            "sourcePortRange": "8080",
            "destinationPortRange": "*",
            "sourceAddressPrefix": "Internet",
            "destinationAddressPrefix": "*",
            "access": "Deny",
            "priority": 104,
            "direction": "Outbound"
            }
          },
        {
          "name": "out-rule",
          "properties": {
            "description": "All out",
            "protocol": "Tcp",
            "sourcePortRange": "*",
            "destinationPortRange": "*",
            "sourceAddressPrefix": "Internet",
            "destinationAddressPrefix": "*",
            "access": "Allow",
            "priority": 110,
            "direction": "Outbound"
            }
          } 
        ]
      }
    },
    {
      "apiVersion": "2017-04-01",
      "type": "Microsoft.Network/publicIPAddresses",
      "name": "[variables('publicIPAddressName')]",
      "location": "[resourceGroup().location]",
      "properties": {
        "publicIPAllocationMethod": "[variables('publicIPAddressType')]",
        "dnsSettings": {
          "domainNameLabel": "[concat(parameters('vmName'), parameters('dnsLabelPrefix'))]"
        }
      }
    },
    {
      "apiVersion": "2017-04-01",
      "type": "Microsoft.Network/virtualNetworks",
      "name": "[variables('virtualNetworkName')]",
      "location": "[resourceGroup().location]",
      "dependson": [
        "[concat('Microsoft.Network/networkSecurityGroups/', variables('networkSecurityGroupName'))]"
      ],
      "properties": {
        "addressSpace": {
          "addressPrefixes": [ "[variables('addressPrefix')]" ]
        },
        "subnets": [
          {
            "name": "[variables('subnetName')]",
            "properties": {
              "addressPrefix": "[variables('subnetPrefix')]",
              "networkSecurityGroup": {
                 "id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]"
              }
            }
          }
        ]
      }
    },
    {
      "apiVersion": "2017-04-01",
      "type": "Microsoft.Network/networkInterfaces",
      "name": "[variables('nicName')]",
      "location": "[resourceGroup().location]",
      "dependsOn": [
        "[resourceId('Microsoft.Network/publicIPAddresses/', variables('publicIPAddressName'))]",
        "[resourceId('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]"
      ],
      "properties": {
        "ipConfigurations": [      {
            "name": "ipconfig1",
            "properties": {
              "privateIPAllocationMethod": "Dynamic",
              "publicIPAddress": { "id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('publicIPAddressName'))]" },
              "subnet": { "id": "[variables('subnetRef')]" }
            }
          }
        ]
      }
    },
    {
      "apiVersion": "2017-03-30",
      "type": "Microsoft.Compute/virtualMachines",
      "name": "[parameters('vmName')]",
      "location": "[resourceGroup().location]",
      "dependsOn": [
        "[resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]",
        "[resourceId('Microsoft.Network/networkInterfaces/', variables('nicName'))]"],
      "properties": {
        "hardwareProfile": { "vmSize": "[parameters('vmSize')]"},
        "osProfile": {
          "computerName": "[parameters('vmName')]",
          "adminUsername": "[parameters('adminUsername')]",
          "linuxConfiguration": {
          "disablePasswordAuthentication": true,
          "ssh": { "publicKeys": [{
                        "path": "[variables('sshKeyPath')]",
                        "keyData": "[parameters('sshKeyData')]"
                    }]}}},
        "storageProfile": {
          "imageReference": {
            "publisher": "[variables('imagePublisher')]",
            "offer": "[variables('imageOffer')]",
            "sku": "[parameters('ubuntuOSVersion')]",
            "version": "latest"
          },
          "osDisk": { "diskSizeGB": 127, "createOption": "FromImage" },
          "dataDisks": [ {"diskSizeGB": 127, "lun": 0, "createOption": "Empty" }]},
        "networkProfile": {
          "networkInterfaces": [{ "id": "[resourceId('Microsoft.Network/networkInterfaces',variables('nicName'))]"}]},
        "diagnosticsProfile": {
          "bootDiagnostics": { "enabled": true,
            "storageUri": "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('storageAccountName')), '2016-01-01').primaryEndpoints.blob)]"
          }} }
    },

    {
    "apiVersion": "2017-12-01",
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "name": "[concat(parameters('vmName'),'/onap')]",
    "location": "[resourceGroup().location]",	
    "dependsOn": ["[concat('Microsoft.Compute/virtualMachines/', parameters('vmName'))]"],
    "properties": {
        "publisher": "Microsoft.Azure.Extensions",
        "type": "CustomScript",
        "typeHandlerVersion": "2.0",
        "autoUpgradeMinorVersion": true,
        "settings": {
            "fileUris": [ "[parameters('scriptURL')]" ],
            "commandToExecute": "[concat('./' , parameters('scriptName'), ' -b ', parameters('onapBranch'), ' -s ', parameters('vmName'), ' -e ', parameters('onapEnvironment'))]"
           }
        }
     }
     
 ],
  "outputs": {
    "hostname": {
      "type": "string",
      "value": "[reference(variables('publicIPAddressName')).dnsSettings.fqdn]"
    },
    "sshCommand": {
      "type": "string",
      "value": "[concat('ssh ', parameters('adminUsername'), '@', reference(variables('publicIPAddressName')).dnsSettings.fqdn)]"
    }
  }
}