Introducción a Azure PowerShellGet started with Azure PowerShell

Azure PowerShell está diseñado para administrar recursos de Azure desde la línea de comandos y para generar scripts de automatización que funcionan con Azure Resource Manager.Azure PowerShell is designed for managing and administering Azure resources from the command line, and for building automation scripts that work against the Azure Resource Manager. Se puede usar en el explorador con Azure Cloud Shell, o lo puede instalar en el equipo local.You can use it in your browser with Azure Cloud Shell or you install it on your local machine. Este artículo le ayuda a empezar a trabajar con Azure PowerShell y explica los conceptos básicos que hay detrás.This article helps get you started with Azure PowerShell and teaches the core concepts behind it.

Instalar Azure PowershellInstall Azure PowerShell

El primer paso es asegurarse de que está instalada la versión más reciente de Azure PowerShell.The first step is to make sure you have the latest version of the Azure PowerShell installed. Para más información sobre la versión más reciente, consulte las notas de la versión.For information about the latest release, see the release notes.

  1. Instale Azure PowerShell.Install Azure PowerShell.

  2. Para comprobar que la instalación se realizó correctamente, ejecute Get-Module AzureRM -ListAvailable desde la línea de comandos.To verify the installation was successful, run Get-Module AzureRM -ListAvailable from your command line.

Azure Cloud ShellAzure Cloud Shell

La manera más sencilla de empezar es iniciar Cloud Shell.The simplest way to get started is to launch Cloud Shell.

  1. Inicie Cloud Shell en la navegación superior de Azure Portal.Launch Cloud Shell from the top navigation of the Azure portal.

    Icono de Shell

  2. Elija la suscripción que desea utilizar y cree una cuenta de almacenamiento.Choose the subscription you want to use and create a storage account.

    Crear una cuenta de almacenamiento

Una vez que se haya creado el almacenamiento, Cloud Shell abrirá una sesión de PowerShell en el explorador.Once your storage has been created, the Cloud Shell will open a PowerShell session in the browser.

Cloud Shell para PowerShell

También puede instalar Azure PowerShell y usarlo de forma local en una sesión de PowerShell.You can also install Azure PowerShell and use it locally in a PowerShell session.

Inicio de sesión en AzureSign in to Azure

Inicie sesión de forma interactiva:Sign on interactively:

  1. Escriba Connect-AzureRmAccount.Type Connect-AzureRmAccount. Aparecerá un cuadro de diálogo que le pide sus credenciales de Azure.You will get dialog box asking for your Azure credentials. La opción "-Environment" puede permitirle autenticarse en Azure China o Azure Alemania.Option '-Environment' can let you authenticate for Azure China or Azure Germany.

    Por ejemplo, Connect-AzureRmAccount -Environment AzureChinaCloude.g. Connect-AzureRmAccount -Environment AzureChinaCloud

  2. Escriba la dirección de correo electrónico y la contraseña asociadas a su cuenta.Type the email address and password associated with your account. Azure autentica y guarda las credenciales y, luego, cierra la ventana.Azure authenticates and saves the credential information, and then closes the window.

Después de iniciar sesión en una cuenta de Azure, puede usar los cmdlets de Azure PowerShell para acceder y administrar los recursos de la suscripción.Once you have signed in to an Azure account, you can use the Azure PowerShell cmdlets to access and manage the resources in your subscription.

Creación de una máquina virtual Windows con valores predeterminados sencillosCreate a Windows virtual machine using simple defaults

El cmdlet New-AzureRmVM proporciona una sintaxis simplificada que facilita el proceso de creación de una nueva máquina virtual.The New-AzureRmVM cmdlet provides a simplified syntax making it easy to create a new virtual machine. Solo tiene que proporcionar dos valores de parámetro: el nombre de la máquina virtual y un conjunto de credenciales para la cuenta de administrador local en la máquina virtual.There are only two parameter values you must provide: the name of the VM and a set of credentials for the local administrator account on the VM.

En primer lugar, cree el objeto de credenciales.First, create the credential object.

$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
Windows PowerShell credential request.
Enter a username and password for the virtual machine.
User: localAdmin
Password for user localAdmin: *********

Después, cree la máquina virtual.Next, create the VM.

New-AzureRmVM -Name SampleVM -Credential $cred
ResourceGroupName        : SampleVM
Id                       : /subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/SampleVM/providers/Microsoft.Compute/virtualMachines/SampleVM
VmId                     : 43f6275d-ce50-49c8-a831-5d5974006e63
Name                     : SampleVM
Type                     : Microsoft.Compute/virtualMachines
Location                 : eastus
Tags                     : {}
HardwareProfile          : {VmSize}
NetworkProfile           : {NetworkInterfaces}
OSProfile                : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState        : Succeeded
StorageProfile           : {ImageReference, OsDisk, DataDisks}
FullyQualifiedDomainName : samplevm-2c0867.eastus.cloudapp.azure.com

Eso es fácil.That was easy. Sin embargo, quizás se pregunte qué más se crea y cómo se configura la máquina virtual.But, you may wonder what else is created and how is the VM configured. Primero, echemos un vistazo a nuestro grupos de recursos.First, let's look at our resource groups.

Get-AzureRmResourceGroup | Select-Object ResourceGroupName,Location
ResourceGroupName          Location
-----------------          --------
cloud-shell-storage-westus westus
SampleVM                   eastus

El grupo de recursos cloud-shell-storage-westus se crea la primera vez que se usa Cloud Shell.The cloud-shell-storage-westus resource group is created the first time you use the Cloud Shell. El grupo de recursos SampleVM se crea con el cmdlet New-AzureRmVM.The SampleVM resource group was created by the New-AzureRmVM cmdlet.

Ahora, ¿qué otros recursos se crearon en este nuevo grupo de recursos?Now, what other resources were created in this new resource group?

Get-AzureRmResource |
  Where ResourceGroupName -eq SampleVM |
    Select-Object ResourceGroupName,Location,ResourceType,Name
ResourceGroupName          Location ResourceType                            Name
-----------------          -------- ------------                            ----
SAMPLEVM                   eastus   Microsoft.Compute/disks                 SampleVM_OsDisk_1_9b286c54b168457fa1f8c47...
SampleVM                   eastus   Microsoft.Compute/virtualMachines       SampleVM
SampleVM                   eastus   Microsoft.Network/networkInterfaces     SampleVM
SampleVM                   eastus   Microsoft.Network/networkSecurityGroups SampleVM
SampleVM                   eastus   Microsoft.Network/publicIPAddresses     SampleVM
SampleVM                   eastus   Microsoft.Network/virtualNetworks       SampleVM

Vamos a obtener más información acerca de la máquina virtual.Let's get some more details about the VM. En este ejemplo se muestra cómo recuperar información acerca de la imagen de sistema operativo utilizada para crear la máquina virtual.This examples shows how to retrieve information about the OS Image used to create the VM.

Get-AzureRmVM -Name SampleVM -ResourceGroupName SampleVM |
  Select-Object -ExpandProperty StorageProfile |
    Select-Object -ExpandProperty ImageReference
Publisher : MicrosoftWindowsServer
Offer     : WindowsServer
Sku       : 2016-Datacenter
Version   : latest
Id        :

Creación de una máquina virtual Linux completamente configuradaCreate a fully configured Linux Virtual Machine

En el ejemplo anterior, se utilizaban los valores de parámetro predeterminados y la sintaxis simplificada para crear una máquina virtual Windows.The previous example used the simplified syntax and default parameter values to create a Windows virtual machine. En este ejemplo, proporcionamos los valores de todas las opciones de la máquina virtual.In this example, we provide values for all options of the virtual machine.

Crear un grupo de recursosCreate a resource group

Para este ejemplo, queremos crear un grupo de recursos.For this example we want to create a Resource Group. En Azure, los grupos de recursos proporcionan una manera de administrar varios recursos que se desean agrupar lógicamente.Resource Groups in Azure provide a way to manage multiple resources that you want to logically group together. Por ejemplo, puede crear un grupo de recursos para una aplicación o un proyecto, y agregar una máquina virtual, una base de datos y un servicio de CDN en él.For example, you might create a Resource Group for an application or project and add a virtual machine, a database and a CDN service within it.

Vamos a crear un grupo de recursos denominado "MyResourceGroup" en la región europaoccidental de Azure.Let's create a resource group named "MyResourceGroup" in the westeurope region of Azure. Para ello, escriba el siguiente comando:To do so type the following command:

New-AzureRmResourceGroup -Name 'myResourceGroup' -Location 'westeurope'
ResourceGroupName : myResourceGroup
Location          : westeurope
ProvisioningState : Succeeded
Tags              :
ResourceId        : /subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/myResourceGroup

Este nuevo grupo de recursos se utilizará para contener todos los recursos necesarios para la nueva máquina virtual que creemos.This new resource group will be used to contain all of the resources needed for the new VM we create. Para crear una nueva máquina virtual Linux primero debemos crear los otros recursos necesarios y asignarles a una configuración.To create a new Linux VM we must first create the other required resources and assign them to a configuration. A continuación, podemos usar esa configuración para crear la máquina virtual.Then we can use that configuration to create the VM. Además, debe haber una clave pública SSH llamada "id_rsa.pub" en el directorio .ssh del perfil de usuario.Also, you will need to have an SSH public key named id_rsa.pub in the .ssh directory of your user profile.

Creación de los recursos de red necesariosCreate the required network resources

Primero se debe crear una configuración de subred que se utilizará durante el proceso de creación de la red virtual.First we need to create a subnet configuration to be used with the virtual network creation process. También se creará una dirección IP pública para que podamos conectarnos a esta máquina virtual.We also create a public IP address so that we can connect to this VM. Se creará un grupo de seguridad de red para proteger el acceso a la dirección pública.We create a network security group to secure access to the public address. Por último, se creará la NIC virtual con todos los recursos anteriores.Finally we create the virtual NIC using all of the previous resources.

# Variables for common values
$resourceGroup = "myResourceGroup"
$location = "westeurope"
$vmName = "myLinuxVM"

# Definer user name and blank password
$securePassword = ConvertTo-SecureString 'azurepassword' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ("azureuser", $securePassword)

# Create a subnet configuration
$subnetConfig = New-AzureRmVirtualNetworkSubnetConfig -Name mySubnet2 -AddressPrefix 192.168.2.0/24

# Create a virtual network
$vnet = New-AzureRmVirtualNetwork -ResourceGroupName $resourceGroup -Location $location `
  -Name MYvNET2 -AddressPrefix 192.168.0.0/16 -Subnet $subnetConfig

# Create a public IP address and specify a DNS name
$publicIp = New-AzureRmPublicIpAddress -ResourceGroupName $resourceGroup -Location $location `
  -Name "mypublicdns$(Get-Random)" -AllocationMethod Static -IdleTimeoutInMinutes 4
$publicIp | Select-Object Name,IpAddress

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

# Create a network security group
$nsg = New-AzureRmNetworkSecurityGroup -ResourceGroupName $resourceGroup -Location $location `
  -Name myNetworkSecurityGroup2 -SecurityRules $nsgRuleSSH

# Create a virtual network card and associate with public IP address and NSG
$nic = New-AzureRmNetworkInterface -Name myNic2 -ResourceGroupName $resourceGroup -Location $location `
  -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $publicIp.Id -NetworkSecurityGroupId $nsg.Id

Creación de la configuración de máquina virtualCreate the VM configuration

Ahora que tenemos los recursos necesarios, podemos crear el objeto de configuración de máquina virtual.Now that we have the required resources we can create the VM configuration object.

# Create a virtual machine configuration
$vmConfig = New-AzureRmVMConfig -VMName $vmName -VMSize Standard_D1 |
  Set-AzureRmVMOperatingSystem -Linux -ComputerName $vmName -Credential $cred -DisablePasswordAuthentication |
  Set-AzureRmVMSourceImage -PublisherName Canonical -Offer UbuntuServer -Skus 14.04.2-LTS -Version latest |
  Add-AzureRmVMNetworkInterface -Id $nic.Id

# Configure SSH Keys
$sshPublicKey = Get-Content -Raw "$env:USERPROFILE\.ssh\id_rsa.pub"
Add-AzureRmVMSshPublicKey -VM $vmConfig -KeyData $sshPublicKey -Path "/home/azureuser/.ssh/authorized_keys"

Creación de la máquina virtualCreate the virtual machine

Ahora podemos crear la máquina virtual con el objeto de configuración de máquina virtual.Now we can create the VM using the VM configuration object.

New-AzureRmVM -ResourceGroupName $resourceGroup -Location $location -VM $vmConfig

Una vez creada la máquina virtual, puede iniciar sesión en la nueva máquina virtual Linux mediante SSH con la dirección IP pública de la máquina virtual que ha creado:Now that the VM has been created, you can log on to your new Linux VM using SSH with the public IP address of the VM you created:

ssh xx.xxx.xxx.xxx
Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.19.0-65-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Sun Feb 19 00:32:28 UTC 2017

  System load: 0.31              Memory usage: 3%   Processes:       89
  Usage of /:  39.6% of 1.94GB   Swap usage:   0%   Users logged in: 0

  Graph this data and manage this system at:
    https://landscape.canonical.com/

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

0 packages can be updated.
0 updates are security updates.



The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

my-login@MyLinuxVM:../../..$

Creación de otros recursos en AzureCreating other resources in Azure

Ya se ha visto cómo se crean un grupo de recursos, una máquina virtual Linux y una VM con Windows Server.We've now walked through how to create a Resource Group, a Linux VM, and a Windows Server VM. Sin embargo, también se pueden crear muchos otros tipos de recursos de Azure.You can create many other types of Azure resources as well.

Por ejemplo, para crear un equilibrador de carga de red de Azure que luego se pueda asociar con las máquinas virtuales recién creadas, se puede utilizar el siguiente comando create:For example, to create an Azure Network Load Balancer that we could then associate with our newly created VMs, we can use the following create command:

New-AzureRmLoadBalancer -Name MyLoadBalancer -ResourceGroupName myResourceGroup -Location westeurope

También se puede crear una red virtual privada nueva (que se suele denominar "Virtual Network" en Azure) para nuestra infraestructura con el siguiente comando:We could also create a new private Virtual Network (commonly referred to as a "VNet" within Azure) for our infrastructure using the following command:

$subnetConfig = New-AzureRmVirtualNetworkSubnetConfig -Name mySubnet2 -AddressPrefix 10.0.0.0/16
$vnet = New-AzureRmVirtualNetwork -ResourceGroupName myResourceGroup -Location westeurope `
  -Name MYvNET3 -AddressPrefix 10.0.0.0/16 -Subnet $subnetConfig

Lo que hace que tanto Azure como Azure PowerShell sean muy eficaces, es que se pueden usar no solo para obtener una infraestructura en la nube, sino también para crear servicios de plataforma administrados.What makes Azure and the Azure PowerShell powerful is that we can use it not just to get cloud-based infrastructure but also to create managed platform services. Los servicios de plataforma administrados también se pueden combinar con una infraestructura para compilar soluciones aún más eficaces.The managed platform services can also be combined with infrastructure to build even more powerful solutions.

Por ejemplo, Azure PowerShell se puede utilizar para crear una instancia de Azure App Service.For example, you can use the Azure PowerShell to create an Azure AppService. Azure App Service es un servicio de plataforma administrado que proporciona una manera excelente de hospedar aplicaciones web sin tener que preocuparse de la infraestructura.Azure AppService is a managed platform service that provides a great way to host web apps without having to worry about infrastructure. Después de crear la instancia de Azure App Service, se pueden crear dos nuevas instancias de Azure Web Apps en App Service mediante los siguientes comandos:After creating the Azure AppService, you can create two new Azure Web Apps within the AppService using the following commands:

# Create an Azure AppService that we can host any number of web apps within
New-AzureRmAppServicePlan -Name MyAppServicePlan -Tier Basic -NumberofWorkers 2 -WorkerSize Small -ResourceGroupName myResourceGroup -Location westeurope

# Create Two Web Apps within the AppService (note: name param must be a unique DNS entry)
New-AzureRmWebApp -Name MyWebApp43432 -AppServicePlan MyAppServicePlan -ResourceGroupName myResourceGroup -Location westeurope
New-AzureRmWebApp -Name MyWebApp43433 -AppServicePlan MyAppServicePlan -ResourceGroupName myResourceGroup -Location westeurope

Lista de los recursos implementadosListing deployed resources

Puede usar el cmdlet Get-AzureRmResource para enumerar los recursos que se ejecutan en Azure.You can use the Get-AzureRmResource cmdlet to list the resources running in Azure. En el ejemplo siguiente se muestran los recursos que acabamos de crear en el nuevo grupo de recursos.The following example shows the resources we just created in the new resource group.

Get-AzureRmResource |
  Where-Object ResourceGroupName -eq myResourceGroup |
    Select-Object Name,Location,ResourceType
Name                                                  Location   ResourceType
----                                                  --------   ------------
myLinuxVM_OsDisk_1_36ca038791f642ba91270879088c249a   westeurope Microsoft.Compute/disks
myWindowsVM_OsDisk_1_f627e6e2bb454c72897d72e9632adf9a westeurope Microsoft.Compute/disks
myLinuxVM                                             westeurope Microsoft.Compute/virtualMachines
myWindowsVM                                           westeurope Microsoft.Compute/virtualMachines
myWindowsVM/BGInfo                                    westeurope Microsoft.Compute/virtualMachines/extensions
myNic1                                                westeurope Microsoft.Network/networkInterfaces
myNic2                                                westeurope Microsoft.Network/networkInterfaces
myNetworkSecurityGroup1                               westeurope Microsoft.Network/networkSecurityGroups
myNetworkSecurityGroup2                               westeurope Microsoft.Network/networkSecurityGroups
mypublicdns245369171                                  westeurope Microsoft.Network/publicIPAddresses
mypublicdns779537141                                  westeurope Microsoft.Network/publicIPAddresses
MYvNET1                                               westeurope Microsoft.Network/virtualNetworks
MYvNET2                                               westeurope Microsoft.Network/virtualNetworks
micromyresomywi032907510                              westeurope Microsoft.Storage/storageAccounts

Eliminación de recursosDeleting resources

Para limpiar su cuenta de Azure, debe quitar los recursos que se han creado en este ejemplo.To clean up your Azure account, you want to remove the resources we created in this example. Puede usar los cmdlets Remove-AzureRm* para eliminar los recursos que ya no necesita.You can use the Remove-AzureRm* cmdlets to delete the resources you no longer need. Para quitar la máquina virtual Windows que se creó, use el siguiente comando:To remove the Windows VM we created, using the following command:

Remove-AzureRmVM -Name myWindowsVM -ResourceGroupName myResourceGroup

Se le pedirá que confirme que desea eliminar el recurso.You will be prompted to confirm that you want to remove the resource.

Confirm
Are you sure you want to remove resource group 'myResourceGroup'
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): Y

Puede también utilizar la eliminación de muchos recursos al mismo tiempo.You can also use the delete many resources at one time. Por ejemplo, el siguiente comando permite eliminar todo el grupo de recursos "MyResourceGroup" que hemos usado en todos los ejemplos de este tutorial de introducción.For example, the following command deletes all the resource group "MyResourceGroup" that we've used for all the samples in this Get Started tutorial. Esto eliminará el grupo de recursos y todos los recursos que contiene.This removes the resource group and all of the resources in it.

Remove-AzureRmResourceGroup -Name myResourceGroup
Confirm
Are you sure you want to remove resource group 'myResourceGroup'
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): Y

Este proceso puede tardar varios minutos en completarse.This can take several minutes to complete.

EjemplosGet samples

Para más información sobre cómo usar Azure PowerShell, consulte nuestros scripts más comunes para máquinas virtuales Linux, máquinas virtuales Windows, Web Apps y SQL Database.To learn more about ways to use the Azure PowerShell, check out our most common scripts for Linux VMs, Windows VMs, Web Apps, and SQL Databases.

Pasos siguientesNext steps