Exportar (0) Imprimir
Expandir todo

Crear implementación de máquina virtual

Actualizado: mayo de 2014

La operación Create Virtual Machine Deployment crea una implementación y, después, una máquina virtual en la implementación según la configuración especificada.

La solicitud Create Virtual Machine Deployment se puede especificar como sigue. Reemplace <subscription-id> por el identificador de la suscripción y <cloudservice-name> por el nombre del servicio en la nube.

 

Método URI de solicitud

POST

https://management.core.windows.net/<subscription-id>/services/hostedservices/<cloudservice-name>/deployments

Debe asegurarse de que la solicitud que se realice al servicio de administración sea segura. Para obtener detalles adicionales, vea Autenticar solicitudes de administración del servicio.

Ninguno.

La tabla siguiente describe los encabezados de solicitud.

 

Encabezado de solicitud Descripción

x-ms-version

Requerido. Especifica la versión de la operación que se utiliza para esta solicitud. Este encabezado debería establecerse en 01.03.12 o posterior. Para obtener más información acerca de los encabezados de control de versiones, vea Control de versiones de la administración de servicios.

El formato del cuerpo de la solicitud es el siguiente:


<Deployment xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
  <Name>name-of-deployment</Name>
  <DeploymentSlot>deployment-environment</DeploymentSlot>
  <Label>identifier-of-deployment</Label>      
  <RoleList>
    <Role>
      <RoleName>name-of-the-virtual-machine</RoleName>
      <RoleType>PersistentVMRole</RoleType>
      <ConfigurationSets>
        <ConfigurationSet i:type="WindowsProvisioningConfigurationSet">
          <ConfigurationSetType>WindowsProvisioningConfiguration</ConfigurationSetType>
          <ComputerName>name-of-computer</ComputerName>
          <AdminPassword>administrator-password</AdminPassword>
          <EnableAutomaticUpdates>enable-updates</EnableAutomaticUpdates>  
          <TimeZone>time-zone</TimeZone>
          <DomainJoin>
            <Credentials>
              <Domain>domain-to-join</Domain>
              <Username>user-name-in-the-domain</Username>
              <Password>password-for-the-user-name</Password>
            </Credentials>
            <JoinDomain>domain-to-join</JoinDomain>
            <MachineObjectOU>distinguished-name-of-the-ou</MachineObjectOU>
          </DomainJoin>
          <StoredCertificateSettings>
            <CertificateSetting>
              <StoreLocation>LocalMachine</StoreLocation>
              <StoreName>name-of-store-on-the-machine</StoreName>
              <Thumbprint>certificate-thumbprint</Thumbprint>
            </CertificateSetting>
          </StoredCertificateSettings>
          <WinRM>
            <Listeners>
              <Listener>
                <Protocol>listener-protocol</Protocol>
              </Listener>
              <Listener>
                <CertificateThumbprint>certificate-thumbprint</CertificateThumbprint>
                <Protocol>listener-protocol</Protocol>
              </Listener>
            </Listeners>
          </WinRM>
          <AdminUsername>name-of-administrator-account</AdminUsername>
          <CustomData>base-64-encoded-data</CustomData>
          <AdditionalUnattendContent>
            <Passes>
              <UnattendPass>
                <PassName>name-of-pass</PassName>
                <Components>
                  <ComponentName>name-of-component</ComponentName>
                  <ComponentSettings>
                    <ComponentSetting>
                      <SettingName>name-of-setting</SettingName>
                      <Content>base-64-encoded-XML-content</Content>
                    </ComponentSetting>
                  </ComponentSettings>
                </Components>
              </UnattendedPass>
            </Passes>
          </AdditionalUnattendedContent>
        </ConfigurationSet>
        <ConfigurationSet i:type="LinuxProvisioningConfigurationSet">
          <ConfigurationSetType>LinuxProvisioningConfiguration</ConfigurationSetType>
          <HostName>host-name-for-the-virtual-machine</HostName>
          <UserName>new-user-name</UserName> 
          <UserPassword>password-for-the-new-user</UserPassword> 
          <DisableSshPasswordAuthentication>password-authentication</DisableSshPasswordAuthentication>           
          <SSH>
            <PublicKeys>
              <PublicKey>
                <FingerPrint>certificate-fingerprint</FingerPrint>
                <Path>SSH-public-key-storage-location</Path>     
              </PublicKey>
            </PublicKeys>
            <KeyPairs>
              <KeyPair>
                <FingerPrint>certificate-fingerprint</FinguerPrint>
                <Path>SSH-public-key-storage-location</Path>
              </KeyPair>
            </KeyPairs>
          </SSH>
          <CustomData>base-64-encoded-data</CustomData>
        </ConfigurationSet>        
        <ConfigurationSet> 
          <ConfigurationSetType>NetworkConfiguration</ConfigurationSetType>
          <InputEndpoints>
            <InputEndpoint>
              <LoadBalancedEndpointSetName>name-of-load-balanced-set</LoadBalancedEndpointSetName>
              <LocalPort>local-port-number</LocalPort>
              <Name>name-of-endpoint</Name>
              <Port>external-port-number</Port>
              <LoadBalancerProbe>
                <Path>path-of-probe</Path>
                <Port>port-assigned-to-probe</Port>
                <Protocol>probe-protocol</Protocol>
                <IntervalInSeconds>interval-of-probe</IntervalInSeconds>
                <TimeoutInSeconds>timeout-for-probe</TimeoutInSeconds>
              </LoadBalancerProbe>
              <LoadBalancerName>name-of-internal-loadbalancer</LoadBalancerName>
              <Protocol>endpoint-protocol</Protocol>        
              <EnableDirectServerReturn>enable-direct-server-return</EnableDirectServerReturn>       
              <EndpointACL>
                <Rules>
                  <Rule>
                    <Order>priority-of-the-rule</Order>
                    <Action>permit-rule</Action>
                    <RemoteSubnet>subnet-of-the-rule</RemoteSubnet>
                    <Description>description-of-the-rule</Description>
                  </Rule>
                </Rules>
              </EndpointACL>
            </InputEndpoint>
          </InputEndpoints>
          <SubnetNames>
            <SubnetName>name-of-subnet</SubnetName>
          </SubnetNames> 
          <StaticVirtualNetworkIPAddress>ip-address</StaticVirtualNetworkIPAddress>
          <PublicIPs>
            <PublicIP>
              <Name>name-of-public-ip</Name>
            <PublicIP>
          <PublicIPs>        
        </ConfigurationSet>
      </ConfigurationSets>
      <ResourceExtensionReferences>
        <ResourceExtensionReference>
          <ReferenceName>name-of-reference</ReferenceName>
          <Publisher>name-of-publisher</Publisher>
          <Name>name-of-extension</Name>
          <Version>version-of-extension</Version>
          <ResourceExtensionParameterValues>
            <ResourceExtensionParameterValue>
              <Key>name-of-parameter-key</Key>
              <Value>parameter-value</Value>
              <Type>type-of-parameter</Type>
            </ResourceExtensionParameterValue>
          </ResourceExtensionParameterValues>
          <State>state-of-resource</State>
        </ResourceExtensionReference>
      </ResourceExtensionReferences>
      <VMImageName>name-of-vm-image</VMImageName>
      <MediaLocation>path-to-vhd</MediaLocation>
      <AvailabilitySetName>name-of-availability-set</AvailabilitySetName>
      <DataVirtualHardDisks>
        <DataVirtualHardDisk>
          <HostCaching>caching-mode</HostCaching> 
          <DiskLabel>label-of-data-disk</DiskLabel>            
          <DiskName>name-of-disk</DiskName>
          <Lun>logical-unit-number</Lun>
          <LogicalDiskSizeInGB>size-in-gb-of-data-disk</LogicalDiskSizeInGB>            
          <MediaLink>path-to-vhd</MediaLink>
        </DataVirtualHardDisk>
      </DataVirtualHardDisks>
      <OSVirtualHardDisk>
        <HostCaching>caching-mode</HostCaching>    
        <DiskLabel>label-of-operating-system-disk</DiskLabel>
        <DiskName>name-of-disk</DiskName>                    
        <MediaLink>path-to-vhd</MediaLink>
        <SourceImageName>name-of-source-image</SourceImageName>
        <RemoteSourceImageLink>path-to-source-image</RemoteSourceImageLink>
        <OS>operating-system-of-image</OS>
      </OSVirtualHardDisk>      
      <RoleSize>size-of-virtual-machine</RoleSize>
      <ProvisionGuestAgent>install-an-agent</ProvisionGuestAgent>
    </Role>
  </RoleList>
  <VirtualNetworkName>name-of-virtual-network</VirtualNetworkName>
  <Dns>
    <DnsServers>
      <DnsServer>
        <Name>dns-name</Name>
        <Address>dns-ip-address</Address>
      </DnsServer>
    </DnsServers>
  </Dns>
  <ReservedIPName>name-of-reserved-ip</ReservedIPName>
  <LoadBalancers>
    <LoadBalancer>
      <Name>name-of-internal-load-balancer</Name>
      <FrontendIpConfiguration>
        <Type>type-of-ip-address</Type>
        <SubnetName>name-of-subnet</SubnetName>
        <StaticVirtualNetworkIPAddress>static-ip-address</StaticVirtualNetworkIPAddress>
      </FrontendIpConfiguration>
    </LoadBalancer>
  </LoadBalancers>
</Deployment>

En la tabla siguiente se describen los elementos del cuerpo de la solicitud.

 

Nombre del elemento Descripción

Nombre

Requerido. Especifica un nombre para la implementación. El nombre de la implementación debe ser único entre otras implementaciones para servicio en la nube.

DeploymentSlot

Requerido. Especifica el entorno en el que la máquina virtual se va a implementar. El único valor admitido es Production.

Etiqueta

Requerido. Especifica un identificador para la implementación. La etiqueta puede tener una longitud máxima de 100 caracteres. La etiqueta se puede usar con fines de seguimiento.

RoleList

Requerido. Contiene información acerca de las máquinas virtuales que se van a implementar.

VirtualNetworkName

Opcional. Especifica el nombre de una red virtual existente a la que pertenece la implementación.

Las redes virtuales se crean llamando a la operación Establecer configuración de red.

Dns

Opcional. Contiene una lista de servidores DNS para asociar a la máquina virtual.

ReservedIPName

Opcional. Especifica el nombre de una dirección IP reservada que se asignará a la implementación. Debes ejecutar Create Reserved IP Address antes de poder asignar la dirección a la implementación mediante este elemento.

El elemento ReservedIPName solamente se encuentra disponible si utiliza la versión 01.05.14 o versiones posteriores.

LoadBalancers

Opcional. Contiene una lista de equilibradores de carga internos que se pueden asignar a extremos de entrada.

El elemento LoadBalancers solamente se encuentra disponible si utiliza la versión 01.05.14 o versiones posteriores.

Contiene información acerca de las máquinas virtuales que se van a implementar.

 

Nombre del elemento Descripción

Rol

Requerido. Contiene los conjuntos de configuración que se utilizan para crear las máquinas virtuales.

Contiene los conjuntos de configuración que se utilizan para crear las máquinas virtuales.

 

Nombre del elemento Descripción

RoleName

Requerido. Especifica el nombre de la máquina virtual.

RoleType

Requerido. Especifica el tipo de rol que se va a utilizar. Para las máquinas virtuales, debe ser PersistentVMRole.

ConfigurationSets

Opcional. Contiene una colección de conjuntos de configuración que definen la configuración de la aplicación y del sistema.

ResourceExtensionReferences

Opcional. Contiene una colección de extensiones de recursos que se van a instalar en la máquina virtual. Este elemento se usa si ProvisionGuestAgent se establece en true.

El elemento ResourceExtensionReferences solamente se encuentra disponible si utiliza la versión 01.11.13 o versiones posteriores.

VMImageName

Opcional. Especifica el nombre de la imagen de VM que se va a usar para crear la máquina virtual. Si se usa este elemento, no se usa el elemento ConfigurationSets. Para obtener más información, vea Capturar imagen de VM.

El elemento VMImageName solamente se encuentra disponible si utiliza la versión 01.02.14 o versiones posteriores.

MediaLocation

Requerido si la máquina virtual se crea a partir de una imagen de máquina virtual publicada. Especifica la ubicación del archivo VHD que se crea cuando VMImageName especifica una imagen de máquina virtual.

El elemento MediaLocation solamente se encuentra disponible si utiliza la versión 01.05.14 o versiones posteriores.

AvailabilitySetName

Opcional. Especifica el nombre de una colección de máquinas virtuales. Las máquinas virtuales especificadas en el mismo conjunto de disponibilidad establecido se asignan a varios nodos para maximizar la disponibilidad. Para obtener más información sobre la disponibilidad de los conjuntos de disponibilidad, vea Administrar la disponibilidad de las máquinas virtuales.

DataVirtualHardDisks

Opcional. Contiene los parámetros que se usan para agregar un disco de datos a una máquina virtual. Si va a crear una máquina virtual mediante una imagen de VM, no se usa este elemento. Para obtener más información sobre los discos de datos, vea Administrar discos e imágenes.

OSVirtualHardDisk

Opcional. Contiene los parámetros utilizados para crear el disco del sistema operativo para una máquina virtual. Si va a crear una máquina virtual mediante una imagen de VM, no se usa este elemento.

RoleSize

Opcional. Especifica el tamaño de la máquina virtual. El tamaño predeterminado es Pequeño. Para obtener más información acerca de los tamaños de las máquinas virtuales, vea Tamaños de máquina virtual y servicio en la nube de Azure.

ProvisionGuestAgent

Opcional. Indica si el agente de VM está instalado en la máquina virtual. Para ejecutar una extensión de recursos en una máquina virtual, este servicio debe estar instalado.

Los valores posibles son:

  • true

  • false

Contiene una colección de conjuntos de configuración que especifican valores del sistema y de la configuración de la aplicación.

 

Nombre del elemento Descripción

ConfigurationSet

Requerido. Especifica los elementos de configuración de la máquina virtual. El atributo type es necesario para impedir que la contraseña de administrador se escriba en el archivo de historial de la operación.

ConfigurationSetType

Requerido. Para crear una máquina virtual, debe especificar uno de los siguientes conjuntos de configuración:

  • WindowsProvisioningConfiguration

  • LinuxProvisioningConfiguration

Opcional. Si lo desea, puede especificar un conjunto de NetworkConfiguration que contiene los metadatos necesarios para crear la configuración de la red virtual específica para una máquina virtual.

nombreDeEquipo

Opcional en WindowsProvisioningConfiguration. Especifica un nombre de equipo para la máquina virtual. Si no especifica un nombre de equipo, se asigna uno que es una combinación del nombre de implementación, el nombre de rol y el número de identificación. Los nombres de equipo deben tener entre 1 y 15 caracteres.

AdminPassword

Opcional en WindowsProvisioningConfiguration. Especifica la contraseña que se usará para una cuenta de administrador en la máquina virtual que se está creando. Si va a crear una máquina virtual mediante una imagen, debe especificar un nombre para una cuenta de administrador que se vaya a crear en la máquina usando el elemento AdminUsername. Debe usar el elemento AdminPassword para especificar la contraseña de la cuenta de administrador que se está creando. Si va a crear una máquina virtual mediante un disco especializado existente, no se usa este elemento porque la cuenta ya debe existir en el disco.

EnableAutomaticUpdates

Opcional en WindowsProvisioningConfiguration. Especifica si las actualizaciones automáticas están habilitadas para la máquina virtual.

Los valores posibles son:

  • true

  • false

El valor predeterminado es true.

TimeZone

Opcional en WindowsProvisioningConfiguration. Especifica una zona horaria para máquina virtual.

Para obtener una lista completa de las entradas de zona horaria, puede:

  • Consulte los valores enumerados en la entrada del Registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones.

  • Puede utilizar la herramienta de línea de comandos de tzutil para mostrar la hora válida.

DomainJoin

Opcional en WindowsProvisioningConfiguration. Contiene propiedades que definen un dominio en el que la máquina virtual se combinará.

StoredCertificateSettings

Opcional en WindowsProvisioningConfiguration. Contiene una lista de certificados de servicio que se proporcionará a la nueva máquina virtual.

WinRM

Opcional en WindowsProvisioningConfiguration. Contiene las opciones de configuración para el servicio Administración remota de Windows en la máquina virtual. De este modo se habilita Windows PowerShell.

El elemento WinRM solamente se encuentra disponible si utiliza la versión 01.03.13 o versiones posteriores.

AdminUsername

Opcional en WindowsProvisioningConfiguration. Especifica el nombre de la cuenta de administrador que se crea para acceder a la máquina virtual. Si va a crear una máquina virtual mediante una imagen, debe especificar un nombre para una cuenta de administrador que se vaya a crear usando este elemento. Debe usar el elemento AdminPassword para especificar la contraseña de la cuenta de administrador que se está creando. Si va a crear una máquina virtual mediante un disco especializado existente, no se usa este elemento porque la cuenta ya debe existir en el disco.

CustomData

Opcional en WindowsProvisioningConfiguration. Especifica una cadena codificada en base 64 de datos personalizados. La cadena codificada en base 64 se descodifica en una matriz binaria que se guarda como un archivo en la máquina virtual. La longitud máxima de la matriz binaria es de 65535 bytes. El archivo se guarda en %SYSTEMDRIVE%\AzureData\CustomData.bin. Si el archivo existe, se sobrescribe. La seguridad del directorio se establece en Sistema:Control total y Administradores:Control total.

El elemento CustomData solamente se encuentra disponible si utiliza la versión 01.10.13 o versiones posteriores.

AdditionalUnattendContent

Opcional. Especifica información adicional con formato XML codificado en base 64 que se puede incluir en el archivo Unattend.xml, usado por el programa de instalación de Windows. Para obtener más información, consulta Información general sobre los archivos de respuesta.

El elemento AdditionalUnattendContent solamente se encuentra disponible si utiliza la versión 01.04.14 o versiones posteriores.

HostName

Requerido. en LinuxProvisioningConfiguration. Especifica un nombre de host para máquina virtual. Los nombres de host deben tener entre 1 y 64 caracteres.

UserName

Requerido. en LinuxProvisioningConfiguration. Especifica el nombre de una cuenta de usuario que se creará en el grupo sudoer de la máquina virtual. Los nombres de cuentas de usuario deben tener entre 1 y 32 caracteres.

UserPassword

Requerido. en LinuxProvisioningConfiguration. Especifica la contraseña de la cuenta de usuario. Las contraseñas deben tener entre 6 y 72 caracteres.

DisableSshPasswordAuthentication

Opcional en LinuxProvisioningConfiguration. Especifica si la autenticación de contraseña SSH está deshabilitada. De forma predeterminada, este valor está establecido en true.

Los valores posibles son:

  • true

  • false

El valor predeterminado es true.

SSH

Opcional en LinuxProvisioningConfiguration. Especifica las claves públicas SSH y los pares de clave que usar en la máquina virtual.

CustomData

Opcional en LinuxProvisioningConfiguration. Especifica una cadena codificada en base 64 de datos personalizados. La cadena codificada en Base64 se encuentra en el archivo ovf-env.xml en el ISO de la máquina virtual. El agente Linux de Azure copia el archivo en /var/lib/waagent/ovf-env.xml. El agente Linux de Azure también colocará los datos codificados en Base64 en /var/lib/waagent/CustomData durante el aprovisionamiento. La longitud máxima de la matriz binaria es de 65535 bytes.

El elemento CustomData solamente se encuentra disponible si utiliza la versión 01.10.13 o versiones posteriores.

InputEndpoints

Opcional en NetworkConfiguration. Contiene una colección de extremos externos para la máquina virtual.

SubnetNames

Requerido si se especifica StaticVirtualNetworkIPAddress; de lo contrario, opcional en NetworkConfiguration. Contiene una lista de subredes a las que la máquina virtual pertenecerá.

StaticVirtualNetworkIPAddress

Opcional. Especifica la dirección IP interna para la máquina virtual en una red virtual. Si especifica este elemento, también debe especificar el elemento SubnetNames con solo una subred definida. La dirección IP especificada en el elemento debe pertenecer a la subred que se define en SubnetNames y no debe ser ninguna de las cuatro primeras direcciones IP ni la última dirección IP de la subred. No se admite implementar roles web o roles de trabajo en una subred que tiene máquinas virtuales donde se ha definido StaticVirtualNetworkIPAddress.

El elemento StaticVirtualNetworkIPAddress solamente se encuentra disponible si utiliza la versión 01.11.13 o versiones posteriores.

PublicIPs

Opcional. Contiene una dirección IP pública que se puede usar además de la dirección IP virtual predeterminada para la máquina virtual.

El elemento PublicIPs solamente se encuentra disponible si utiliza la versión 01.05.14 o versiones posteriores.

Contiene propiedades que definen un dominio en el que la máquina virtual se combinará.

 

Nombre del elemento Descripción

Credentials

Opcional. Especifica las credenciales para combinar la máquina virtual con el dominio.

JoinDomain

Opcional. Especifica el dominio que se va a combinar.

MachineObjectOU

Opcional. Especifica el nombre distintivo X 500 del Protocolo ligero de acceso a directorios (LDAP) de la unidad organizativa (OU) en que se crea la cuenta de equipo. Esta cuenta se encuentra en Active Directory en un controlador de dominio en el dominio con el que se está combinando el equipo.

Ejemplo:

OU=MyOu,OU=MyParentOu,DC=example.com,DC=MyCompany,DC=com

Especifica las credenciales para combinar la máquina virtual con el dominio.

 

Nombre del elemento Descripción

Dominio

Opcional. Especifica el nombre del dominio utilizado para autenticar una cuenta. El valor es un dominio DNS completo.

Si el nombre de los dominios no se especifica, Username debe especificar el formato de nombre principal del usuario (UPN) (user@fully-qualified-DNS-domain) o el formato fully-qualified-DNS-domain\username.

Ejemplo:

example.com

Username

Requerido. Especifica un nombre de usuario del dominio que se puede utilizar para combinar el dominio.

Contraseña

Requerido. Especifica la contraseña para combinar el dominio.

Contiene una lista de certificados de servicio que se proporcionará a la nueva máquina virtual. La referencia de valores de certificado almacenados certifica que ya existen en el servicio en la nube. Antes de configurar los certificados almacenados para la máquina virtual, debe llamar a la operación Agregar certificado de servicio o agregar el certificado mediante el Portal de administración.

 

Nombre del elemento Descripción

CertificateSetting

Requerido. Especifica los parámetros para el certificado.

StoreLocation

Requerido. Especifica la ubicación del almacén de certificados de la máquina virtual.

El único valor admitido es LocalMachine.

StoreName

Requerido. Especifica el nombre del almacén de certificados del que se recupera el certificado.

Por ejemplo, “My”.

Thumbprint

Requerido. Especifica la huella digital del certificado. La huella digital debe especificar un certificado de servicio existente.

Contiene las opciones de configuración para el servicio Administración remota de Windows en la máquina virtual.

 

Nombre del elemento Descripción

Listeners

Requerido. Contiene una colección de información para habilitar Windows PowerShell en remoto.

Listener

Requerido. Especifica la información del protocolo y el certificado para el agente de escucha.

Protocol

Especifica el protocolo del agente de escucha.

Los valores posibles son:

  • Http

  • Https

El valor distingue mayúsculas de minúsculas.

CertificateThumbprint

Opcional. Especifica la huella digital del certificado para la conexión segura. Si este valor no se especifica, se genera un certificado autofirmado y se utiliza para la máquina virtual.

Especifica información adicional con formato XML codificado en base 64 que se puede incluir en el archivo Unattend.xml, usado por el programa de instalación de Windows.

 

Nombre del elemento Descripción

PassName

Requerido. Especifica el nombre del pase al que se aplica el contenido. El único valor admitido es oobeSystem.

ComponentName

Requerido. Especifica el nombre del componente para configurar con el contenido agregado. El único valor admitido es Microsoft-Windows-Shell-Setup.

SettingName

Requerido. Especifica el nombre de la configuración a la que se aplica el contenido.

Los valores posibles son:

  • FirstLogonCommands

  • AutoLogon

Content

Requerido. Especifica el contenido con formato XML codificado en base 64 que se agrega al archivo unattend.xml para la ruta de acceso y el componente especificados. El XML debe ser inferior a 4 KB y debe incluir el elemento raíz de la configuración o característica que se inserta.

Especifica las claves públicas SSH y los pares de clave que usar en la máquina virtual.

 

Nombre del elemento Descripción

PublicKeys

Opcional. Especifica la colección de claves públicas SSH.

PublicKey

Requerido. Especifica la clave pública.

FingerPrint

Requerido. Especifica la huella SHA1 de un certificado X509 asociado al servicio en la nube e incluye la clave pública SSH.

Path

Requerido. Especifica la ruta completa de un archivo, en la máquina virtual, donde se almacena la clave pública SSH. Si el archivo especificado ya existe, ya clave especificada se anexa al archivo.

Ejemplo:

/home/user/.ssh/authorized_keys

KeyPairs

Requerido. Especifica una colección de pares de clave SSH.

KeyPair

Requerido. Especifica un par de claves SSH que se instalará en la máquina virtual.

FingerPrint

Requerido. Especifica la huella SHA1 de un certificado X509 asociado al servicio en la nube e incluye el par de claves público SSH.

Path

Requerido. Especifica la ruta completa de un archivo, en la máquina virtual, que almacena la clave privada SSH. Se sobrescribe el archivo cuando varias claves se escriben él. La clave pública SSH se almacena en el mismo directorio y tiene el mismo nombre que el archivo de clave privada con sufijo .pub.

Ejemplo:

/home/user/.ssh/id_rsa

Contiene una colección de extremos externos para la máquina virtual.

 

Nombre del elemento Descripción

InputEndpoint

Requerido. Especifica las propiedades que definen un extremo externo para la máquina virtual.

LoadBalancedEndpointSetName

Opcional. Especifica un nombre para un conjunto de extremos de carga equilibrada. Especificando este elemento para un extremo se agrega al conjunto.

No establezca esta propiedad si va a agregar el extremo para conectarse a la máquina virtual a través de Escritorio remoto.

noteNota
El nombre del extremo debe ser único en el ámbito de la máquina virtual.

LocalPort

Requerido. Especifica el puerto interno en el que la máquina virtual escucha para servir al extremo.

Nombre

Requerido. Especifica el nombre del extremo externo.

Puerto

Requerido. Especifica el puerto externo para el extremo.

LoadBalancerProbe

Opcional. Contiene propiedades que definen los valores del extremo que el equilibrador de carga de Azure utiliza para supervisar la disponibilidad de esta máquina virtual antes de enviar tráfico al mismo.

LoadBalancerName

Opcional. Especifica el nombre del equilibrador de carga interno asociado al extremo. El nombre del equilibrador de carga interno se especifica en LoadBalancers.

El elemento LoadBalancerName solamente se encuentra disponible si utiliza la versión 01.05.14 o versiones posteriores.

Protocol

Requerido. Especifica el protocolo de transporte para el extremo externo.

Los valores posibles son:

  • TCP

  • UDP

EnableDirectServerReturn

Opcional. Especifica si el extremo usa Direct Server Return. El elemento EnableDirectServerReturn no se admite para los extremos RDP, SSH o WinRM y no se admite cuando el puerto público y el puerto local de un extremo son diferentes. Se recomienda usar este elemento solo al configurar máquinas virtuales para SQL Server y grupos de disponibilidad AlwaysOn. Para obtener más información, vea Alta disponibilidad y recuperación ante desastres para SQL Server en máquinas virtuales de Azure.

Los valores posibles son:

  • true

  • false

El valor predeterminado es false.

EndpointACL

Opcional. Contiene una colección de reglas que controlan el tráfico de red a un extremo.

El elemento EndpointACL solamente se encuentra disponible si se utiliza la versión 2013-06-01 o versiones posteriores.

Contiene propiedades que definen los valores del extremo que el equilibrador de carga de Azure utiliza para supervisar la disponibilidad de esta máquina virtual antes de enviar tráfico al mismo.

 

Nombre del elemento Descripción

Path

Opcional. Especifica la ruta relativa para inspeccionar a fin de determinar el estado de disponibilidad de la máquina virtual. Si el protocolo está establecido en TCP, este valor debe ser NULL.

Ejemplo:

ruta

El sondeo utilizará https://example.com/path para realizar el sondeo.

Puerto

Opcional. Especifica el puerto para inspeccionar el estado de disponibilidad de la máquina virtual.

Protocol

Opcional. Especifica el protocolo para inspeccionar el estado de disponibilidad de la máquina virtual.

Los valores posibles son:

  • HTTP

  • TCP

IntervalInSeconds

Opcional. Especifica el intervalo para el sondeo de equilibrador de carga en segundos. El valor mínimo es de 5 segundos. El valor predeterminado es 15 segundos.

TimeoutInSeconds

Opcional. Especifica el tiempo de espera para el sondeo de equilibrador de carga en segundos. El valor mínimo es de 11 segundos. El valor predeterminado es 31 segundos.

Contiene una colección de reglas que controlan el tráfico de red al extremo.

 

Nombre del elemento Descripción

Rules

Requerido. Especifica una colección de reglas de control de acceso. Se permiten 50 reglas, como máximo.

Rule

Requerido. Especifica la definición de una regla de control de acceso.

Order

Requerido. Especifica la prioridad de la regla. El valor puede estar comprendido entre 0 y 65535. El número de orden debe ser único para cada regla de la colección. Cuanto menor es el número de orden, mayor es la prioridad de la regla.

Action

Requerido. Especifica si el tráfico que coincide con la regla debe permitirse o denegarse.

Los valores posibles son:

  • permit

  • deny

RemoteSubnet

Requerido. Especifica la subred para la regla. La subred debe estar en la notación de IPV4 Enrutamiento entre dominios sin clase (CIDR) y debe ser una subred válida.

Por ejemplo, 10.0.0.0/24

Descripción

Opcional. Especifica la descripción de la regla. La longitud máxima de la descripción es de 256 caracteres.

Contiene una dirección IP pública que se puede usar además de la dirección IP virtual predeterminada para la máquina virtual.

 

Nombre del elemento Descripción

PublicIP

Requerido. Especifica una dirección IP pública adicional que se puede usar para comunicarse con la máquina virtual.

Nombre

Requerido. Especifica el nombre de la dirección IP pública.

Contiene una lista de subredes a las que la máquina virtual pertenecerá.

 

Nombre del elemento Descripción

SubnetName

Requerido. Especifica el nombre de la subred a la que pertenece la máquina virtual.

Contiene los parámetros que se usan para agregar un disco de datos a una máquina virtual.

 

Nombre del elemento Descripción

DataVirtualHardDisk

Requerido. Especifica las propiedades utilizadas para crear un disco de datos.

HostCaching

Opcional. Especifica el modo de almacenamiento en caché del disco de datos.

Los valores posibles son:

  • None

  • ReadOnly

  • ReadWrite

El valor predeterminado es None.

DiskLabel

Opcional. Si el disco que se agrega ya se ha registrado en la suscripción, este elemento se pasa por alto. Si se crea un disco nuevo, este elemento se usa para proporcionar una descripción del disco. El valor de este elemento solo se obtiene mediante programación y no aparece en el Portal de administración.

DiskName

Opcional. Si el disco que se agrega ya se ha registrado en la suscripción, este elemento se usa para identificar el disco que se va a agregar. Si Azure crea un disco nuevo y el VHD asociado, no se usa este elemento y Azure asigna un nombre único que es una combinación del nombre de la implementación, el nombre del rol y el número de identificación.

El nombre del disco debe contener solo caracteres alfanuméricos, caracteres de subrayado, puntos o guiones. El nombre no debe tener más de 256 caracteres. El nombre no debe terminar con punto ni guion.

Puede usar Enumerar discos para encontrar los discos disponibles.

Lun

Opcional. Especifica el número de unidad lógica (LUN) del disco de datos. Si el disco es el primero que se agrega, este elemento es opcional y se usa el valor predeterminado 0. Si se agrega más de un disco, este elemento es obligatorio.

Puede usar Get Role para encontrar los números LUN que ya están usándose.

Los valores válidos son de LUN son de 0 a 15.

LogicalDiskSizeInGB

Opcional. Especifica el tamaño, en GB, de un disco vacío para adjuntarlo a la máquina virtual. Si el disco que se agrega ya se ha registrado en la suscripción, este elemento se pasa por alto. Si Azure crea el disco y el disco duro virtual a medida que se agrega, este elemento define el tamaño del nuevo disco.

El número de discos que se pueden agregar a una máquina virtual viene limitado por el tamaño de esta. Para obtener más información, vea Tamaños de máquina virtual y servicio en la nube de Azure.

Este elemento solo se utiliza con el elemento MediaLink.

MediaLink

Opcional. Si el disco que se agrega ya se ha registrado en la suscripción o el disco duro virtual del disco ya existe en el almacenamiento de blobs, este elemento se omite. Si no existe ningún archivo VHD en el almacenamiento de blobs, este elemento define la ubicación en que se crea el nuevo VHD cuando se agrega el nuevo disco.

Ejemplo:

http://example.blob.core.windows.net/disks/mydatadisk.vhd

SourceMediaLink

Opcional. Si el disco que se agrega ya se ha registrado en la suscripción o el disco duro virtual del disco no existe en el almacenamiento de blobs, este elemento se omite. Si el archivo VHD existe en el almacenamiento de blobs, este elemento define la ruta de acceso al VHD y se registra un disco a partir de él y se conecta a la máquina virtual.

Contiene los parámetros utilizados para crear el disco del sistema operativo para una máquina virtual.

 

Nombre del elemento Descripción

HostCaching

Opcional. Especifica el modo de almacenamiento en caché del disco del sistema operativo. Esta configuración afecta a la coherencia y rendimiento del disco.

Los valores posibles son:

  • ReadOnly

  • ReadWrite

El valor predeterminado es ReadWrite.

noteNota
Cambiar este valor ocasiona que la máquina virtual se reinicie.

DiskLabel

Opcional. Especifica la descripción del disco.

DiskName

Requerido si se usa un disco existente para crear una máquina virtual. Especifica el nombre del disco nuevo o existente. Para un disco nuevo, si no especifica este elemento, se asigna un nombre único que es una combinación del nombre de la implementación, el nombre del rol y el número de identificación.

El nombre del disco debe contener solo caracteres alfanuméricos, caracteres de subrayado, puntos o guiones. El nombre no debe tener más de 256 caracteres. El nombre no debe terminar con punto ni guion.

MediaLink

Requerido si la máquina virtual se crea a partir de una imagen de la plataforma. Especifica la ubicación del archivo VHD que se crea cuando SourceImageName especifica una imagen de plataforma. Este elemento no se usa si la máquina virtual se crea usando un disco existente.

Ejemplo:

http://contoso.blob.core.windows.net/disks/mydisk.vhd

SourceImageName

Opcional. Especifica el nombre de la imagen utilizada para crear la máquina virtual. Puede especificar una imagen de usuario o una imagen de plataforma. Una imagen siempre se asocia a un VHD, que es un archivo .vhd almacenado como un blob en páginas de una cuenta de almacenamiento en Azure. Si especifica una imagen de plataforma, se crea un VHD asociado y debe usar el elemento MediaLink para especificar la ubicación del almacenamiento donde se encontrará el VHD.

RemoteSourceImageLink

Opcional. Especifica un URI de la ubicación donde se almacena una imagen de SO que se usa para crear la máquina virtual. Esta ubicación puede ser una ubicación distinta que los repositorios de imágenes de usuario o plataforma en Azure. Una imagen siempre se asocia a un VHD, que es un archivo .vhd almacenado como un blob en páginas de una cuenta de almacenamiento en Windows Azure. Si especificas una ruta de acceso a una imagen con este elemento, se crea un VHD asociado y debes usar el elemento MediaLink para especificar la ubicación del almacenamiento donde se encontrará el VHD. Si se usa este elemento, no se usa SourceImageName.

El elemento RemoteSourceImageLink solamente se encuentra disponible si utiliza la versión 01.05.14 o versiones posteriores.

SO

Obligatorio si se usa RemoteSourceImageLink. Especifica el tipo de sistema operativo que está instalado en la imagen.

Los valores posibles son:

  • Windows

  • Linux

Contiene una colección de extensiones de recursos que se van a instalar en la máquina virtual. Una extensión de recursos es un componente de software que se instala en la máquina virtual. El agente de VM debe instalarse en la máquina virtual para poder instalar extensiones de recursos. Para obtener más información, vea Administrar extensiones.

 

Nombre del elemento Descripción

ResourceExtensionReference

Requerido. Especifica las propiedades de una extensión de recursos que se debe instalar en la máquina virtual.

ReferenceName

Requerido. Especifica el nombre de referencia de la extensión de recursos.

Publicador

Requerido. Especifica el nombre del publicador que creó la extensión de recursos. Puede usar Enumerar extensiones de recursos para buscar el nombre del publicador de una extensión de recursos.

Nombre

Requerido. Especifica el nombre de la extensión de recursos. Puede usar Enumerar extensiones de recursos para buscar los nombres de las extensiones de recursos disponibles.

Versión

Requerido. Especifica la versión de la extensión de recursos. Puede establecer este valor en * para usar la versión más reciente de la extensión. Si la extensión se agregó o actualizó recientemente, debe asegurarse de que el valor de ReplicationCompleted se establezca en true antes de poder usar la versión de la extensión. Puede usar Enumerar versiones de extensiones de recursos para determinar el estado de replicación y las versiones disponibles de la extensión.

ResourceExtensionParameterValues

Opcional. Contiene una colección de parámetros que se pasan a la extensión de recursos cuando se instala.

State

Opcional. Especifica el estado de la extensión de recursos. Cuando se crea una máquina virtual, el único estado que se puede especificar es enable, que es el valor predeterminado si no se usa este elemento. Para obtener más información sobre cómo deshabilitar o eliminar una extensión, vea Actualizar rol.

Contiene una colección de parámetros que se pasan a la extensión de recursos cuando se instala.

 

Nombre del elemento Descripción

ResourceExtensionParameterValue

Requerido. Especifica la clave, el valor y el tipo del parámetro.

Key

Requerido. Especifica la clave del parámetro.

Valor

Requerido. Especifica el valor codificado en base 64 del parámetro. Si el formato de la configuración de la extensión es XML, este valor se valida usando el esquema público o privado. El esquema que se usa depende del valor de Type.

Si el formato de la configuración de la extensión es JSON, este valor debe contener un objeto JSON válido. Los esquemas público o privado no se pueden usar para validar el objeto. Para usar un objeto JSON, la versión debe ser 2014-04-01 o superior.

Tipo

Requerido. Especifica el tipo de la extensión de recursos.

Los valores posibles son:

  • Public

  • Private

Si este valor se establece en Private, Get Deployment no devolverá el parámetro. Solo puede especificar un parámetro público y un parámetro privado para un máximo de dos parámetros.

Contiene una lista de servidores DNS para asociar a la máquina virtual.

 

Nombre del elemento Descripción

DnsServers

Requerido. Contiene los parámetros que especifican los servidores DNS para la máquina virtual.

DnsServer

Requerido. Contiene el Name y los elementos Address del servidor DNS.

Nombre

Requerido. Especifica el nombre del servidor DNS.

Address

Requerido. Especifica la dirección IP del servidor DNS.

Contiene una lista de equilibradores de carga internos que se pueden asignar a extremos de entrada.

 

Nombre del elemento Descripción

Equilibrador de carga

Requerido. Especifica los atributos de un equilibrador de carga interno.

Nombre

Requerido. Especifica el nombre del equilibrador de carga interno.

FrontendIpConfiguration

Requerido. Especifica la configuración de la dirección IP virtual proporcionada por el equilibrador de carga.

Tipo

Requerido. Especifica el tipo de dirección IP virtual proporcionada por el equilibrador de carga. El único valor admitido es Private.

SubnetName

Es obligatorio si la implementación existe en una red virtual y se asigna StaticVirtualNetworkIPAddress. Especifica la subred de la red virtual que usa el equilibrador de carga. La dirección IP virtual administrada por el equilibrador de carga está contenida en esta subred.

StaticVirtualNetworkIPAddress

Opcional. Especifica una dirección IP virtual que el equilibrador de carga usa de la subred en la máquina virtual.

La respuesta incluye un código de estado HTTP y un conjunto de encabezados de respuesta.

Una operación correcta devuelve el código de estado 202 (Aceptado). Para obtener información acerca de los códigos de estado, vea Estado y códigos de error de administración del servicio.

La respuesta para esta operación incluye los encabezados siguientes. La respuesta también puede incluir otros encabezados HTTP estándar. Todos los encabezados estándar cumplen la especificación del protocolo HTTP/1.1.

 

Encabezado de respuesta Descripción

x-ms-request-id

Valor que identifica de forma exclusiva una solicitud realizada ante el servicio de administración.

También puede crear implementaciones de máquinas virtuales mediante los recursos siguientes:

Cuando cree una implementación de una máquina virtual, debe asegurarse de que el servicio en la nube y el disco o la imagen que utilice se encuentran en la misma región. Por ejemplo, si el servicio en la nube se creó en la región de West US, el disco o imagen que utilice también debería encontrarse en una cuenta de almacenamiento en la región de West US.

Para ejecutar este ejemplo, reemplace los valores de las variables siguientes:

 

Variable Valor

Thumbprint

Proporcione una huella digital de un certificado de administración que se haya cargado para autorizar operaciones en Azure. Para obtener más información, vea Crear y cargar un certificado de administración para Azure.

SubscriptionId

Proporcione el identificador de suscripción necesario para encontrar el servicio en la nube adecuado. Para buscar el identificador de la suscripción, haga clic en Configuración en el Portal de administración.

ServiceName

Proporcione el nombre del servicio en la nube existente en el que desea implementar la máquina virtual. Puede utilizar List Cloud Services para buscar los nombres de servicios existentes. Puede crear un servicio en la nube desde el Portal de administración, mediante la operación Create Cloud Service o con el cmdlet New-AzureService.

DeploymentName

Escriba un nombre para la nueva implementación.

DeploymentLabel

Especifique un identificador para la implementación. Esta etiqueta se puede usar con fines de seguimiento.

UserName

Especifique un nombre para la cuenta de administrador de la máquina virtual.

RoleName

Escriba un nombre para el rol. En este ejemplo, el nombre de rol también se usa como nombre de equipo.

SourceImage

Proporcione el nombre de la imagen de plataforma que desea usar para aprovisionar la máquina virtual. Puede usar List OS Images para obtener los nombres de las imágenes de plataforma disponibles en el repositorio de imágenes.

OSVhdPath

Proporcione la ruta de acceso de almacenamiento de Azure donde se almacenará el disco del sistema operativo que se crea. Para obtener más información, vea Crear una cuenta de almacenamiento.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using System.Xml;
using System.Security.Cryptography.X509Certificates;
using System.Net;
using System.IO;

namespace CreateVirtualMachineDeployment
{
  class Program
  {
    private static XNamespace wa = "http://schemas.microsoft.com/windowsazure";
    private const string Thumbprint = "<thumbprint-of-management-certificate>";
    private const string SubscriptionId = "<identifier-of-subscription>";
    private const string Version = "2013-08-01";
    private const string ServiceName = "<name-of-existing-service>";
    private const string DeploymentName = "<name-of-new-deployment>";
    private const string DeploymentLabel = "<label-of-deployment>";
    private const string DeploymentSlot = "production";
    private const string UserName = "<name-of-user-account>";
    private const string RoleName = "<name-of-virtual-machine>";
    private const string SourceImage = "<name-of-platform-image>";
    private const string OSVhdPath = "<storage-path-of-operating-system-disk>";

    // Gets or sets the certificate that matches the Thumbprint value.
    private static X509Certificate2 Certificate { get; set; }

    static void Main(string[] args)
    {
      Certificate = GetStoreCertificate(Thumbprint);

      // Create the uri for the request
      string uriFormat = "https://management.core.windows.net/{0}/services/hostedservices/{1}/deployments";
      Uri uri = new Uri(String.Format(uriFormat, SubscriptionId, ServiceName));

      Console.WriteLine("Enter the administrator password:");
      string AdminPassword = Console.ReadLine();

      // Create the request to add a new Virtual Machine deployment
      XNamespace xsi = "http://www.w3.org/2001/XMLSchema-instance";
      XDocument requestBody = new XDocument(
        new XDeclaration("1.0", "UTF-8", "no"),
        new XElement(wa + "Deployment",
          new XElement(wa + "Name", DeploymentName),
          new XElement(wa + "DeploymentSlot", DeploymentSlot),
          new XElement(wa + "Label", DeploymentLabel),
          new XElement(wa + "RoleList",
            new XElement(wa + "Role",
              new XElement(wa + "RoleName", RoleName),
              new XElement(wa + "RoleType", "PersistentVMRole"),
              new XElement(wa + "ConfigurationSets",
                new XElement(wa + "ConfigurationSet",
                  new XAttribute(xsi + "type", "WindowsProvisioningConfigurationSet"),
                  new XElement(wa + "ConfigurationSetType", "WindowsProvisioningConfiguration"),
                  new XElement(wa + "ComputerName", RoleName),
                  new XElement(wa + "AdminPassword", AdminPassword),
                  new XElement(wa + "AdminUsername", UserName))),
              new XElement(wa + "OSVirtualHardDisk",
                new XElement(wa + "MediaLink", OSVhdPath),
                new XElement(wa + "SourceImageName", SourceImage))))));

      // Submit the request and get the response
      HttpWebResponse response = InvokeRequest(uri, "POST", requestBody);

      HttpStatusCode statusCode = response.StatusCode;
      Console.WriteLine("The status of the operation: {0}", statusCode.ToString());
      Console.Write("Press any key to continue:");
      Console.ReadKey();
    }

    // Gets the certificate matching the thumbprint from the local store.
    // Throws an ArgumentException if a matching certificate is not found.
    private static X509Certificate2 GetStoreCertificate(string thumbprint)
    {
      List<StoreLocation> locations = new List<StoreLocation> 
      { 
        StoreLocation.CurrentUser, 
        StoreLocation.LocalMachine 
      };

      foreach (var location in locations)
      {
        X509Store store = new X509Store("My", location);
        try
        {
          store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
          X509Certificate2Collection certificates = store.Certificates.Find(
            X509FindType.FindByThumbprint, thumbprint, false);
          if (certificates.Count == 1)
          {
            return certificates[0];
          }
        }
        finally
        {
          store.Close();
        }
      }
      throw new ArgumentException(string.Format(
        "A Certificate with Thumbprint '{0}' could not be located.", thumbprint));
    }

    // Add the request headers and get the response from the request
    private static HttpWebResponse InvokeRequest(Uri uri, string method, XDocument requestBody)
    {
      HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
      request.Method = method;
      request.Headers.Add("x-ms-version", Version);
      request.ClientCertificates.Add(Certificate);
      request.ContentType = "application/xml";

      if (requestBody != null)
      {
        using (Stream requestStream = request.GetRequestStream())
        {
          using (StreamWriter streamWriter = new StreamWriter(
            requestStream, System.Text.UTF8Encoding.UTF8))
          {
            requestBody.Save(streamWriter, SaveOptions.DisableFormatting);
          }
        }
      }

      HttpWebResponse response;
      try
      {
        response = (HttpWebResponse)request.GetResponse();
      }
      catch (WebException ex)
      {
        response = (HttpWebResponse)ex.Response;
      }
      response.Close();
      return response;
    }
  }
}

Mostrar:
© 2014 Microsoft