@description('Name for your log analytics workspace')paramworkspaceNamestring@description('Azure Region to deploy the Log Analytics Workspace')paramlocationstring=resourceGroup().location@description('SKU, leave default pergb2018')paramskustring='pergb2018'paramresourceTagsobjectvarautomationAccountName='HCIBox-Automation-${uniqueString(resourceGroup().id)}'varautomationAccountLocation=((location=='eastus')?'eastus2':((location=='eastus2')?'eastus':location))resourceworkspace'Microsoft.OperationalInsights/workspaces@2021-06-01'={name:workspaceNamelocation:locationproperties:{sku:{name:sku}}tags:resourceTags}resourceautomationAccount'Microsoft.Automation/automationAccounts@2021-06-22'={name:automationAccountNamelocation:automationAccountLocationproperties:{sku:{name:'Basic'}}dependsOn:[workspace]tags:resourceTags}
@description('Name for your log analytics workspace')paramworkspaceNamestring@description('Azure Region to deploy the Log Analytics Workspace')paramlocationstring=resourceGroup().location@description('SKU, leave default pergb2018')paramskustring='pergb2018'paramresourceTagsobjectvarautomationAccountName='HCIBox-Automation-${uniqueString(resourceGroup().id)}'varautomationAccountLocation=((location=='eastus')?'eastus2':((location=='eastus2')?'eastus':location))// Create a Log Analytics Workspace by Azure Verified Modulemoduleworkspace'br/public:avm/res/operational-insights/workspace:0.11.1'={params:{name:workspaceNamelocation:locationskuName:skutags:resourceTags}}// Create a Automation Account by Azure Verified ModulemoduleautomationAccount'br/public:avm/res/automation/automation-account:0.14.1'={params:{name:automationAccountNamelocation:automationAccountLocationskuName:'Basic'tags:resourceTags}dependsOn:[workspace]}
このモジュールで作成されるリソースはこちら
architecture-beta
group resourcegroup(azure:resource-groups)[Resource Group]
service loganalytics(azure:log-analytics-workspaces)[Log Analytics Workspace] in resourcegroup
service automationaccount(azure:automation-accounts)[Automation Account] in resourcegroup
@description('Name of the VNet')paramvirtualNetworkNamestring='HCIBox-VNet'@description('Name of the subnet in the virtual network')paramsubnetNamestring='HCIBox-Subnet'@description('Azure Region to deploy the Log Analytics Workspace')paramlocationstring=resourceGroup().location@description('Choice to deploy Bastion to connect to the client VM')paramdeployBastionbool=false@description('Name of the Network Security Group')paramnetworkSecurityGroupNamestring='HCIBox-NSG'@description('Name of the Bastion Network Security Group')parambastionNetworkSecurityGroupNamestring='HCIBox-Bastion-NSG'paramresourceTagsobjectvaraddressPrefix='172.16.0.0/16'varsubnetAddressPrefix='172.16.1.0/24'varbastionSubnetName='AzureBastionSubnet'varbastionSubnetRef='${arcVirtualNetwork.id}/subnets/${bastionSubnetName}'varbastionName='HCIBox-Bastion'varbastionSubnetIpPrefix='172.16.3.64/26'varbastionPublicIpAddressName='${bastionName}-PIP'resourcearcVirtualNetwork'Microsoft.Network/virtualNetworks@2021-03-01'={name:virtualNetworkNamelocation:locationproperties:{addressSpace:{addressPrefixes:[addressPrefix]}subnets:deployBastion==true?[{name:subnetNameproperties:{addressPrefix:subnetAddressPrefixprivateEndpointNetworkPolicies:'Enabled'privateLinkServiceNetworkPolicies:'Enabled'networkSecurityGroup:{id:networkSecurityGroup.id}}}{name:'AzureBastionSubnet'properties:{addressPrefix:bastionSubnetIpPrefixnetworkSecurityGroup:{id:bastionNetworkSecurityGroup.id}}}]:[{name:subnetNameproperties:{addressPrefix:subnetAddressPrefixprivateEndpointNetworkPolicies:'Enabled'privateLinkServiceNetworkPolicies:'Enabled'networkSecurityGroup:{id:networkSecurityGroup.id}}}]}tags:resourceTags}resourcenetworkSecurityGroup'Microsoft.Network/networkSecurityGroups@2021-03-01'={name:networkSecurityGroupNamelocation:locationproperties:{securityRules:[]}tags:resourceTags}resourcebastionNetworkSecurityGroup'Microsoft.Network/networkSecurityGroups@2021-05-01'=if(deployBastion==true){name:bastionNetworkSecurityGroupNamelocation:locationproperties:{securityRules:[{name:'bastion_allow_https_inbound'properties:{priority:1010protocol:'Tcp'access:'Allow'direction:'Inbound'sourceAddressPrefix:'Internet'sourcePortRange:'*'destinationAddressPrefix:'*'destinationPortRange:'443'}}{name:'bastion_allow_gateway_manager_inbound'properties:{priority:1011protocol:'Tcp'access:'Allow'direction:'Inbound'sourceAddressPrefix:'GatewayManager'sourcePortRange:'*'destinationAddressPrefix:'*'destinationPortRange:'443'}}{name:'bastion_allow_load_balancer_inbound'properties:{priority:1012protocol:'Tcp'access:'Allow'direction:'Inbound'sourceAddressPrefix:'AzureLoadBalancer'sourcePortRange:'*'destinationAddressPrefix:'*'destinationPortRange:'443'}}{name:'bastion_allow_host_comms'properties:{priority:1013protocol:'*'access:'Allow'direction:'Inbound'sourceAddressPrefix:'VirtualNetwork'sourcePortRange:'*'destinationAddressPrefix:'VirtualNetwork'destinationPortRanges:['8080''5701']}}{name:'bastion_allow_ssh_rdp_outbound'properties:{priority:1014protocol:'*'access:'Allow'direction:'Outbound'sourceAddressPrefix:'*'sourcePortRange:'*'destinationAddressPrefix:'VirtualNetwork'destinationPortRanges:['22''3389']}}{name:'bastion_allow_azure_cloud_outbound'properties:{priority:1015protocol:'Tcp'access:'Allow'direction:'Outbound'sourceAddressPrefix:'*'sourcePortRange:'*'destinationAddressPrefix:'AzureCloud'destinationPortRange:'443'}}{name:'bastion_allow_bastion_comms'properties:{priority:1016protocol:'*'access:'Allow'direction:'Outbound'sourceAddressPrefix:'VirtualNetwork'sourcePortRange:'*'destinationAddressPrefix:'VirtualNetwork'destinationPortRanges:['8080''5701']}}{name:'bastion_allow_get_session_info'properties:{priority:1017protocol:'*'access:'Allow'direction:'Outbound'sourceAddressPrefix:'*'sourcePortRange:'*'destinationAddressPrefix:'Internet'destinationPortRanges:['80''443']}}]}tags:resourceTags}resourcepublicIpAddress'Microsoft.Network/publicIPAddresses@2021-05-01'=if(deployBastion==true){name:bastionPublicIpAddressNamelocation:locationproperties:{publicIPAllocationMethod:'Static'publicIPAddressVersion:'IPv4'idleTimeoutInMinutes:4}sku:{name:'Standard'}tags:resourceTags}resourcebastionHost'Microsoft.Network/bastionHosts@2021-05-01'=if(deployBastion==true){name:bastionNamelocation:locationproperties:{ipConfigurations:[{name:'IpConf'properties:{publicIPAddress:{id:publicIpAddress.id}subnet:{id:bastionSubnetRef}}}]}tags:resourceTags}outputvnetIdstring=arcVirtualNetwork.idoutputsubnetIdstring=arcVirtualNetwork.properties.subnets[0].id
@description('Name of the VNet')paramvirtualNetworkNamestring='HCIBox-VNet'@description('Name of the subnet in the virtual network')paramsubnetNamestring='HCIBox-Subnet'@description('Azure Region to deploy the Log Analytics Workspace')paramlocationstring=resourceGroup().location@description('Choice to deploy Bastion to connect to the client VM')paramdeployBastionbool=false@description('Name of the Network Security Group')paramnetworkSecurityGroupNamestring='HCIBox-NSG'@description('Name of the Bastion Network Security Group')parambastionNetworkSecurityGroupNamestring='HCIBox-Bastion-NSG'paramresourceTagsobjectvaraddressPrefix='172.16.0.0/16'varsubnetAddressPrefix='172.16.1.0/24'varbastionSubnetName='AzureBastionSubnet'varbastionName='HCIBox-Bastion'varbastionSubnetIpPrefix='172.16.3.64/26'varbastionPublicIpAddressName='${bastionName}-PIP'// Create Virtual Network by Azure Verified ModulemodulearcVirtualNetwork'br/public:avm/res/network/virtual-network:0.6.1'={params:{name:virtualNetworkNamelocation:locationaddressPrefixes:[addressPrefix]subnets:deployBastion==true?[{name:subnetNameaddressPrefix:subnetAddressPrefixprivateEndpointNetworkPolicies:'Enabled'privateLinkServiceNetworkPolicies:'Enabled'networkSecurityGroupResourceId:networkSecurityGroup.outputs.resourceId}{name:bastionSubnetNameaddressPrefix:bastionSubnetIpPrefixnetworkSecurityGroupResourceId:bastionNetworkSecurityGroup.outputs.resourceId}]:[{name:subnetNameaddressPrefix:subnetAddressPrefixprivateEndpointNetworkPolicies:'Enabled'privateLinkServiceNetworkPolicies:'Enabled'networkSecurityGroupResourceId:networkSecurityGroup.outputs.resourceId}]tags:resourceTags}}// Create Network Security Group for HCIBox-Subnet by Azure Verified ModulemodulenetworkSecurityGroup'br/public:avm/res/network/network-security-group:0.5.1'={params:{name:networkSecurityGroupNamelocation:location}}// Create Network Security Group for Bastion by Azure Verified ModulemodulebastionNetworkSecurityGroup'br/public:avm/res/network/network-security-group:0.5.1'=if(deployBastion==true){params:{name:bastionNetworkSecurityGroupNamelocation:locationsecurityRules:[{name:'bastion_allow_https_inbound'properties:{priority:1010protocol:'Tcp'access:'Allow'direction:'Inbound'sourceAddressPrefix:'Internet'sourcePortRange:'*'destinationAddressPrefix:'*'destinationPortRange:'443'}}{name:'bastion_allow_gateway_manager_inbound'properties:{priority:1011protocol:'Tcp'access:'Allow'direction:'Inbound'sourceAddressPrefix:'GatewayManager'sourcePortRange:'*'destinationAddressPrefix:'*'destinationPortRange:'443'}}{name:'bastion_allow_load_balancer_inbound'properties:{priority:1012protocol:'Tcp'access:'Allow'direction:'Inbound'sourceAddressPrefix:'AzureLoadBalancer'sourcePortRange:'*'destinationAddressPrefix:'*'destinationPortRange:'443'}}{name:'bastion_allow_host_comms'properties:{priority:1013protocol:'*'access:'Allow'direction:'Inbound'sourceAddressPrefix:'VirtualNetwork'sourcePortRange:'*'destinationAddressPrefix:'VirtualNetwork'destinationPortRanges:['8080''5701']}}{name:'bastion_allow_ssh_rdp_outbound'properties:{priority:1014protocol:'*'access:'Allow'direction:'Outbound'sourceAddressPrefix:'*'sourcePortRange:'*'destinationAddressPrefix:'VirtualNetwork'destinationPortRanges:['22''3389']}}{name:'bastion_allow_azure_cloud_outbound'properties:{priority:1015protocol:'Tcp'access:'Allow'direction:'Outbound'sourceAddressPrefix:'*'sourcePortRange:'*'destinationAddressPrefix:'AzureCloud'destinationPortRange:'443'}}{name:'bastion_allow_bastion_comms'properties:{priority:1016protocol:'*'access:'Allow'direction:'Outbound'sourceAddressPrefix:'VirtualNetwork'sourcePortRange:'*'destinationAddressPrefix:'VirtualNetwork'destinationPortRanges:['8080''5701']}}{name:'bastion_allow_get_session_info'properties:{priority:1017protocol:'*'access:'Allow'direction:'Outbound'sourceAddressPrefix:'*'sourcePortRange:'*'destinationAddressPrefix:'Internet'destinationPortRanges:['80''443']}}]tags:resourceTags}}// Create Public IP Address for Bastion by Azure Verified ModulemodulepublicIpAddress'br/public:avm/res/network/public-ip-address:0.8.0'=if(deployBastion==true){params:{name:bastionPublicIpAddressNamelocation:locationpublicIPAllocationMethod:'Static'publicIPAddressVersion:'IPv4'idleTimeoutInMinutes:4skuName:'Standard'tags:resourceTags}}// Create Bastion Host by Azure Verified ModulemodulebastionHost1'br/public:avm/res/network/bastion-host:0.6.1'=if(deployBastion==true){params:{name:bastionNamelocation:locationvirtualNetworkResourceId:arcVirtualNetwork.outputs.resourceIdbastionSubnetPublicIpResourceId:publicIpAddress.outputs.resourceIdtags:resourceTags}}outputvnetIdstring=arcVirtualNetwork.outputs.resourceIdoutputsubnetIdstring=arcVirtualNetwork.outputs.subnetResourceIds[0]
このモジュールで作成されるリソースはこちら
architecture-beta
group vnet(azure:virtual-networks)[HCIBox VNet]
service subnet1(azure:subnet)[HCIBox Subnet] in vnet
group subnet2(azure:subnet)[AzureBastionSubnet] in vnet
service bastion(azure:bastions)[HCIBox Bastion] in subnet2
service nsg1(azure:network-security-groups)[HCIBox NSG]
service nsg2(azure:network-security-groups)[HCIBox Bastion NSG]
service pip(azure:public-ip-addresses)[HCIBox Bastion PIP]
subnet1:L -- R:nsg1
bastion{group}:L -- R:nsg2
bastion:T -- B:pip
@description('Storage Account type')@allowed(['Standard_LRS''Standard_GRS''Standard_ZRS''Premium_LRS'])paramstorageAccountTypestring='Standard_LRS'@description('Location for all resources.')paramlocationstring=resourceGroup().locationparamresourceTagsobjectvarstorageAccountName='hcibox${uniqueString(resourceGroup().id)}'resourcestorageAccount'Microsoft.Storage/storageAccounts@2021-06-01'={name:storageAccountNamelocation:locationsku:{name:storageAccountType}kind:'StorageV2'properties:{supportsHttpsTrafficOnly:true}tags:resourceTags}outputstorageAccountNamestring=storageAccountName
@description('Storage Account type')@allowed(['Standard_LRS''Standard_GRS''Standard_ZRS''Premium_LRS'])paramstorageAccountTypestring='Standard_LRS'@description('Location for all resources.')paramlocationstring=resourceGroup().locationparamresourceTagsobjectvarstorageAccountName='hcibox${uniqueString(resourceGroup().id)}'// Create Storage Account by Azure Verified ModulemodulestorageAccount'br/public:avm/res/storage/storage-account:0.19.0'={params:{name:storageAccountNamelocation:locationskuName:storageAccountTypekind:'StorageV2'tags:resourceTags}}outputstorageAccountNamestring=storageAccountName
このモジュールで作成されるリソースはこちら
architecture-beta
group resourcegroup(azure:resource-groups)[Resource Group]
service storageaccount(azure:storage-accounts)[Storage Account] in resourcegroup
@description('The name of your Virtual Machine')paramvmNamestring='HCIBox-Client'@description('The size of the Virtual Machine')@allowed(['Standard_E32s_v5''Standard_E32s_v6'])paramvmSizestring='Standard_E32s_v5'@description('Username for the Virtual Machine')paramwindowsAdminUsernamestring='arcdemo'@description('Password for Windows account. Password must have 3 of the following: 1 lower case character, 1 upper case character, 1 number, and 1 special character. The value must be between 12 and 123 characters long')@minLength(12)@maxLength(123)@secure()paramwindowsAdminPasswordstring@description('The Windows version for the VM. This will pick a fully patched image of this given Windows version')paramwindowsOSVersionstring='2025-datacenter-g2'@description('Location for all resources')paramlocationstring=resourceGroup().location@description('Resource Id of the subnet in the virtual network')paramsubnetIdstringparamresourceTagsobject@description('Client id of the service principal')paramspnClientIdstring@description('Client secret of the service principal')@secure()paramspnClientSecretstring@description('Tenant id of the service principal')paramspnTenantIdstring@description('Azure AD object id for your Microsoft.AzureStackHCI resource provider')paramspnProviderIdstring@description('Name for the staging storage account using to hold kubeconfig. This value is passed into the template as an output from mgmtStagingStorage.json')paramstagingStorageAccountNamestring@description('Name for the environment Azure Log Analytics workspace')paramworkspaceNamestring@description('The base URL used for accessing artifacts and automation artifacts.')paramtemplateBaseUrlstring@description('Option to disable automatic cluster registration. Setting this to false will also disable deploying AKS and Resource bridge')paramregisterClusterbool=true@description('Choice to deploy Bastion to connect to the client VM')paramdeployBastionbool=false@description('Option to deploy AKS-HCI with HCIBox')paramdeployAKSHCIbool=true@description('Option to deploy Resource Bridge with HCIBox')paramdeployResourceBridgebool=true@description('Public DNS to use for the domain')paramnatDNSstring='8.8.8.8'@description('Override default RDP port using this parameter. Default is 3389. No changes will be made to the client VM.')paramrdpPortstring='3389'@description('Choice to enable automatic deployment of Azure Arc enabled HCI cluster resource after the client VM deployment is complete. Default is false.')paramautoDeployClusterResourcebool=false@description('Choice to enable automatic upgrade of Azure Arc enabled HCI cluster resource after the client VM deployment is complete. Only applicable when autoDeployClusterResource is true. Default is false.')paramautoUpgradeClusterResourcebool=false@description('Enable automatic logon into HCIBox Virtual Machine')paramvmAutologonbool=falsevarencodedPassword=base64(windowsAdminPassword)varbastionName='HCIBox-Bastion'varpublicIpAddressName=deployBastion==false?'${vmName}-PIP':'${bastionName}-PIP'varnetworkInterfaceName='${vmName}-NIC'varosDiskType='Premium_LRS'varPublicIPNoBastion={id:publicIpAddress.id}resourcenetworkInterface'Microsoft.Network/networkInterfaces@2021-03-01'={name:networkInterfaceNamelocation:locationproperties:{ipConfigurations:[{name:'ipconfig1'properties:{subnet:{id:subnetId}privateIPAllocationMethod:'Dynamic'publicIPAddress:deployBastion==false?PublicIPNoBastion:null}}]}tags:resourceTags}resourcepublicIpAddress'Microsoft.Network/publicIpAddresses@2021-03-01'=if(deployBastion==false){name:publicIpAddressNamelocation:locationproperties:{publicIPAllocationMethod:'Static'publicIPAddressVersion:'IPv4'idleTimeoutInMinutes:4}sku:{name:'Basic'}tags:resourceTags}resourcevm'Microsoft.Compute/virtualMachines@2022-03-01'={name:vmNamelocation:locationtags:resourceTagsidentity:{type:'SystemAssigned'}properties:{hardwareProfile:{vmSize:vmSize}storageProfile:{osDisk:{name:'${vmName}-OSDisk'caching:'ReadWrite'createOption:'FromImage'managedDisk:{storageAccountType:osDiskType}diskSizeGB:1024}imageReference:{publisher:'MicrosoftWindowsServer'offer:'WindowsServer'sku:windowsOSVersionversion:'latest'}dataDisks:[{name:'ASHCIHost001_DataDisk_0'diskSizeGB:256createOption:'Empty'lun:0caching:'None'writeAcceleratorEnabled:falsemanagedDisk:{storageAccountType:'Premium_LRS'}}{name:'ASHCIHost001_DataDisk_1'diskSizeGB:256createOption:'Empty'lun:1caching:'None'writeAcceleratorEnabled:falsemanagedDisk:{storageAccountType:'Premium_LRS'}}{name:'ASHCIHost001_DataDisk_2'diskSizeGB:256createOption:'Empty'lun:2caching:'None'writeAcceleratorEnabled:falsemanagedDisk:{storageAccountType:'Premium_LRS'}}{name:'ASHCIHost001_DataDisk_3'diskSizeGB:256createOption:'Empty'lun:3caching:'None'writeAcceleratorEnabled:falsemanagedDisk:{storageAccountType:'Premium_LRS'}}{name:'ASHCIHost001_DataDisk_4'diskSizeGB:256createOption:'Empty'lun:4caching:'None'writeAcceleratorEnabled:falsemanagedDisk:{storageAccountType:'Premium_LRS'}}{name:'ASHCIHost001_DataDisk_5'diskSizeGB:256createOption:'Empty'lun:5caching:'None'writeAcceleratorEnabled:falsemanagedDisk:{storageAccountType:'Premium_LRS'}}{name:'ASHCIHost001_DataDisk_6'diskSizeGB:256createOption:'Empty'lun:6caching:'None'writeAcceleratorEnabled:falsemanagedDisk:{storageAccountType:'Premium_LRS'}}{name:'ASHCIHost001_DataDisk_7'diskSizeGB:256createOption:'Empty'lun:7caching:'None'writeAcceleratorEnabled:falsemanagedDisk:{storageAccountType:'Premium_LRS'}}]}networkProfile:{networkInterfaces:[{id:networkInterface.id}]}osProfile:{computerName:vmNameadminUsername:windowsAdminUsernameadminPassword:windowsAdminPasswordwindowsConfiguration:{provisionVMAgent:trueenableAutomaticUpdates:false}}}}resourcevmBootstrap'Microsoft.Compute/virtualMachines/extensions@2022-03-01'={parent:vmname:'Bootstrap'location:locationproperties:{publisher:'Microsoft.Compute'type:'CustomScriptExtension'typeHandlerVersion:'1.10'autoUpgradeMinorVersion:trueprotectedSettings:{fileUris:[uri(templateBaseUrl,'artifacts/PowerShell/Bootstrap.ps1')]commandToExecute:'powershell.exe -ExecutionPolicy Bypass -File Bootstrap.ps1 -adminUsername ${windowsAdminUsername} -adminPassword ${encodedPassword} -spnClientId ${spnClientId} -spnClientSecret ${spnClientSecret} -spnTenantId ${spnTenantId} -subscriptionId ${subscription().subscriptionId} -spnProviderId ${spnProviderId} -resourceGroup ${resourceGroup().name} -azureLocation ${location} -stagingStorageAccountName ${stagingStorageAccountName} -workspaceName ${workspaceName} -templateBaseUrl ${templateBaseUrl} -registerCluster ${registerCluster} -deployAKSHCI ${deployAKSHCI} -deployResourceBridge ${deployResourceBridge} -natDNS ${natDNS} -rdpPort ${rdpPort} -autoDeployClusterResource ${autoDeployClusterResource} -autoUpgradeClusterResource ${autoUpgradeClusterResource} -vmAutologon ${vmAutologon}'}}}// Add role assignment for the VM: Owner roleresourcevmRoleAssignment_Owner'Microsoft.Authorization/roleAssignments@2022-04-01'={name:guid(vm.id,'Microsoft.Authorization/roleAssignments','Owner')scope:resourceGroup()properties:{principalId:vm.identity.principalIdroleDefinitionId:resourceId('Microsoft.Authorization/roleDefinitions','8e3af657-a8ff-443c-a75c-2fe8c4bcb635')principalType:'ServicePrincipal'}}outputadminUsernamestring=windowsAdminUsernameoutputpublicIPstring=deployBastion==false?concat(publicIpAddress.properties.ipAddress):''
AVM では VM をデプロイするモジュールに NIC の作成が含まれている
VM カスタムスクリプト拡張機能も整備されており利用している
ドメインの修正をしたいから、一旦保留
ディスクが多くてぐちゃぐちゃしてますが、、このモジュールで作成されるリソースはこちら
architecture-beta
group virtualnetwork(azure:virtual-networks)[Virtual Network]
group subnet(azure:subnet)[Subnet] in virtualnetwork
service vm(azure:virtual-machine)[Virtual Machine] in subnet
service publicip(azure:public-ip-addresses)[Public IP Address]
service osdisk(azure:disks)[OS Disk]
junction disksjjunction
service datadisk1(azure:disks)[Data Disk 1]
service datadisk2(azure:disks)[Data Disk 2]
service datadisk3(azure:disks)[Data Disk 3]
service datadisk4(azure:disks)[Data Disk 4]
service datadisk5(azure:disks)[Data Disk 5]
service datadisk6(azure:disks)[Data Disk 6]
service datadisk7(azure:disks)[Data Disk 7]
service datadisk8(azure:disks)[Data Disk 8]
service roleassignment(azure:managed-identities)[Role Assignment]
vm:R -- L:publicip
vm:B -- T:disksjjunction
disksjjunction:L -- R:osdisk
disksjjunction:L -- R:datadisk1
disksjjunction:L -- R:datadisk2
disksjjunction:B -- T:datadisk3
disksjjunction:B -- T:datadisk4
disksjjunction:B -- T:datadisk5
disksjjunction:R -- L:datadisk6
disksjjunction:R -- L:datadisk7
disksjjunction:R -- L:datadisk8
vm:L -- R:roleassignment