Criando recursos de VPC com a CLI e API

Além de criar uma VPC, também é possível criar recursos de VPC, como uma instância, uma sub-rede e um volume de armazenamento de bloco.

Para obter mais informações sobre como criar recursos de VPC usando o console IBM Cloud, consulte Uso do console IBM Cloud para criar recursos de VPC.

Usando a CLI para criar recursos do VPC

É possível criar e configurar um IBM Cloud® Virtual Private Cloud usando a CLI do IBM Cloud®.

Para criar e configurar seu Virtual Private Cloud (VPC) e outros recursos anexados, execute as etapas nas seções a seguir, nesta ordem:

  1. Crie uma VPC e uma sub-rede para definir a rede.
  2. Para permitir que todos os recursos da sub-rede se comuniquem com a Internet pública, conecte um gateway público.
  3. Crie uma instância de servidor virtual. Por padrão, um volume de inicialização está associado à instância. Para a maioria das instâncias de servidor virtual, o tamanho do volume de inicialização padrão é de 100 GB O tamanho do volume de inicialização padrão para uma instância do servidor virtual z/OS é de 250 GB.
  4. Se desejar mais armazenamento, crie um volume de armazenamento de bloco e conecte-o à sua instância.
  5. Para definir o tráfego de entrada e saída permitido para a instância, configure seu grupo de segurança.
  6. Se desejar que sua instância seja acessada pela Internet, reserve e associe um endereço IP flutuante.

Antes de Iniciar

Certifique-se de configurar o seu ambiente CLI.

Efetuar login na IBM Cloud

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

Esse comando retorna uma URL e solicita uma senha. Acesse essa URL em seu navegador e efetue login. Se bem-sucedido, você receberá uma senha descartável. Copie essa senha e cole-a como uma resposta no prompt. Após as etapas de autenticação, será solicitado que você escolha sua conta. Se você tiver acesso a diversos usuários, selecione aquele que deseja usar para efetuar login.

Quando for solicitada a seleção de uma região, selecione us-south.

Responda a quaisquer prompts restantes para concluir o login.

criando uma vpc

Use o comando a seguir para criar uma VPC denominada my-vpc.

ibmcloud is vpc-create my-vpc

A partir do resultado retornado, salve o ID em uma variável para poder usá-lo mais tarde, por exemplo:

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

O exemplo anterior não cria um VPC com acesso clássico. Se o VPC precisar de acesso aos seus recursos clássicos, consulte Configurando o acesso à infraestrutura clássica É possível habilitar uma VPC para acesso clássico apenas durante sua criação. Além disso, é possível ter apenas um VPC de acesso clássico em sua conta a qualquer momento.

Criando um catálogo privado

Esta etapa é opcional. Se você planeja compartilhar imagens de um catálogo privado, o catálogo privado deve ser criado primeiro. Se você selecionar uma imagem de catálogo que pertença a uma conta diferente, terá considerações e limitações adicionais para revisar. Consulte Usando referências de imagem entre contas em um catálogo privado. Para criar um catálogo privado, veja o tutorial Software de Onboarding para o seu catálogo usando a CLI.

Criando uma sub-rede

Antes de criar uma sub-rede, selecione o prefixo de endereço e a zona nos quais ela será criada. Para listar os prefixos de endereço para cada zona em seu VPC, execute o comando a seguir:

ibmcloud is vpc-address-prefixes $vpc

Agora é necessário selecionar o prefixo de endereço padrão para a zona do us-south-3 Na saída do comando, observe o bloco CIDR do prefixo de endereço. Ao criar uma sub-rede, deve-se especificar um intervalo de IP que esteja em um dos prefixos de endereço da zona selecionada.

Uma sub-rede não pode ser redimensionada após a sua criação.

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

A partir do resultado retornado, salve o ID em uma variável para poder usá-lo mais tarde, por exemplo:

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

O status da sub-rede é “ pending ” (em espera) quando você a cria pela primeira vez. Antes de criar recursos na sub-rede, o status dela precisa ser mudado para available, o que demora alguns segundos para acontecer. Para verificar o status da sub-rede, execute este comando:

ibmcloud is subnet $subnet

Anexando um gateway público

Conecte um gateway público à sub-rede se desejar que todos os recursos conectados se comuniquem com a Internet pública.

Para criar um gateway público, execute o comando a seguir:

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

A partir do resultado retornado, salve o ID em uma variável para poder usá-lo mais tarde, por exemplo:

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

Para conectar o gateway público à sua sub-rede, execute o comando a seguir:

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

Apenas um gateway público por zona é permitido em uma VPC, mas esse gateway público pode ser conectado a diversas sub-redes na zona. Para localizar o gateway público para uma zona, execute o comando ibmcloud is public-gateways e procure os valores específicos de VPC e Zona.

Incluindo uma chave SSH

Inclua sua chave SSH pública em sua conta do IBM Cloud. Essa chave é definida no momento da criação da instância e será necessária posteriormente para fazer login na instância. É possível usar uma chave para provisionar diversas instâncias.

Para ver as chaves disponíveis em sua conta do IBM Cloud, execute este comando:

ibmcloud is keys

Para incluir uma chave, execute o comando a seguir. Substitua pelo caminho para o seu arquivo de chave SSH. Para uma chave SSH RSA, é possível usar o caminho para seu arquivo id_rsa.pub. Para uma chave SSH Ed25519, é possível usar o caminho para seu arquivo id_ed25519.pub..

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

A partir do resultado retornado, salve o ID em uma variável para poder usá-lo mais tarde, por exemplo:

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

Selecionando um perfil para a instância

Para listar todos os perfis de instância disponíveis, execute o comando a seguir:

ibmcloud is instance-profiles

Salve o perfil que você planeja usar como uma variável, que é usada posteriormente para provisionar uma instância

Verifique se o perfil usado está disponível na zona em que você planeja criar a instância.

Alguns perfis podem não estar disponíveis devido a um dos seguintes motivos:

  • O número de interfaces de rede no servidor virtual excede os limites do perfil. Você pode remover interfaces de rede para selecionar entre mais perfis. Para obter mais informações, consulte “Redimensionamento de um servidor virtual ”.
  • A imagem selecionada contém uma expressão de uso permitido que não é compatível com o perfil. Nesses casos, selecione uma imagem com uma expressão de uso permitido que seja compatível com o perfil desejado. Para obter mais informações, consulte Adição de expressões de uso permitido a imagens personalizadas.

Selecionando uma imagem para a instância

É possível criar uma instância usando uma imagem de estoque, uma imagem customizada de sua conta ou uma imagem que foi compartilhada com sua conta por meio de um catálogo privado. Execute um dos comandos a seguir com base na imagem que você planeja usar:

  • Selecione uma imagem de estoque ou uma imagem customizada a partir de sua conta para sua instância.

    1. Para listar todas as imagens disponíveis, execute o comando ibmcloud is images Se a lista for muito longa, considere filtrá-la como o exemplo a seguir faz.

      $ 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          -
      

      As imagens descontinuadas não incluem o suporte mais atual.

    2. Selecione uma imagem como ibm-debian-12-0-minimal-amd64-1 e salve o ID da imagem como uma variável a ser usada posteriormente para provisionar uma instância

      image=$(ibmcloud is images | grep -i "ibm-debian-12-0-minimal-amd64-1" | cut -d" " -f1)
      
  • Selecione uma imagem compartilhada a partir de um catálogo privado para a instância

    Se você selecionar uma imagem de catálogo que pertença a uma conta diferente, terá considerações e limitações adicionais para revisar. Veja Usando referências de imagem de cross-account em um catálogo privado na CLI

    • Para listar todas as ofertas de imagem do catálogo privado disponíveis, execute o comando a seguir.

      ibmcloud is catalog-image-offerings
      

      Este comando retorna o identificador de cada oferta de imagem e o identificador do catálogo privado onde a imagem reside. Salve o offering_id e o catalog_id em variáveis, que é usado posteriormente para provisionar uma instância

      offering_id=6bf79f7b-de48-4ce8-8cae-866b376f2889
      catalog_id=71306253-8444-4cae-a45d-64d35e5393ec
      
    • Para obter o offering_crn para a oferta e o offering_version_crn para cada versão na oferta, execute o comando a seguir.

      ibmcloud is catalog-image-offering $catalog_id $offering_id
      

      Ao provisionar uma instância, é possível provisionar a instância por meio da imagem privada gerenciada por catálogo na versão mais recente em uma oferta de produto de catálogo usando o valor offering_crn ou por meio da versão específica na oferta de produto de catálogo usando o valor offering_version_crn.

      Salve o offering_crn e o offering_version_crn em variáveis, que é usado posteriormente para provisionar uma instância

      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"
      

Criando a instância.

Crie a instância na sub-rede recém-criada. Passe a sua chave SSH pública para que seja possível efetuar login depois que a instância for provisionada.

Execute um dos comandos da CLI a seguir com base na imagem que você planeja usar.

  • Crie uma instância usando um banco de imagens ou uma imagem customizada de sua conta para sua instância.

    ibmcloud is instance-create my-instance $vpc us-south-3 bx2-2x8 $subnet --image-id $image --keys $key
    
  • Crie uma instância usando uma imagem gerenciada por catálogo privada da versão de imagem mais recente.

    ibmcloud is instance-create my-instance $vpc us-south-3 bx2-2x8 $subnet --catalog-offering $offering_crn --keys $key
    
  • Crie uma instância usando uma imagem gerenciada por catálogo privada de uma versão específica da imagem.

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

As informações sobre a interface de rede que é criada para a nova instância não são retornadas após a criação da instância.

A partir do resultado retornado, salve o ID da instância em uma variável para poder usá-lo mais tarde, por exemplo:

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

O status da instância é “ pending ” (em espera) quando você a cria pela primeira vez. Antes de continuar, o status dela precisa ser mudado para running, o que demora alguns minutos para acontecer. Para verificar o status da instância, execute este comando:

ibmcloud is instance $instance

Na saída retornada, salve a ID da VNI (Virtual Network Interface) em uma variável para poder usá-la posteriormente, por exemplo:

vni="0717-0b45c763-fada-4d44-8f46-e71154ec11e0"

Criação de um volume de dados do tipo “ Block Storage ”

Se desejar mais armazenamento, crie um volume de armazenamento de bloco e conecte-o à sua instância de servidor virtual. Ao criar um volume de armazenamento de bloco, selecione um perfil para otimizar o desempenho de suas cargas de trabalho de cálculo. Para obter mais informações sobre capacidade de volume e intervalos de IOPS com base no perfil de volume selecionado, consulte Perfis.

Para ver uma lista de perfis de volume, execute:

ibmcloud is volume-profiles

Execute este comando para criar um volume de dados de armazenamento de bloco. Especifique um nome para seu volume, perfil de volume e a zona em que você está criando o volume. Para anexar um volume de dados de armazenamento de bloco a uma instância, a instância e o volume de dados de armazenamento de bloco devem ser criados na mesma zona.

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

A partir do resultado retornado, salve o ID do volume em uma variável para poder usá-lo mais tarde:

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

O status do volume é “ pending ” quando ele é criado pela primeira vez. Antes de continuar, o volume precisa mover-se para o status available, que leva alguns minutos.

Para verificar o status do volume, execute este comando:

ibmcloud is volume $vol

Conectando um volume de dados do Block Storage a uma instância

Use o comando a seguir para associar o volume à instância do servidor virtual, utilizando as variáveis que você criou:

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

Adicionando regras ao grupo de segurança padrão

É possível configurar o grupo de segurança para definir o tráfego de entrada e de saída que é permitido para a instância. Por exemplo, é possível incluir uma regra para permitir o tráfego SSH.

Localize o grupo de segurança para a VPC:

ibmcloud is vpc-sg $vpc

A partir do resultado retornado, salve o ID em uma variável para poder usá-lo mais tarde:

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

Agora, crie uma regra para permitir o tráfego SSH:

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

Opcionalmente, também é possível incluir uma regra para permitir o tráfego de ping:

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

Para imagens do Windows, certifique-se de que o grupo de segurança que está associado à instância permita o tráfego de entrada e saída do Remote Desktop Protocol (porta TCP 3389).

Criação de um endereço IP flutuante para a instância

Crie um endereço IP flutuante se desejar que sua instância seja acessada pela Internet.

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

Por exemplo:

ibmcloud is floating-ip-reserve my-fip --vni $vni
Creating floating IP my-fip under account rnos's Account as user bob@ibm.com...

ID               r006-a398f234-7785-4e28-8861-02a96c928fa3
Address          52.118.151.163
Name             my-fip
CRN              crn:v1:bluemix:public:is:us-south-1:a/b21af5a9874242b7851e780943d795a9::floating-ip:r006-a398f234-7785-4e28-8861-02a96c928fa3
Status           pending
Zone             us-south-1
Created          2026-03-04T10:48:37+05:30
Target           ID                                          Target type                 Name
                 0717-0b45c763-fada-4d44-8f46-e71154ec11e0   virtual_network_interface   alto-uncrushed-disliking-dismiss

Resource group   Default

A partir do resultado retornado, salve o Address em uma variável para poder usá-lo mais tarde:

address=52.118.151.163

Fazendo login na sua instância

No Linux, por exemplo, é possível usar um comando neste formato:

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

O login de usuário 'root' está desativado por padrão no Fedora Core OS. O login de usuário 'core' pode ser usado para efetuar login em instâncias do Fedora Core OS.

Quando for solicitado que continue se conectando, digite yes.

Os grupos de segurança podem impedir o acesso SSH à instância. Certifique-se de que o grupo de segurança da instância permita o acesso SSH.

Para se conectar a uma imagem do Windows, efetue login usando sua senha decriptografada. Para obter instruções, consulte Conectando-se à sua instância do Windows.

Monitorando sua instância

É possível monitorar o uso da CPU, do volume, da memória e da rede de sua instância ao longo do tempo no console do IBM Cloud. Como os dados de monitoramento são armazenados no IBM Cloud Monitoring, deve-se realizar a autenticação em uma instância do serviço de monitoramento na conta. Para obter mais informações, consulte Introdução ao monitoramento.

Para as instâncias IBM Cloud Hyper Protect Virtual Servers para IBM Cloud® Virtual Private Cloud, as métricas de memória não podem ser coletadas porque as instâncias Hyper Protect Virtual Servers para VPC são criadas usando imagens do Secure Execution e a memória de uma instância de execução segura não está acessível.

Criando um gateway VPN

Crie um gateway de VPN na sub-rede se você quiser conectar de forma segura a sua VPC a outra rede privada.

Para criar um gateway de VPN, execute o comando a seguir:

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

A partir do resultado retornado, salve o ID do gateway VPN em uma variável para poder usá-lo mais tarde, por exemplo:

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

O status do gateway VPN é “ pending ” (em espera) quando você o cria pela primeira vez. Para que seja possível continuar, o gateway de VPN precisa mudar para o status available, o que leva alguns minutos. Para verificar o status do gateway de VPN, execute este comando:

ibmcloud is vpn-gateway $vpn_gateway

Para criar uma conexão de VPN no gateway de VPN para o endereço de peer 169.61.161.150 e a chave pré-compartilhada mykey, execute o comando a seguir:

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

Neste exemplo, o 169.61.161.150 é o endereço do gateway de peer, que especifica o endereço IP do gateway de VPN para a rede fora de sua VPC O valor mykey é a chave de autenticação do gateway VPN para a rede externa à sua VPC. É uma sequência de dígitos hexadecimais ou uma senha composta por caracteres ASCII imprimíveis. Para ser compatível com a maioria dos tipos de gateway de peer, esta sequência deve seguir estas regras:

  • Pode ser uma combinação de dígitos, letras minúsculas ou maiúsculas, ou os seguintes caracteres especiais: - + & ! @ # $ % ^ * ( ) . , :
  • O comprimento da sequência deve ser de 6 a 128 caracteres.
  • Não pode iniciar com 0x ou 0s.

O status da conexão de VPN é down quando ele é criado pela primeira vez e se torna up depois que a conexão é estabelecida. Para verificar o status das conexões de VPN em um gateway de VPN, execute este comando:

ibmcloud is vpn-gateway-connections $vpn_gateway

Parabéns!

Você criou e configurou com sucesso o seu VPC por meio da CLI do IBM Cloud. Para experimentar mais comandos da CLI, consulte a Referência da CLI.

Usando as APIs de REST para criar recursos do VPC

É possível criar e configurar recursos d IBM Cloud® Virtual Private Cloud por meio das APIs REST.

Para criar e configurar seu Virtual Private Cloud (VPC) e outros recursos anexados, execute as etapas nas seções a seguir, nesta ordem:

  1. Crie uma VPC e uma sub-rede para definir a rede.
  2. Para permitir que todos os recursos da sub-rede se comuniquem com a Internet pública, conecte um gateway público.
  3. Crie uma instância de servidor virtual. Por padrão, um volume de inicialização de 100 GB é conectado a ela.
  4. Se desejar mais armazenamento, crie um volume de armazenamento de bloco e conecte-o à sua instância.
  5. Para definir o tráfego de entrada e saída permitido para a instância, configure seu grupo de segurança.
  6. Se desejar que sua instância seja acessada pela Internet, reserve e associe um endereço IP flutuante.

Antes de Iniciar

Defina variáveis ​​para o token do IAM e para o terminal e a versão da API. Para obter instruções, consulte Configurando seu ambiente da API e da CLI.

Uma boa maneira de aprender mais sobre a API é clicar em Obter chamada da API de amostra nas páginas de provisionamento do console do IBM Cloud. É possível visualizar a sequência correta de solicitações de API e entender melhor as ações e suas dependências.

criando uma vpc

Crie um IBM Cloud VPC chamado my-vpc.

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

O parâmetro generation deve ser enviado com cada solicitação de API para especificar qual geração será usada. Para instâncias de servidor virtual de geração 2, especifique generation=2. Para obter mais informações, consulte Geração na API do Virtual Private Cloud

Para as demais chamadas, é necessário saber o ID da VPC recém-criada. Salve o ID em uma variável, por exemplo:

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

Para verificar se a variável foi salva, execute echo $vpc e certifique-se de que a resposta não esteja vazia.

O exemplo anterior não cria um VPC com acesso clássico. Se o VPC precisar de acesso aos seus recursos clássicos, consulte Configurando o acesso à infraestrutura clássica É possível habilitar uma VPC para acesso clássico apenas durante sua criação. Além disso, é possível ter apenas um VPC de acesso clássico em sua conta a qualquer momento.

Criando um catálogo privado

Esta etapa é opcional. Se você planeja compartilhar imagens de um catálogo privado, o catálogo privado deve ser criado primeiro. Se você selecionar uma imagem de catálogo que pertença a uma conta diferente, terá considerações e limitações adicionais para revisar. Consulte Uso de referências de imagem entre contas em um catálogo privado no console. Para criar um catálogo privado, veja o tutorial Software de Onboarding para o seu catálogo usando a CLI.

Criando uma sub-rede

Antes de criar uma sub-rede, selecione o prefixo de endereço e a zona nos quais ela será criada. Para listar os prefixos de endereço para cada zona em seu VPC, execute o comando a seguir:

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

Agora, selecione o prefixo de endereço padrão para a zona us-south-3. Na resposta, observe o bloco CIDR do prefixo de endereço. Ao criar uma sub-rede, deve-se especificar um intervalo de IP que esteja em um dos prefixos de endereço da zona selecionada.

Uma sub-rede não pode ser redimensionada após a sua criação.

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'" }
      }'

Salve o ID da sub-rede em uma variável.

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

Para provisionar recursos em sua sub-rede, o status dela deve ser Ready. Antes de continuar, consulte o recurso da sub-rede e verifique se o status é Ready. Se o status for failed, entre em contato com o suporte com os detalhes. É possível tentar continuar experimentando provisionar outra sub-rede.

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

Anexando um gateway público

Conecte um gateway público à sub-rede se desejar que todos os recursos conectados se comuniquem com a Internet pública.

Crie um gateway público para a 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'" }
      }'

Salve o ID do gateway público em uma variável.

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

Conecte o gateway público à sua sub-rede.

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

Apenas um gateway público por zona é permitido em uma VPC, mas esse gateway público pode ser conectado a diversas sub-redes na zona. Para localizar o gateway público para uma zona, execute o comando ibmcloud is public-gateways e procure os valores específicos de VPC e Zona.

Em seguida, é possível recuperar e visualizar o gateway público que é anexado à sub-rede executando o comando a seguir.

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

Incluindo uma chave SSH

Inclua sua chave SSH pública em sua conta do IBM Cloud. Essa chave é definida no momento da criação da instância e será necessária posteriormente para fazer login na instância. É possível usar uma chave para provisionar diversas instâncias.

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"
      }'

Salve o ID da chave SSH em uma variável, por exemplo:

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

Selecionando um perfil para sua instância

Ligue para a API para listar todos os perfis. O comando a seguir lista os perfis disponíveis.

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

Salve o nome do perfil em uma variável, que será usado posteriormente para provisionar uma instância Por exemplo,

profile_name="b2-2x8"

Verifique se o perfil usado está disponível na zona em que você planeja criar a instância.

Alguns perfis podem não estar disponíveis devido a um dos seguintes motivos:

  • O número de interfaces de rede no servidor virtual excede os limites do perfil. Você pode remover interfaces de rede para selecionar entre mais perfis. Para obter mais informações, consulte “Redimensionamento de um servidor virtual ”.
  • A imagem selecionada contém uma expressão de uso permitido que não é compatível com o perfil. Nesses casos, selecione uma imagem com uma expressão de uso permitido que seja compatível com o perfil desejado. Para obter mais informações, consulte Adição de expressões de uso permitido a imagens personalizadas.

Selecionando uma imagem para sua instância

É possível criar uma instância usando uma imagem de estoque, uma imagem customizada de sua conta ou uma imagem que foi compartilhada com sua conta por meio de um catálogo privado. Execute uma das chamadas de API a seguir com base na imagem que você planeja usar.

  • Selecione uma imagem de estoque ou uma imagem customizada a partir de sua conta para sua instância.

    O comando a seguir lista as imagens disponíveis.

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

    Salve o ID da imagem em uma variável, que deve ser usada posteriormente para provisionar uma instância Por exemplo,

    image_id="0738-660198a6-52c6-21cd-7b57-e37917cef586"
    
  • Selecione uma imagem compartilhada a partir de um catálogo privado para sua instância.

    Se você selecionar uma imagem de catálogo que pertença a uma conta diferente, terá considerações e limitações adicionais para revisar. Veja Usando referências de imagem de cross-account em um catálogo privado na API

    Você pode fornecer uma instância a partir da imagem do catálogo privado na versão mais recente em uma oferta de produto de catálogo ou a partir de uma versão específica na oferta do produto de catálogo.

    Para selecionar a imagem do catálogo privado a partir da versão mais recente de uma oferta do produto de catálogo, consulte API do Catalog Management-Obter oferta. Localize o CRN de oferta e salve-o em uma variável para uso posterior:

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

    Para selecionar a imagem do catálogo privado de uma versão específica de uma oferta de produto de catálogo, consulte API de Gerenciamento de Catálogo-Obter Oferta. Em seguida, acesse Obter oferta> Tipos> Versões> CRN para recuperar o CRN da versão e salvá-lo em uma variável para 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"
    

Criando a instância.

Crie a instância na sub-rede recém-criada. Passe a sua chave SSH pública para que seja possível efetuar login depois que a instância for provisionada. Execute uma das chamadas de API a seguir com base no tipo de imagem que você planeja usar

  • Selecione uma imagem de estoque ou uma imagem customizada a partir de sua conta para sua instância.

    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'"
             }
            }'
    
  • Crie uma instância usando uma imagem de catálogo privada da versão mais recente de uma oferta de produto 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'"
             }
            }'
    
  • Crie uma instância usando uma imagem de catálogo privada de uma versão específica de uma oferta de produto de catálogos

    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'"
             }
            }'
    

Salve o ID da instância em uma variável, por exemplo:

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

O status da instância é stopped quando você a cria. Antes de continuar, o status dela precisa ser mudado para running, o que demora alguns minutos para acontecer. Consulte o status da instância e certifique-se de que ele seja running.

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

Salve o ID da interface de rede primária da instância retornado na chamada GET/instance API, por exemplo:

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

Não é possível obter o ID da interface de rede primária até consultar a instância específica.

(Opcional) Criação e vinculação de um volume de dados do tipo “ Block Storage ”

Você pode criar um volume de dados do tipo “ Block Storage ” e conectá-lo à sua instância de servidor virtual como armazenamento auxiliar. Crie um volume de dados com um pedido similar a este exemplo. Esse procedimento mostra os perfis de volume, cria um volume, salva a ID do volume em uma variável, verifica o status do volume e, em seguida, cria o anexo de volume.

Mostrar uma lista de perfis de volume:

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

Os perfis podem ser de propósito geral (3 IOPS/GB), 5iops-tier, 10-iops-tier e customizado. Para obter mais informações sobre capacidade de volume e intervalos de IOPS com base no perfil de volume selecionado, consulte Perfis.

Crie o volume de dados:

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

Salve o ID do volume em uma variável:

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

O status do volume é “ pending ” quando ele é criado pela primeira vez. Antes de continuar, o volume precisa mover-se para o status available, que leva alguns minutos.

Verifique o status do volume:

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

Crie uma conexão de volume para associar o novo volume de dados à instância do servidor virtual. Use a variável de ID da instância que você criou anteriormente na solicitação. Use a variável ID de volume para especificar o volume.

Crie o anexo de volume:

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

Adicionando regras ao grupo de segurança padrão

É possível configurar o grupo de segurança para definir o tráfego de entrada e de saída que é permitido para a instância. Por exemplo, é possível incluir uma regra para permitir o tráfego SSH.

Localize o grupo de segurança para a VPC:

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

Salve o ID do grupo de segurança em uma variável, por exemplo:

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

Agora, crie uma regra para permitir o tráfego SSH de entrada, para que você possa se conectar à instância:

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

Para imagens do Windows, certifique-se de que o grupo de segurança que está associado à instância permita o tráfego de entrada e saída do Remote Desktop Protocol (porta TCP 3389).

Criação de um endereço IP flutuante

Crie um endereço IP flutuante se desejar que sua instância seja acessada pela Internet. Use a interface de rede primária da instância como o destino para o endereço IP flutuante.

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'"
        }
      }
'

Salve o ID do endereço IP flutuante em uma variável, por exemplo:

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

Fazendo login na sua instância

Para se conectar à instância, use o endereço IP flutuante que você criou. Para obtê-lo, execute o comando a seguir:

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

No Linux, use o address do IP flutuante para conectar-se à instância com SSH:

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

O login de usuário 'root' está desativado por padrão no Fedora Core OS. O login de usuário 'core' pode ser usado para efetuar login em instâncias do Fedora Core OS.

Para se conectar a uma imagem do Windows, efetue login usando sua senha decriptografada. Para obter instruções, consulte Conectando-se à sua instância do Windows.

Monitorando sua instância

É possível monitorar o uso da CPU, do volume, da memória e da rede de sua instância ao longo do tempo no console do IBM Cloud. Como os dados de monitoramento são armazenados no IBM Cloud Monitoring, deve-se estar autenticado em uma instância do IBM Cloud Monitoring na conta. Para obter mais informações, consulte IBM Cloud Monitoring.

(Opcional): excluindo os recursos

Você pode excluir recursos a qualquer momento. No entanto, um recurso não poderá ser excluído se ele for requerido por outros recursos Por exemplo, não é possível excluir um VPC que contenha instâncias, sub-redes ou gateways públicos. Para obter instruções sobre como excluir uma VPC e todos os seus recursos, consulte Excluindo uma VPC com as APIs REST.

Parabéns!

Você criou e configurou com sucesso sua VPC usando as APIs REST. Para experimentar mais comandos da API, consulte a API do Virtual Private Cloud.