Inicio rápido: crear un SQL Server en una máquina virtual de Azure con PowerShell

Se aplica a: SQL Server en máquinas virtuales de Azure

Este inicio rápido te ayuda a crear una máquina virtual (VM) de Windows SQL Server en Azure con Azure PowerShell.

Sugerencia

Requisitos previos

Para completar este inicio rápido, debe tener lo siguiente:

  • Suscripción a Azure. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
  • La última versión de Azure PowerShell

Nota:

En este artículo se usa el módulo Az de PowerShell, que es el módulo de PowerShell que se recomienda para interactuar con Azure. Para empezar a trabajar con el módulo Az de PowerShell, consulte Instalación de Azure PowerShell. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Conexión con Azure

  1. Abra PowerShell y establezca el acceso a su cuenta de Azure mediante la ejecución del comando Connect-AzAccount y establezca el contexto de suscripción con Set-AzContext.

    Connect-AzAccount
    Set-AzContext -subscription <Subscription ID>
    
  2. Cuando vea la ventana de inicio de sesión, escriba sus credenciales. Use el mismo correo electrónico y la misma contraseña que usa para iniciar sesión en el portal de Azure.

Crear un grupo de recursos

Defina variables para un nombre de grupo de recursos único y proporcione una ubicación de una región de Azure de destino para todos los recursos de máquina virtual. A continuación, use New-AzResourceGroup para crear el grupo de recursos. Para simplificar el resto del inicio rápido, los restantes comandos usan este nombre como base de otros nombres de recursos.

$ResourceGroupName = "sqlvm1"
$Location = "East US"
$ResourceGroupParams = @{
   Name = $ResourceGroupName
   Location = $Location
   Tag = @{Owner="SQLDocs-Samples"}
}
New-AzResourceGroup @ResourceGroupParams

Configuración de la red

  1. Use New-AzVirtualNetworkSubnetConfig, New-AzVirtualNetworky New-AzPublicIpAddress para crear una red virtual, una subred y una dirección IP pública. Estos recursos se utilizan para proporcionar conectividad de red a la máquina virtual y conectarse a Internet.

    $SubnetName = $ResourceGroupName + "subnet"
    $VnetName = $ResourceGroupName + "vnet"
    $PipName = $ResourceGroupName + $(Get-Random)
    
    # Create a subnet configuration
    $SubnetConfig = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix 192.168.1.0/24
    
    # Create a virtual network
    $Vnet = New-AzVirtualNetwork -ResourceGroupName $ResourceGroupName -Location $Location `
       -Name $VnetName -AddressPrefix 192.168.0.0/16 -Subnet $SubnetConfig
    
    # Create a public IP address and specify a DNS name
    $Pip = New-AzPublicIpAddress -ResourceGroupName $ResourceGroupName -Location $Location `
       -AllocationMethod Static -IdleTimeoutInMinutes 4 -Name $PipName
    
  2. Use New-AzNetworkSecurityGroup para crear un grupo de seguridad de red después de configurar reglas para permitir conexiones de Escritorio remoto (RDP) y SQL Server con New-AzNetworkSecurityRuleConfig.

    # Rule to allow remote desktop (RDP)
    $NsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name "RDPRule" -Protocol Tcp `
       -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * `
       -DestinationAddressPrefix * -DestinationPortRange 3389 -Access Allow
    
    #Rule to allow SQL Server connections on port 1433
    $NsgRuleSQL = New-AzNetworkSecurityRuleConfig -Name "MSSQLRule"  -Protocol Tcp `
       -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * `
       -DestinationAddressPrefix * -DestinationPortRange 1433 -Access Allow
    
    # Create the network security group
    $NsgName = $ResourceGroupName + "nsg"
    $Nsg = New-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroupName `
       -Location $Location -Name $NsgName `
       -SecurityRules $NsgRuleRDP,$NsgRuleSQL
    
  3. Cree la interfaz de red con New-AzNetworkInterface.

    $InterfaceName = $ResourceGroupName + "int"
    $Interface = New-AzNetworkInterface -Name $InterfaceName `
       -ResourceGroupName $ResourceGroupName -Location $Location `
       -SubnetId $VNet.Subnets[0].Id -PublicIpAddressId $Pip.Id `
       -NetworkSecurityGroupId $Nsg.Id
    

Creación de la máquina virtual con SQL

  1. Defina las credenciales con las que inicia sesión en la máquina virtual. El nombre de usuario es "azureadmin". Asegúrese de cambiar <password> antes de ejecutar el comando.

    # Define a credential object
     $userName = "azureadmin"
     $SecurePassword = ConvertTo-SecureString '<strong password>' `
        -AsPlainText -Force
     $Cred = New-Object System.Management.Automation.PSCredential ($userName, $securePassword)
    
  2. Cree un objeto de configuración de máquina virtual con New-AzVMConfig y, a continuación, cree la máquina virtual con New-AzVM. El comando siguiente crea una máquina virtual de SQL Server 2022 Developer Edition en Windows Server 2022.

    # Create a virtual machine configuration
    $VMName = $ResourceGroupName + "VM"
    $VMConfig = New-AzVMConfig -VMName $VMName -VMSize Standard_DS13_V2 |
       Set-AzVMOperatingSystem -Windows -ComputerName $VMName -Credential $Cred -ProvisionVMAgent -EnableAutoUpdate |
       Set-AzVMSourceImage -PublisherName "MicrosoftSQLServer" -Offer "sql2022-ws2022" -Skus "sqldev-gen2" -Version "latest" |
       Add-AzVMNetworkInterface -Id $Interface.Id
    
    # Create the VM
    New-AzVM -ResourceGroupName $ResourceGroupName -Location $Location -VM $VMConfig
    

    Sugerencia

    Se tarda unos minutos en crearla.

Registro con el proveedor de recursos de máquina virtual de SQL

Para las características de máquina virtual con SQL e integración del portal, debe registrar la extensión Agente de IaaS de SQL.

Para ello, primero registre la suscripción con el proveedor de recursos mediante Register-AzResourceProvider:

# Register the SQL IaaS Agent extension to your subscription
Register-AzResourceProvider -ProviderNamespace Microsoft.SqlVirtualMachine

A continuación, registre la máquina virtual con SQL Server con la extensión Agente de IaaS de SQL mediante New-AzSqlVM:

$License = 'PAYG'

# Register SQL Server VM with the extension
New-AzSqlVM -Name $VMName -ResourceGroupName $ResourceGroupName -Location $Location `
-LicenseType $License

Escritorio remoto en la máquina virtual

  1. Use Get-AzPublicIpAddress para recuperar la dirección IP pública de la nueva máquina virtual.

    Get-AzPublicIpAddress -ResourceGroupName $ResourceGroupName | Select IpAddress
    
  2. Use la dirección IP devuelta como parámetro de línea de comandos a mstsc para iniciar una sesión de Escritorio remoto en la nueva máquina virtual.

    mstsc /v:<publicIpAddress>
    
  3. Cuando se le pidan credenciales, elija introducir las de una cuenta diferente. Escriba el nombre de usuario con una barra diagonal inversa (por ejemplo, \azureadmin) y la contraseña que ha definido anteriormente en esta guía de inicio rápido.

Conectar a SQL Server

  1. Después de iniciar sesión en la sesión de Escritorio remoto, inicie SQL Server Management Studio 2017 desde el menú Inicio.

  2. En el cuadro de diálogo Conectar con el servidor, mantenga los valores predeterminados. El nombre de servidor es el de la máquina virtual. La autenticación se establece en Autenticación de Windows. Seleccione Conectar.

Ya está conectado a SQL Server localmente. Si desea conectarse de forma remota, debe configurar la conectividad desde Azure Portal o manualmente.

Limpieza de recursos

Si no necesita que la máquina virtual se ejecute continuamente, puede detenerla cuando no se esté usando y así evitar cargos innecesarios. El siguiente comando detiene la VM, pero la deja disponible para usarla en el futuro.

Stop-AzVM -Name $VMName -ResourceGroupName $ResourceGroupName

También puede eliminar de forma definitiva todos los recursos asociados a la máquina virtual con el comando Remove-AzResourceGroup. Si lo hace, también se elimina la máquina virtual de forma permanente, así que use este comando con cuidado.

Pasos siguientes

En este inicio rápido, ha creado una máquina virtual de SQL Server 2022 mediante Azure PowerShell. Para más información sobre la migración de los datos a la nueva instancia de SQL Server, consulte el artículo siguiente.