Para gerenciar um disco SCSI, você deve especificar e saber seu controlador SCSI e o número da unidade lógica (LUN). Para um objeto de disco vSphere, você pode usar o Automation Assembler para atribuir ambos os valores no modelo de nuvem.

A capacidade de usar diferentes controladores SCSI é importante para o desempenho e necessária para alguns tipos de implantação, como o Oracle Real Application Clusters (RAC).

Controlador SCSI e propriedades do disco LUN

Para atribuir um controlador SCSI e LUN, adicione as seguintes propriedades do modelo de nuvem:

SCSIController

unitNumber

Você também tem a opção de omitir as propriedades e, nesse caso, a atribuição segue um padrão previsível. O Automation Assembler não implanta mais discos SCSI em ordem aleatória, o que os tornou difíceis de gerenciar.

Os controladores e discos SCSI são numerados em ordem, com zero sendo o primeiro. Cada controlador SCSI pode oferecer suporte a discos SCSI de números de unidade de 0 a 15.

Opção 1: Definir o controlador SCSI e o número da unidade

Você pode especificar totalmente ambas as propriedades, conforme mostrado no exemplo a seguir. Nesse caso, a atribuição do controlador SCSI e o número da unidade correspondem aos valores inseridos.

resources:
  Cloud_vSphere_Machine_1:
    type: Cloud.vSphere.Machine
    properties:
      image: centos
      cpuCount: 1
      totalMemoryMB: 1024
      attachedDisks:
        - source: '${resource.Cloud_vSphere_Disk_1.id}'
        - source: '${resource.Cloud_vSphere_Disk_2.id}'
        - source: '${resource.Cloud_vSphere_Disk_3.id}'
  Cloud_vSphere_Disk_1:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 1
      SCSIController: SCSI_Controller_2
      unitNumber: 0
  Cloud_vSphere_Disk_2:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 1
      SCSIController: SCSI_Controller_2
      unitNumber: 1
  Cloud_vSphere_Disk_3:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 1
      SCSIController: SCSI_Controller_3
      unitNumber: 4

Opção 2: Definir apenas o controlador SCSI

Você pode especificar o controlador SCSI e omitir o número da unidade. Nesse caso, a atribuição do controlador SCSI corresponde ao valor inserido. O número da unidade é definido como o primeiro número da unidade disponível naquele controlador.

resources:
  Cloud_vSphere_Machine_1:
    type: Cloud.vSphere.Machine
    properties:
      image: centos
      cpuCount: 1
      totalMemoryMB: 1024
      attachedDisks:
        - source: '${resource.Cloud_vSphere_Disk_1.id}'
        - source: '${resource.Cloud_vSphere_Disk_2.id}'
        - source: '${resource.Cloud_vSphere_Disk_3.id}'
  Cloud_vSphere_Disk_1:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 1
      SCSIController: SCSI_Controller_0
  Cloud_vSphere_Disk_2:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 1
      SCSIController: SCSI_Controller_0
  Cloud_vSphere_Disk_3:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 1
      SCSIController: SCSI_Controller_1

Opção 3: Omitir ambas as propriedades

Você pode omitir o controlador SCSI e o número da unidade. Nesse caso, a atribuição é definida para o primeiro controlador SCSI disponível e o primeiro número de unidade disponível sob esse controlador.

resources:
  Cloud_vSphere_Machine_1:
    type: Cloud.vSphere.Machine
    properties:
      image: centos
      cpuCount: 1
      totalMemoryMB: 1024
      attachedDisks:
        - source: '${resource.Cloud_vSphere_Disk_1.id}'
        - source: '${resource.Cloud_vSphere_Disk_2.id}'
        - source: '${resource.Cloud_vSphere_Disk_3.id}'
  Cloud_vSphere_Disk_1:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 1
  Cloud_vSphere_Disk_2:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 1
  Cloud_vSphere_Disk_3:
    type: Cloud.vSphere.Disk
    properties:
      capacityGb: 1

Não é uma opção: apenas LUN

Você não pode omitir o controlador SCSI e especificar apenas um número de unidade. Isso pode resultar em uma implantação em que vários controladores SCSI têm um disco desse número, mas, para fins de gerenciamento, você não saberá qual disco é qual.

Usando entradas para definir o controlador SCSI e LUN

Para tornar o projeto mais dinâmico, use entradas para que o usuário possa especificar qual controlador SCSI e número de unidade na ocasião da solicitação ou da atualização.

inputs:
  diskProperties:
    type: array
    minItems: 1
    maxItems: 10
    items:
      type: object
      properties:
        size:
          type: integer
        SCSIController:
          type: string
          title: SCSI Controller
          enum:
            - SCSI_Controller_0
            - SCSI_Controller_1
            - SCSI_Controller_2
            - SCSI_Controller_3
        unitNumber:
          type: integer
          title: Unit Number
          
resources:
  app:
    type: Cloud.vSphere.Machine
    allocatePerInstance: true
    properties:
      flavor: small
      image: centos
      attachedDisks: '${map_to_object(slice(resource.disk[*].id, 0, 4), ''source'')}'
  disk:
    type: Cloud.vSphere.Disk
    allocatePerInstance: true
    properties:
      capacityGb: '${input.diskProperties[count.index].size}'
      SCSIController: '${input.diskProperties[count.index].SCSIController}'
      unitNumber: '${input.diskProperties[count.index].unitNumber}'
      count: ${length(input.diskProperties)}
URL da CLI do Terraform