IBM Cloud Docs
Creación de recursos de VPC vía CLI y API

Creación de recursos de VPC vía CLI y API

Además de crear un VPC, también se pueden crear recursos de VPC como, por ejemplo, una instancia, una subred y un volumen de almacenamiento en bloques.

Para obtener más información sobre la creación de recursos de VPC utilizando la consola de IBM Cloud, consulte Utilización de la consola de IBM Cloud para crear recursos de VPC.

Utilización de la CLI para crear recursos de VPC

Puede crear y configurar un IBM Cloud® Virtual Private Cloud utilizando la CLI IBM Cloud®.

Para crear y configurar su nube privada virtual (VPC) y otros recursos conectados, siga los pasos de las secciones siguientes, en este orden:

  1. Cree una VPC y una subred para definir la red.
  2. Si desea permitir que todos los recursos de la subred se comuniquen con Internet público, conecte una pasarela pública.
  3. Cree una instancia de servidor virtual. Por defecto, se adjunta un volumen de arranque a la instancia. Para la mayoría de instancias de servidor virtual, el tamaño de volumen de arranque predeterminado es de 100 GB. El tamaño de volumen de arranque predeterminado para una instancia de servidor virtual z/OS es de 250 GB.
  4. Si desea más almacenamiento, cree un volumen de almacenamiento en bloque y conéctelo a la instancia.
  5. Para definir el tráfico entrante y saliente permitido para la instancia, configure su grupo de seguridad.
  6. Si desea que se pueda acceder a su instancia desde Internet, reserve y asocie una dirección IP flotante.

Antes de empezar

Asegúrese de configurar el entorno de CLI.

Iniciar sesión en IBM Cloud

ibmcloud login --sso -a cloud.ibm.com

Este mandato devuelve un URL y solicita un código de acceso. Vaya a ese URL en el navegador e inicie la sesión. Si se ejecuta correctamente, recibe un código de acceso de un solo uso. Copie este código de acceso y péguelo como respuesta en la solicitud. Después de los pasos de autenticación, se le solicitará que elija su cuenta. Si tiene acceso a varios usuarios, seleccione aquel con el que desea iniciar la sesión.

Cuando se le solicite que seleccione una región, seleccione us-south.

Responda a cualquier solicitud restante para finalizar el inicio de sesión.

creación de una vpc

Utilice el comando siguiente para crear un VPC llamado my-vpc.

ibmcloud is vpc-create my-vpc

A partir de la salida devuelta, guarde el ID en una variable para poder utilizarlo más tarde, por ejemplo:

vpc="0738-59de4046-3434-4d87-bb29-0c99c428c96e"

En el ejemplo anterior no se crea una VPC con acceso clásico. Si la VPC necesita acceso a los recursos clásicos, consulte Configuración del acceso a la infraestructura clásica. Puedes habilitar una VPC sólo para acceso clásico mientras la estás creando. Además, solo puede tener una VPC de acceso clásico en su cuenta en cualquier momento.

Creación de un catálogo privado

Este campo es opcional. Si tiene previsto compartir imágenes de un catálogo privado, primero se debe crear el catálogo privado. Si selecciona una imagen de catálogo que pertenece a una cuenta diferente, tiene más consideraciones y limitaciones que revisar. Consulte Utilización de referencias de imagen entre cuentas en un catálogo privado. Para crear un catálogo privado, consulte la guía de aprendizaje Incorporación de software al catálogo utilizando la CLI.

Creación de una subred

Para poder crear una subred, seleccione el prefijo de zona y dirección donde desea crearla. Para ver una lista de los prefijos de dirección para cada zona de la VPC, ejecute el mandato siguiente:

ibmcloud is vpc-address-prefixes $vpc

Ahora debe seleccionar el prefijo de dirección predeterminado para la zona us-south-3. En la salida del mandato, anote el bloque de CIDR del prefijo de la dirección. Cuando cree una subred, debe especificar un rango de IP que esté dentro de uno de los prefijos de dirección de la zona seleccionada.

Una subred no se puede redimensionar después de crearla.

ibmcloud is subnet-create my-subnet $vpc us-south-3 --ipv4-cidr-block "10.0.1.0/24"

A partir de la salida devuelta, guarde el ID en una variable para poder utilizarlo más tarde, por ejemplo:

subnet="0738-658756a4-1106-4914-969a-3b43b338524a"

El estado de la subred es pending cuando se crea por primera vez. Para poder crear recursos en la subred, la subred debe pasar al estado available, lo cual tarda unos segundos. Para comprobar el estado de la subred, ejecute el mandato siguiente:

ibmcloud is subnet $subnet

Conexión de una pasarela pública

Conecte una pasarela pública a la subred si desea permitir que todos los recursos conectados se comuniquen con la Internet pública.

Para crear una pasarela pública, ejecute el mandato siguiente:

ibmcloud is public-gateway-create my-gateway $vpc us-south-3

A partir de la salida devuelta, guarde el ID en una variable para poder utilizarlo más tarde, por ejemplo:

gateway="0738-446c0c63-f0b1-4043-b30d-644f55fde391"

Para conectar la pasarela pública a la subred, ejecute el mandato siguiente:

ibmcloud is subnet-update $subnet --pgw $gateway

Solo se permite una pasarela pública por zona en una VPC, pero esa pasarela pública se puede conectar a varias subredes de la zona. Para encontrar la pasarela pública para una zona, ejecute el mandato ibmcloud is public-gateways y busque los valores de VPC y Zona en particular.

Adición de una clave SSH

Añada la clave SSH pública a la cuenta de IBM Cloud. Esta clave se especifica al crear la instancia, y la necesitará más adelante para iniciar sesión en la instancia. Puede utilizar una clave para suministrar varias instancias.

Para ver las claves disponibles en la cuenta de IBM Cloud, ejecute este mandato:

ibmcloud is keys

Para añadir una clave, ejecute el mandato siguiente. Sustituya la ruta a su archivo de clave SSH. Para una clave SSH RSA, puede utilizar la vía de acceso al archivo id_rsa.pub. Para una clave SSH Ed25519, puede utilizar la vía de acceso al archivo id_ed25519.pub.

ibmcloud is key-create my-key @$HOME/.ssh/id_rsa.pub

A partir de la salida devuelta, guarde el ID en una variable para poder utilizarlo más tarde, por ejemplo:

key="0738-859b4e97-7540-4337-9c64-384792b85653"

Selección de un perfil para la instancia

Para ver una lista de todos los perfiles de instancia disponibles, ejecute el siguiente mandato:

ibmcloud is instance-profiles

Guarde el perfil que tiene previsto utilizar como variable, que se utilizará más adelante para suministrar una instancia.

Selección de una imagen para la instancia

Puede crear una instancia utilizando una imagen en stock, una imagen personalizada de su cuenta o una imagen que se ha compartido con su cuenta desde un catálogo privado. Ejecute uno de los mandatos siguientes basándose en la imagen que tiene previsto utilizar.

  • Seleccione una imagen en stock o una imagen personalizada de su cuenta para la instancia.

    1. Para listar todas las imágenes disponibles, ejecute el mandato ibmcloud is images. Si la lista es demasiado larga, considere filtrarla como lo hace el ejemplo siguiente.

      $ ibmcloud is images | grep -i "debian.*available.*amd64.*public"
      r006-17cc6c08-f628-46f4-8bf4-a8edab749722   ibm-debian-10-13-minimal-amd64-4                    available    amd64   debian-10-amd64                      10.x Buster/Stable - Minimal Install                     1               public       provider     none           Default          -
      r006-b721bf3b-393b-4386-a618-d1ea8c004e1c   ibm-debian-11-7-minimal-amd64-2                     available    amd64   debian-11-amd64                      11.x Bullseye/Stable - Minimal Install                   1               public       provider     none           Default          -
      r006-e66ebfcd-4aac-44e2-b504-1f6f4c003518   ibm-debian-12-0-minimal-amd64-1                     available    amd64   debian-12-amd64                      12.x Bookworm/Stable - Minimal Install                   1               public       provider     none           Default          -
      

      Las imágenes en desuso no incluyen el soporte más actualizado.

    2. Seleccione una imagen como ibm-debian-12-0-minimal-amd64-1 y guarde el ID de imagen como una variable que se utilizará más adelante para suministrar una instancia.

      image=$(ibmcloud is images | grep -i "ibm-debian-12-0-minimal-amd64-1" | cut -d" " -f1)
      
  • Seleccione una imagen compartida de un catálogo privado para la instancia

    Si selecciona una imagen de catálogo que pertenece a una cuenta diferente, tiene más consideraciones y limitaciones que revisar. Consulte Utilización de referencias de imagen entre cuentas en un catálogo privado en la CLI

    • Para listar todas las ofertas de imágenes de catálogo privadas disponibles, ejecute el mandato siguiente.

      ibmcloud is catalog-image-offerings
      

      Este mandato devuelve el identificador de cada oferta de imagen y el identificador del catálogo privado donde reside la imagen. Guarde offering_id y catalog_id en variables, que se utilizarán posteriormente para suministrar una instancia.

      offering_id=6bf79f7b-de48-4ce8-8cae-866b376f2889
      catalog_id=71306253-8444-4cae-a45d-64d35e5393ec
      
    • Para obtener el offering_crn para la oferta y el offering_version_crn para cada versión de la oferta, ejecute el mandato siguiente.

      ibmcloud is catalog-image-offering $catalog_id $offering_id
      

      Al suministrar una instancia, puede suministrar la instancia desde la imagen gestionada por catálogo privada en la última versión de una oferta de producto de catálogo utilizando el valor offering_crn o desde la versión específica de la oferta de producto de catálogo utilizando el valor offering_version_crn.

      Guarde offering_crn y offering_version_crn en variables, que se utilizarán posteriormente para suministrar una instancia.

      offering_crn="crn:v1:bluemix:public:globalcatalog-collection:global:a/a1234567:offering:136559f6-4588-4af2-8585-f3c625eee09d"
      offering_version_crn="crn:v1:bluemix:public:globalcatalog-collection:global:a/a1234567:version:136559f6-4588-4af2-8585-f3c625eee09d/8ae92879-e253-4a7c-b09f-8d30af12e518"
      

Creación de la instancia

Cree la instancia en la subred recién creada. Pase la clave SSH pública para que pueda iniciar la sesión después de que se suministre la instancia.

Ejecute uno de los siguientes mandatos de CLI en función de la imagen que tenga previsto utilizar.

  • Cree una instancia utilizando una imagen en stock o una imagen personalizada de su cuenta para la instancia.

    ibmcloud is instance-create my-instance $vpc us-south-3 bx2-2x8 $subnet --image-id $image --key-ids $key
    
  • Cree una instancia utilizando una imagen gestionada por catálogo privada de la versión de imagen más reciente.

    ibmcloud is instance-create my-instance $vpc us-south-3 bx2-2x8 $subnet --catalog-offering $offering_crn --keys $key
    
  • Cree una instancia utilizando una imagen gestionada por catálogo privada a partir de una versión específica de la imagen.

    ibmcloud is instance-create my-instance $vpc us-south-3 bx2-2x8 $subnet --catalog-offering-version $offering_version_crn --keys $key
    

La información sobre la interfaz de red que se crea para la nueva instancia no se devuelve después de crear la instancia.

A partir de la salida devuelta, guarde el ID de la instancia en una variable para poder utilizarlo más tarde, por ejemplo:

instance="0738-21179496-964e-4c00-8210-cf23d75750b3"

El estado de la instancia es pending cuando se crea por primera vez. Antes de poder continuar, la instancia debe pasar al estado running, proceso que tarda unos minutos. Para comprobar el estado de la instancia, ejecute el mandato siguiente:

ibmcloud is instance $instance

De la salida devuelta, guarde el ID de la interfaz de red primaria (Primary Interface) en una variable para que pueda utilizarla más tarde, por ejemplo:

nic="0738-4d9b3a58-f796-4e6a-b5ac-84f4216e9b68-glhvl"

Creación de un volumen de datos Block Storage

Puede crear un volumen de almacenamiento en bloque y conectarlo a la instancia de servidor virtual si desea obtener más almacenamiento. Cuando se crea un volumen de almacenamiento en bloque, se selecciona un perfil para optimizar el rendimiento de las cargas de trabajo de cálculo. Para obtener más información sobre la capacidad de volumen y los rangos de IOPS en función del perfil de volumen que seleccione, consulte Perfiles.

Para ver una lista de perfiles de volúmenes, ejecute:

ibmcloud is volume-profiles

Ejecute este mandato para crear un volumen de datos de almacenamiento en bloques. Especifique un nombre para el volumen, el perfil de volumen y la zona donde va a crear el volumen. Para adjuntar un volumen de datos de almacenamiento en bloques a una instancia, la instancia y el volumen de datos de almacenamiento en bloques se deben crear en la misma zona.

ibmcloud is volume-create my-volume custom us-south-3 --iops 1000 --size 500

De la salida devuelta, guarde el ID del volumen en una variable para poder utilizarlo más tarde:

vol=0738-933c8781-f7f5-4a8f-8a2d-3bfc711788ee

El estado del volumen es pending cuando se crea por primera vez. Para poder continuar, el volumen debe pasar al estado available, proceso que tarda unos minutos.

Para comprobar el estado del volumen, ejecute el mandato siguiente:

ibmcloud is volume $vol

Adjuntar un volumen de datos Block Storage a una instancia

Utilice el siguiente comando para adjuntar el volumen a la instancia de servidor virtual, utilizando las variables que ha creado:

ibmcloud is instance-volume-attachment-add my-volume-attachment $instance $vol --auto-delete true

Añadir reglas al grupo de seguridad por defecto

Puede configurar el grupo de seguridad para definir el tráfico de entrada y de salida que se permite para la instancia. Por ejemplo, puede añadir una regla para permitir el tráfico de SSH.

Busque el grupo de seguridad para la VPC:

ibmcloud is vpc-sg $vpc

De la salida devuelta, guarde el ID en una variable para poder utilizarlo más tarde:

sg=0738-2d364f0a-a870-42c3-a554-000000981149

Ahora cree una regla para permitir el tráfico SSH:

ibmcloud is sg-rulec $sg inbound tcp --port-min=22 --port-max=22

Si lo desea, también puede añadir una regla para permitir el tráfico de ping:

ibmcloud is sg-rulec $sg inbound icmp --icmp-type 8 --icmp-code 0

Para las imágenes de Windows, asegúrese de que el grupo de seguridad que está asociado con la instancia permite el tráfico de protocolo de escritorio remoto de entrada y salida (puerto TCP 3389).

Creación de una dirección IP flotante para la instancia

Cree una dirección IP flotante si desea que se pueda acceder a su instancia desde Internet.

ibmcloud is floating-ip-reserve my-fip --nic $nic

A partir de la salida devuelta, guarde la dirección Address en una variable para poder utilizarla más adelante:

address=169.48.88.0

Iniciar sesión en su instancia

Por ejemplo, en Linux puede utilizar un mandato con este formato:

ssh -i $HOME/.ssh/id_rsa root@$address

El inicio de sesión de usuario 'root' está inhabilitado de forma predeterminada en Fedora Core OS. En las instancias de Fedora Core OS, se puede usar el inicio de sesión de usuario 'core' para iniciar sesión.

Cuando se le solicite continuar conectándose, escriba yes.

Los grupos de seguridad pueden impedir el acceso SSH a la instancia. Asegúrese de que el grupo de seguridad de la instancia permite el acceso SSH.

Para conectarse a una imagen de Windows, inicie la sesión utilizando su contraseña descifrada. Para ver instrucciones, consulte Conexión con la instancia de Windows.

Supervisión de la instancia

Puede supervisar el uso de CPU, de volumen, de memoria y de red de la instancia a lo largo del tiempo en la consola de IBM Cloud. Puesto que los datos de supervisión se almacenan en IBM Cloud Monitoring, debe autenticarse en una instancia del servicio de supervisión en su cuenta. Para obtener más información, consulte Iniciación a la supervisión.

Para IBM Cloud Hyper Protect Virtual Servers para instancias de IBM Cloud® Virtual Private Cloud, las métricas de memoria no se pueden recopilar porque Hyper Protect Virtual Servers para instancias de VPC se crean utilizando imágenes de ejecución segura y la memoria de una instancia de ejecución segura no es accesible.

Creación de una pasarela VPN

Cree una pasarela VPN en la subred si desea conectar de forma segura la VPC a otra red privada.

Para crear una pasarela VPN, ejecute el mandato siguiente:

ibmcloud is vpn-gateway-create my-vpn-gateway $subnet

A partir de la salida devuelta, guarde el ID de la pasarela VPN en una variable para poder utilizarlo más adelante, por ejemplo:

vpn_gateway="0757-7e91085b-dc11-4707-aa4d-66e735e9a2bc"

El estado de la pasarela VPN es pending cuando la crea por primera vez. Antes de poder continuar, la pasarela VPN debe pasar al estado available, lo que tarda unos minutos. Para comprobar el estado de la pasarela VPN, ejecute el mandato siguiente:

ibmcloud is vpn-gateway $vpn_gateway

Para crear una conexión VPN en la pasarela VPN con la dirección de igual 169.61.161.150 y la clave precompartida mykey, ejecute el mandato siguiente:

ibmcloud is vpn-gateway-connection-create my-vpn-conn $vpn_gateway 169.61.161.150 mykey

En este ejemplo, 169.61.161.150 es la dirección de pasarela homóloga, que especifica la dirección IP de la pasarela VPN para la red fuera de la VPC. El valor mykey es la clave de autenticación de la pasarela VPN para la red fuera de su VPC. Es una cadena de dígitos hexadecimales, o una frase de contraseña de caracteres ASCII imprimibles. Para ser compatible con la mayoría de los tipos de pasarela homólogas, esta serie debe seguir las reglas siguientes:

  • Puede ser una combinación de dígitos, minúsculas o mayúsculas, o los siguientes caracteres especiales: - + & ! @ # $ % ^ * ( ) . , :
  • La longitud de la cadena debe ser de 6 a 128 caracteres.
  • No se puede iniciar con 0x u 0s.

El estado de la conexión VPN es down cuando se crea por primera vez y se convierte en up una vez que se ha establecido la conexión. Para comprobar el estado de las conexiones VPN en una pasarela VPN, ejecute este mandato:

ibmcloud is vpn-gateway-connections $vpn_gateway

Enhorabuena.

Ha creado y configurado correctamente la VPC desde la CLI de IBM Cloud. Para probar más mandatos de CLI, consulte la Referencia de CLI.

Utilización de las API REST para crear recursos de VPC

Puede crear y configurar los recursos de IBM Cloud® Virtual Private Cloud utilizando las API REST.

Para crear y configurar su nube privada virtual (VPC) y otros recursos conectados, siga los pasos de las secciones siguientes, en este orden:

  1. Cree una VPC y una subred para definir la red.
  2. Si desea permitir que todos los recursos de la subred se comuniquen con Internet público, conecte una pasarela pública.
  3. Cree una instancia de servidor virtual. De forma predeterminada, se conecta un volumen de arranque de 100 GB a la instancia.
  4. Si desea más almacenamiento, cree un volumen de almacenamiento en bloque y conéctelo a la instancia.
  5. Para definir el tráfico entrante y saliente permitido para la instancia, configure su grupo de seguridad.
  6. Si desea que se pueda acceder a su instancia desde Internet, reserve y asocie una dirección IP flotante.

Antes de empezar

Defina variables correspondientes a señal de IAM, punto final de API y versión de API. Para obtener instrucciones, consulte Configuración del entorno de API y de CLI.

Una buena forma de obtener más información sobre la API es pulsar Obtener llamada de API de ejemplo en las páginas de suministro de la consola de IBM Cloud. Allí encontrará la secuencia correcta de solicitudes de API y podrá comprender mejor las acciones y sus dependencias.

creación de una vpc

Cree una IBM Cloud VPC llamada my-vpc.

curl -X POST "$vpc_api_endpoint/v1/vpcs?version=$api_version&generation=2" \
  -H "Authorization:$iam_token" \
  -d '{
      	"name": "my-vpc"
      }'

Debe enviar el parámetro generation con cada solicitud de API para especificar la generación que se va a utilizar. Para instancias de servidor virtual de generación 2, especifique generation=2. Para obtener más información, consulte Generación en la API de Virtual Private Cloud

Para el resto de las llamadas, es necesario conocer el ID de la VPC recién creada. Guarde el ID en una variable, por ejemplo:

vpc="0738-59de4046-3434-4d87-bb29-0c99c428c96e"

Para comprobar que la variable se ha guardado, ejecute echo $vpc y asegúrese de que la respuesta no está vacía.

En el ejemplo anterior no se crea una VPC con acceso clásico. Si la VPC necesita acceso a los recursos clásicos, consulte Configuración del acceso a la infraestructura clásica. Puedes habilitar una VPC sólo para acceso clásico mientras la estás creando. Además, solo puede tener una VPC de acceso clásico en su cuenta en cualquier momento.

Creación de un catálogo privado

Este campo es opcional. Si tiene previsto compartir imágenes de un catálogo privado, primero se debe crear el catálogo privado. Si selecciona una imagen de catálogo que pertenece a una cuenta diferente, tiene más consideraciones y limitaciones que revisar. Consulte Uso de referencias de imagen entre cuentas en un catálogo privado en la consola. Para crear un catálogo privado, consulte la guía de aprendizaje Incorporación de software al catálogo utilizando la CLI.

Creación de una subred

Para poder crear una subred, seleccione el prefijo de zona y dirección donde desea crearla. Para ver una lista de los prefijos de dirección para cada zona de la VPC, ejecute el mandato siguiente:

curl -X GET "$vpc_api_endpoint/v1/vpcs/$vpc/address_prefixes?version=$api_version&generation=2" \
  -H "Authorization:$iam_token"

Ahora, seleccione el prefijo de dirección por defecto para la zona us-south-3. En la respuesta, anote el bloque de CIDR del prefijo de la dirección. Cuando cree una subred, debe especificar un rango de IP que esté dentro de uno de los prefijos de dirección de la zona seleccionada.

Una subred no se puede redimensionar después de crearla.

curl -X POST "$vpc_api_endpoint/v1/subnets?version=$api_version&generation=2" \
  -H "Authorization:$iam_token" \
  -d '{
        "name": "my-subnet",
        "ipv4_cidr_block": "10.0.1.0/24",
        "zone": { "name": "us-south-3" },
        "vpc": { "id": "'$vpc'" }
      }'

Guarde el ID de la subred en una variable.

subnet="0738-35fb0489-7105-41b9-99de-033fae723006"

Para suministrar recursos en la subred, la subred debe estar en el estado Ready. Consulte el recurso de subred y asegúrese de que el estado sea Ready antes de continuar. Si el estado es failed, póngase en contacto con el equipo de soporte con los detalles. Puede intentar suministrar otra subred.

curl -X GET "$vpc_api_endpoint/v1/subnets/$subnet?version=$api_version&generation=2" \
  -H "Authorization: $iam_token"

Conexión de una pasarela pública

Conecte una pasarela pública a la subred si desea permitir que todos los recursos conectados se comuniquen con la Internet pública.

Cree una pasarela pública para la zona:

curl -X POST "$vpc_api_endpoint/v1/public_gateways?version=$api_version&generation=2" \
  -H "Authorization:$iam_token" \
  -d '{
        "name": "my-gateway",
        "zone": { "name": "us-south-3" },
        "vpc": { "id": "'$vpc'" }
      }'

Guarde el ID de la pasarela pública en una variable.

gateway="0738-ad0cded3-53a3-4d4a-9809-8c59b50d2b80"

Conecte la pasarela pública a la subred.

curl -X PUT "$vpc_api_endpoint/v1/subnets/$subnet/public_gateway?version=$api_version&generation=2" \
  -H "Authorization:$iam_token" \
  -d '{
        "id": "'$gateway'"
      }'

Solo se permite una pasarela pública por zona en una VPC, pero esa pasarela pública se puede conectar a varias subredes de la zona. Para encontrar la pasarela pública para una zona, ejecute el mandato ibmcloud is public-gateways y busque los valores de VPC y Zona en particular.

A continuación, puede recuperar y ver la pasarela pública conectada a la subred ejecutando el mandato siguiente.

curl -X GET "$vpc_api_endpoint/v1/subnets/$subnet/public_gateway?version=$api_version&generation=2" \
  -H "Authorization: $iam_token"

Adición de una clave SSH

Añada la clave SSH pública a la cuenta de IBM Cloud. Esta clave se especifica al crear la instancia, y la necesitará más adelante para iniciar sesión en la instancia. Puede utilizar una clave para suministrar varias instancias.

curl -X POST "$vpc_api_endpoint/v1/keys?version=$api_version&generation=2" \
  -H "Authorization:$iam_token" \
  -d '{
        "name": "my-key",
        "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQB/nAmOjTmezNUDKYvEeIRf2YnwM9/uUG1d0BYsc8/tRtx+RGi7N2lUbp728MXGwdnL9od4cItzky/zVdLZE2cycOa18xBK9cOWmcKS0A8FYBxEQWJ/q9YVUgZbFKfYGaGQxsER+A0w/fX8ALuk78ktP31K69LcQgxIsl7rNzxsoOQKJ/CIxOGMMxczYTiEoLvQhapFQMs3FL96didKr/QbrfB1WT6s3838SEaXfgZvLef1YB2xmfhbT9OXFE3FXvh2UPBfN+ffE7iiayQf/2XR+8j4N4bW30DiPtOQLGUrH1y5X/rpNZNlWW2+jGIxqZtgWg7lTy3mXy5x836Sj/6L"
      }'

Guarde el ID de la clave SSH en una variable, por ejemplo:

key="0738-35fb0489-7105-41b9-8764-033fae723006"

Selección de un perfil para la instancia

Llame a la API para listar todos los perfiles. El mandato siguiente muestra la lista de los perfiles disponibles.

curl -X GET "$vpc_api_endpoint/v1/instance/profiles?version=$api_version&generation=2" \
  -H "Authorization:$iam_token"

Guarde el nombre del perfil en una variable, que se utiliza más adelante para suministrar una instancia. Por ejemplo:

profile_name="b2-2x8"

Selección de una imagen para la instancia

Puede crear una instancia utilizando una imagen en stock, una imagen personalizada de su cuenta o una imagen que se ha compartido con su cuenta desde un catálogo privado. Ejecute una de las siguientes llamadas de API basándose en la imagen que tiene previsto utilizar.

  • Seleccione una imagen en stock o una imagen personalizada de su cuenta para la instancia.

    El mandato siguiente muestra la lista de las imágenes disponibles.

    curl -X GET "$vpc_api_endpoint/v1/images?version=$api_version&generation=2" \
      -H "Authorization:$iam_token"
    

    Guarde el ID de la imagen en una variable, que se utilizará más adelante para suministrar una instancia. Por ejemplo:

    image_id="0738-660198a6-52c6-21cd-7b57-e37917cef586"
    
  • Seleccione una imagen compartida de un catálogo privado para la instancia.

    Si selecciona una imagen de catálogo que pertenece a una cuenta diferente, tiene más consideraciones y limitaciones que revisar. Consulte Utilización de referencias de imagen entre cuentas en un catálogo privado en la API

    Puede suministrar una instancia desde la imagen de catálogo privada en la última versión de una oferta de producto de catálogo o desde una versión específica de la oferta de producto de catálogo.

    Para seleccionar la imagen de catálogo privada de la última versión de una oferta de producto de catálogo, consulte API de gestión de catálogos-Obtener oferta. Busque el CRN de la oferta y guárdelo en una variable para su uso posterior:

     offering_crn="crn:v1:bluemix:public:globalcatalog-collection:global::1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc:offering:00111601-0ec5-41ac-b142-96d1e64e6442-global"
    

    Para seleccionar la imagen de catálogo privada de una versión específica de una oferta de producto de catálogo, consulte API de gestión de catálogos-Obtener oferta. A continuación, vaya a Obtener oferta > Tipos > Versiones > CRN para recuperar el CRN de la versión y guardarlo en una variable para su uso posterior:

    version_crn="crn:v1:bluemix:public:globalcatalog-collection:global::1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc:version:00111601-0ec5-41ac-b142-96d1e64e6442-global/ec66bec2-6a33-42d6-9323-26dd4dc8875d-global"
    

Creación de la instancia

Cree la instancia en la subred recién creada. Pase la clave SSH pública para que pueda iniciar la sesión después de que se suministre la instancia. Ejecute una de las siguientes llamadas de API basándose en el tipo de imagen que tiene previsto utilizar.

  • Seleccione una imagen en stock o una imagen personalizada de su cuenta para la instancia.

    curl -X POST "$vpc_api_endpoint/v1/instances?version=$api_version&generation=2" \
      -H "Authorization:$iam_token" \
      -d '{
            "name": "my-instance",
            "zone": {
              "name": "us-south-3"
            },
            "vpc": {
              "id": "'$vpc'"
            },
            "primary_network_interface": {
              "subnet": {
                "id": "'$subnet'"
              }
            },
            "keys":[{"id": "'$key'"}],
            "profile": {
              "name": "'$profile_name'"
             },
            "image": {
              "id": "'$image_id'"
             }
            }'
    
  • Cree una instancia utilizando una imagen de catálogo privada de la última versión de una oferta de producto de catálogo.

    curl -X POST "$vpc_api_endpoint/v1/instances?version=$api_version&generation=2" \
      -H "Authorization:$iam_token" \
      -d '{
            "name": "my-instance",
            "zone": {
              "name": "us-south-3"
            },
            "vpc": {
              "id": "'$vpc'"
            },
            "primary_network_interface": {
              "subnet": {
                "id": "'$subnet'"
              }
            },
            "keys":[{"id": "'$key'"}],
            "profile": {
              "name": "'$profile_name'"
             },
            "catalog_offering": {
              "offering": {
                "crn": "'$offering_crn'"
             }
            }'
    
  • Cree una instancia utilizando una imagen de catálogo privada de una versión específica de una oferta de producto de catálogo.

    curl -X POST "$vpc_api_endpoint/v1/instances?version=$api_version&generation=2" \
      -H "Authorization:$iam_token" \
      -d '{
            "name": "my-instance",
            "zone": {
              "name": "us-south-3"
            },
            "vpc": {
              "id": "'$vpc'"
            },
            "primary_network_interface": {
              "subnet": {
                "id": "'$subnet'"
              }
            },
            "keys":[{"id": "'$key'"}],
            "profile": {
              "name": "'$profile_name'"
             },
            "catalog_offering": {
              "version": {
                "crn": "'$version_crn'"
             }
            }'
    

Guarde el ID de la instancia como una variable, por ejemplo:

instance="0738-35fb0489-7105-41b9-99de-033fae723006"

El estado de la instancia es stopped cuando la crea. Antes de poder continuar, la instancia debe pasar al estado running, proceso que tarda unos minutos. Consulte el estado de la instancia y asegúrese de que esté running.

curl -X GET "$vpc_api_endpoint/v1/instances/$instance?version=$api_version&generation=2" \
  -H "Authorization: $iam_token"

Guarde el ID de la interfaz de red primaria de la instancia que se devuelve en la llamada GET/instance API, por ejemplo:

network_interface="0738-7710e766-dd6e-41ef-9d36-06f7adbef33d"

No puede obtener el ID de la interfaz de red primaria hasta que consulte la instancia específica.

(Opcional) Crear y adjuntar un volumen de datos Block Storage

Puede crear un volumen de datos Block Storage y adjuntarlo a su instancia de servidor virtual como almacenamiento auxiliar. Cree un volumen de datos con una solicitud similar a este ejemplo. Este procedimiento muestra los perfiles de volumen, crea un volumen, guarda el ID de volumen en una variable, comprueba el estado del volumen y, a continuación, crea la conexión de volumen.

Mostrar una lista de perfiles de volumen:

curl -X GET "$vpc_api_endpoint/v1/volumes/profiles?version=$api_version&generation=2" \
  -H "Authorization: $iam_token" \

Los perfiles pueden ser generales (3 IOPS/GB), 5iops-tier, 10-iops-tier o personalizados. Para obtener más información sobre la capacidad de volumen y los rangos de IOPS en función del perfil de volumen que seleccione, consulte Perfiles.

Cree el volumen de datos:

curl -X POST "$vpc_api_endpoint/v1/volumes?version=$api_version&generation=2" \
  -H "Authorization: $iam_token" \
  -d '{
        "name": "my-volume",
        "iops": 1000,
        "capacity": 100,
        "zone": {
            "name": "us-south-3"
            },
        "profile": {
            "name": "custom"
            }
      }'

Guarda el ID del volumen en una variable:

volume_id="0738-640774d7-2adc-4609-add9-6dfd96167a8f"

El estado del volumen es pending cuando se crea por primera vez. Para poder continuar, el volumen debe pasar al estado available, proceso que tarda unos minutos.

Comprueba el estado del volumen:

curl -X GET "$vpc_api_endpoint/v1/volumes/$volume_id?version=$api_version&generation=2" \
  -H "Authorization: $iam_token"

Cree un anexo de volumen para adjuntar el nuevo volumen de datos a la instancia de servidor virtual. Utilice la variable de ID de instancia que ha creado anteriormente en la solicitud. Utilice la variable de ID de volumen para especificar el volumen.

Cree la conexión de volumen:

curl -X POST "$vpc_api_endpoint/v1/instances/$instance/volume_attachments?version=$version&generation=2" \
  -H "Authorization: $iam_token" \
  -d '{
        "name": "my-volume-attachment",
        "volume": {
            "id": "'$volume_id'"
            }
      }'

Añadir reglas al grupo de seguridad por defecto

Puede configurar el grupo de seguridad para definir el tráfico de entrada y de salida que se permite para la instancia. Por ejemplo, puede añadir una regla para permitir el tráfico de SSH.

Busque el grupo de seguridad para la VPC:

curl -X GET "$vpc_api_endpoint/v1/vpcs/$vpc/default_security_group?version=$api_version&generation=2" \
  -H "Authorization:$iam_token"

Guarde el ID del grupo de seguridad como una variable, por ejemplo:

sg=0738-2d364f0a-a870-42c3-a554-000000981149

Ahora cree una regla para permitir el tráfico SSH entrante para que pueda conectarse a la instancia:

curl -X POST "$vpc_api_endpoint/v1/security_groups/$sg/rules?version=$api_version&generation=2" \
  -H "Authorization: $iam_token" \
  -d '{
        "direction": "inbound",
        "protocol": "tcp",
        "port_min": 22,
        "port_max": 22
      }'

Para las imágenes de Windows, asegúrese de que el grupo de seguridad que está asociado con la instancia permite el tráfico de protocolo de escritorio remoto de entrada y salida (puerto TCP 3389).

Crear una dirección IP flotante

Cree una dirección IP flotante si desea que se pueda acceder a su instancia desde Internet. Utilice la interfaz de red primaria de la instancia como destino para la dirección IP flotante.

curl -X POST "$vpc_api_endpoint/v1/floating_ips?version=$api_version&generation=2" \
  -H "Authorization:$iam_token" \
  -d '{
        "name": "my-floatingip",
        "target": {
            "id":"'$network_interface'"
        }
      }
'

Guarde el ID de la dirección IP flotante en una variable, por ejemplo.

floating_ip="0738-35fb0489-7105-41b9-99de-033fae723006"

Iniciar sesión en su instancia

Para conectarse a la instancia, utilice la dirección IP flotante que ha creado. Para obtener la dirección IP flotante, ejecute el mandato siguiente:

curl -X GET "$vpc_api_endpoint/v1/floating_ips/$floating_ip?version=$api_version&generation=2" \
  -H "Authorization:$iam_token"

En Linux, utilice la dirección (address) de la IP flotante para conectarse a la instancia con SSH:

ssh -i <private_key_file> root@<floating ip address>

El inicio de sesión de usuario 'root' está inhabilitado de forma predeterminada en Fedora Core OS. En las instancias de Fedora Core OS, se puede usar el inicio de sesión de usuario 'core' para iniciar sesión.

Para conectarse a una imagen de Windows, inicie la sesión utilizando su contraseña descifrada. Para ver instrucciones, consulte Conexión con la instancia de Windows.

Supervisión de la instancia

Puede supervisar el uso de CPU, de volumen, de memoria y de red de la instancia a lo largo del tiempo en la consola de IBM Cloud. Puesto que los datos de supervisión se almacenan en IBM Cloud Monitoring, debe autenticarse en una instancia de IBM Cloud Monitoring en su cuenta. Para obtener más información, consulte IBM Cloud Monitoring.

(Opcional): Supresión de los recursos

Puedes eliminar recursos en cualquier momento. Sin embargo, un recurso no se puede suprimir si lo necesitan otros recursos. Por ejemplo, no se puede suprimir una VPC si contiene instancias, subredes o pasarelas públicas. Para obtener instrucciones sobre cómo eliminar una VPC y todos sus recursos, consulte Eliminación de una VPC con las API de REST.

Enhorabuena.

Ha creado y configurado correctamente su VPC utilizando las API REST. Para probar más mandatos de API, consulte la API de Virtual Private Cloud.