Inicio rápido: Creación de una máquina virtual Linux en Azure con PowerShellQuickstart: Create a Linux virtual machine in Azure with PowerShell

El módulo de Azure PowerShell se usa para crear y administrar recursos de Azure desde la línea de comandos de PowerShell o en scripts.The Azure PowerShell module is used to create and manage Azure resources from the PowerShell command line or in scripts. En esta guía de inicio rápido se muestra cómo usar el módulo de Azure PowerShell para implementar una máquina virtual Linux en Azure.This quickstart shows you how to use the Azure PowerShell module to deploy a Linux virtual machine (VM) in Azure. En esta guía de inicio rápido se usa la imagen de Marketplace de Ubuntu 16.04 LTS de Canonical.This quickstart uses the Ubuntu 16.04 LTS marketplace image from Canonical. Para ver la máquina virtual en acción, conéctese a ella mediante SSH e instale el servidor web NGINX.To see your VM in action, you'll also SSH to the VM and install the NGINX web server.

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.If you don't have an Azure subscription, create a free account before you begin.

Inicio de Azure Cloud ShellLaunch Azure Cloud Shell

Azure Cloud Shell es un shell interactivo gratuito que puede usar para ejecutar los pasos de este artículo.The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. Tiene las herramientas comunes de Azure preinstaladas y configuradas para usarlas en la cuenta.It has common Azure tools preinstalled and configured to use with your account.

Para abrir Cloud Shell, seleccione Pruébelo en la esquina superior derecha de un bloque de código.To open the Cloud Shell, just select Try it from the upper right corner of a code block. Seleccione Copiar para copiar los bloques de código, péguelos en Cloud Shell y, luego, presione Entrar para ejecutarlos.Select Copy to copy the blocks of code, paste it into the Cloud Shell, and press enter to run it.

Creación del par de claves SSHCreate SSH key pair

Necesita un par de claves SSH para completar esta guía de inicio rápido.You need an SSH key pair to complete this quickstart. Si ya tiene un par de claves SSH, puede omitir este paso.If you already have an SSH key pair, you can skip this step.

Abra un shell de Bash y utilice ssh-keygen para crear un par de claves SSH.Open a bash shell and use ssh-keygen to create an SSH key pair. Si no tiene un shell de Bash en la máquina local, puede usar Azure Cloud Shell.If you don't have a bash shell on your local computer, you can use the Azure Cloud Shell.

ssh-keygen -t rsa -b 2048

Para más información sobre cómo crear pares de claves SSH, incluido el uso de PuTTy, consulte Uso de claves SSH con Windows.For more detailed information on how to create SSH key pairs, including the use of PuTTy, see How to use SSH keys with Windows.

Si crea el par de claves SSH mediante Cloud Shell, este se almacenará en una imagen de contenedor de una cuenta de almacenamiento que Cloud Shell crea automáticamente.If you create your SSH key pair using the Cloud Shell, it will be stored in a container image in a storage account that is automatically created by Cloud Shell. No elimine la cuenta de almacenamiento ni el recurso compartido de archivos que contiene hasta que haya recuperado las claves o perderá el acceso a la máquina virtual.Don't delete the storage account, or the files share within it, until after you have retrieved your keys or you will lose access to the VM.

Crear un grupo de recursosCreate a resource group

Cree un grupo de recursos de Azure con New-AzResourceGroup.Create an Azure resource group with New-AzResourceGroup. Un grupo de recursos es un contenedor lógico en el que se implementan y administran los recursos de Azure.A resource group is a logical container into which Azure resources are deployed and managed:

New-AzResourceGroup -Name "myResourceGroup" -Location "EastUS"

Creación de recursos de virtualCreate virtual network resources

Cree una red virtual, una subred, una dirección IP pública.Create a virtual network, subnet, and a public IP address. Estos recursos se utilizan para proporcionar conectividad de red con la máquina virtual y conectarla a Internet:These resources are used to provide network connectivity to the VM and connect it to the internet:

# Create a subnet configuration
$subnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name "mySubnet" `
  -AddressPrefix 192.168.1.0/24

# Create a virtual network
$vnet = New-AzVirtualNetwork `
  -ResourceGroupName "myResourceGroup" `
  -Location "EastUS" `
  -Name "myVNET" `
  -AddressPrefix 192.168.0.0/16 `
  -Subnet $subnetConfig

# Create a public IP address and specify a DNS name
$pip = New-AzPublicIpAddress `
  -ResourceGroupName "myResourceGroup" `
  -Location "EastUS" `
  -AllocationMethod Static `
  -IdleTimeoutInMinutes 4 `
  -Name "mypublicdns$(Get-Random)"

Cree una regla de tráfico y de grupo de seguridad de red de Azure.Create an Azure Network Security Group and traffic rule. El grupo de seguridad de red protege la máquina virtual con reglas de entrada y de salida.The Network Security Group secures the VM with inbound and outbound rules. En el ejemplo siguiente, se crea una regla de entrada para el puerto TCP 22 que permite conexiones SSH.In the following example, an inbound rule is created for TCP port 22 that allows SSH connections. Para permitir el tráfico web de entrada, también se crea una regla de entrada para el puerto TCP 80.To allow incoming web traffic, an inbound rule for TCP port 80 is also created.

# Create an inbound network security group rule for port 22
$nsgRuleSSH = New-AzNetworkSecurityRuleConfig `
  -Name "myNetworkSecurityGroupRuleSSH"  `
  -Protocol "Tcp" `
  -Direction "Inbound" `
  -Priority 1000 `
  -SourceAddressPrefix * `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 22 `
  -Access "Allow"

# Create an inbound network security group rule for port 80
$nsgRuleWeb = New-AzNetworkSecurityRuleConfig `
  -Name "myNetworkSecurityGroupRuleWWW"  `
  -Protocol "Tcp" `
  -Direction "Inbound" `
  -Priority 1001 `
  -SourceAddressPrefix * `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 80 `
  -Access "Allow"

# Create a network security group
$nsg = New-AzNetworkSecurityGroup `
  -ResourceGroupName "myResourceGroup" `
  -Location "EastUS" `
  -Name "myNetworkSecurityGroup" `
  -SecurityRules $nsgRuleSSH,$nsgRuleWeb

Cree una tarjeta de interfaz de red (NIC) virtual con New-AzNetworkInterface.Create a virtual network interface card (NIC) with New-AzNetworkInterface. La NIC virtual conecta la máquina virtual a una subred, un grupo de seguridad de red y una dirección IP pública.The virtual NIC connects the VM to a subnet, Network Security Group, and public IP address.

# Create a virtual network card and associate with public IP address and NSG
$nic = New-AzNetworkInterface `
  -Name "myNic" `
  -ResourceGroupName "myResourceGroup" `
  -Location "EastUS" `
  -SubnetId $vnet.Subnets[0].Id `
  -PublicIpAddressId $pip.Id `
  -NetworkSecurityGroupId $nsg.Id

de una máquina virtualCreate a virtual machine

Para crear una máquina virtual en PowerShell, cree una configuración que tenga valores como, por ejemplo, la imagen que se va a usar, el tamaño y las opciones de autenticación.To create a VM in PowerShell, you create a configuration that has settings like the image to use, size, and authentication options. Después, la configuración se utiliza para crear la máquina virtual.Then the configuration is used to build the VM.

Defina las credenciales de SSH, la información del sistema operativo y el tamaño de máquina virtual.Define the SSH credentials, OS information, and VM size. En este ejemplo, la clave SSH se almacena en ~/.ssh/id_rsa.pub.In this example, the SSH key is stored in ~/.ssh/id_rsa.pub.

# Define a credential object
$securePassword = ConvertTo-SecureString ' ' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ("azureuser", $securePassword)

# Create a virtual machine configuration
$vmConfig = New-AzVMConfig `
  -VMName "myVM" `
  -VMSize "Standard_D1" | `
Set-AzVMOperatingSystem `
  -Linux `
  -ComputerName "myVM" `
  -Credential $cred `
  -DisablePasswordAuthentication | `
Set-AzVMSourceImage `
  -PublisherName "Canonical" `
  -Offer "UbuntuServer" `
  -Skus "16.04-LTS" `
  -Version "latest" | `
Add-AzVMNetworkInterface `
  -Id $nic.Id

# Configure the SSH key
$sshPublicKey = cat ~/.ssh/id_rsa.pub
Add-AzVMSshPublicKey `
  -VM $vmconfig `
  -KeyData $sshPublicKey `
  -Path "/home/azureuser/.ssh/authorized_keys"

Ahora, combine las definiciones de configuración anteriores para crearlas con New-AzVM:Now, combine the previous configuration definitions to create with New-AzVM:

New-AzVM `
  -ResourceGroupName "myResourceGroup" `
  -Location eastus -VM $vmConfig

La implementación de la máquina virtual tardará unos minutos.It will take a few minutes for your VM to be deployed. Cuando finalice la implementación, pase a la siguiente sección.When the deployment is finished, move on to the next section.

Conexión a la máquina virtualConnect to the VM

Cree una conexión SSH con la máquina virtual mediante la dirección IP pública.Create an SSH connection with the VM using the public IP address. Para ver la dirección IP pública de la máquina virtual, use el cmdlet Get-AzPublicIpAddress:To see the public IP address of the VM, use the Get-AzPublicIpAddress cmdlet:

Get-AzPublicIpAddress -ResourceGroupName "myResourceGroup" | Select "IpAddress"

Con el mismo shell de Bash que usó para crear el par de claves SSH (como Azure Cloud Shell o el shell de Bash local) pegue el comando de conexión de SSH en el shell para crear una sesión de SSH.Using the same bash shell you used to create your SSH key pair (like the Azure Cloud Shell or your local bash shell) paste the SSH connection command into the shell to create an SSH session.

ssh azureuser@10.111.12.123

Cuando se le solicite, el nombre de usuario de inicio de sesión es azureuser.When prompted, the login user name is azureuser. Si se usa una frase de contraseña con las claves SSH, debe especificarla cuando se le solicite.If a passphrase is used with your SSH keys, you need to enter that when prompted.

Instalación de NGINXInstall NGINX

Para ver la máquina virtual en acción, instale al servidor de web de NGINX.To see your VM in action, install the NGINX web server. En la sesión de SSH, actualice los orígenes de paquete e instale el paquete NGINX más reciente.From your SSH session, update your package sources and then install the latest NGINX package.

sudo apt-get -y update
sudo apt-get -y install nginx

Cuando haya terminado, escriba exit para salir de la sesión de SSH.When done, type exit to leave the SSH session.

Visualización del servidor web en acciónView the web server in action

Use un explorador web de su elección para ver la página de bienvenida predeterminada de NGINX.Use a web browser of your choice to view the default NGINX welcome page. Escriba la dirección IP pública de la máquina virtual como dirección web.Enter the public IP address of the VM as the web address. La dirección IP pública se encuentra en la página de introducción de la máquina virtual o como parte de la cadena de conexión de SSH que usó anteriormente.The public IP address can be found on the VM overview page or as part of the SSH connection string you used earlier.

Sitio NGINX predeterminado

Limpieza de recursosClean up resources

Cuando ya no se necesiten, puede usar el cmdlet Remove-AzResourceGroup para quitar el grupo de recursos, la VM y todos los recursos relacionados:When no longer needed, you can use the Remove-AzResourceGroup cmdlet to remove the resource group, VM, and all related resources:

Remove-AzResourceGroup -Name "myResourceGroup"

Pasos siguientesNext steps

En esta guía de inicio rápido, implementó una máquina virtual sencilla, creó un grupo de seguridad de red y una regla e instaló un servidor web básico.In this quickstart, you deployed a simple virtual machine, created a Network Security Group and rule, and installed a basic web server. Para más información acerca de las máquinas virtuales de Azure, continúe con el tutorial de máquinas virtuales Linux.To learn more about Azure virtual machines, continue to the tutorial for Linux VMs.