Creazione di risorse VPC con CLI e API
Oltre a creare una VPC, è possibile creare risorse VPC come un'istanza, una subnet e un volume Block Storage.
Per ulteriori informazioni sulla creazione di risorse VPC tramite la console IBM Cloud, vedere Uso della console IBM Cloud per creare risorse VPC.
Utilizzo della CLI per creare le risorse VPC
È possibile creare e configurare un' IBM Cloud® Virtual Private Cloud e utilizzando la CLI di IBM Cloud®.
Per creare e configurare il tuo VPC (virtual private cloud) e altre risorse collegate, completa le procedure nelle sezioni che seguono, nel seguente ordine:
- Crea un VPC e una sottorete per definire la rete.
- Se vuoi consentire a tutte le risorse nella sottorete di comunicare con l'Internet pubblico, collega un gateway pubblico.
- Crea una VSI (virtual server instance). Per impostazione predefinita, all'istanza è associato un volume di avvio. Per la maggior parte delle istanze del server virtuale, la dimensione del volume di avvio predefinita è 100 GB. La dimensione del volume di boot predefinita per un'istanza del server virtuale z/OS è 250 GB.
- Se vuoi ulteriore spazio di archiviazione, crea un volume di archiviazione blocchi e collegalo alla tua istanza.
- Per definire il traffico in entrata e in uscita consentito per l'istanza, configurare il relativo gruppo di sicurezza.
- Se vuoi che la tua istanza sia raggiungibile da internet, riserva e associa un indirizzo IP mobile.
Prima di iniziare
Assicurati di configurare il tuo ambiente della CLI.
Esegui l'accesso a IBM Cloud
ibmcloud login --sso -a cloud.ibm.com
Questo comando restituisce un URL e richiede un passcode. Vai a tale URL nel tuo browser e accedi. Se l'operazione ha esito positivo, ricevi un passcode monouso. Copia questo passcode e incollalo come risposta al prompt. Dopo i passi di autenticazione, ti verrà richiesto di scegliere il tuo account. Se hai accesso a più utenti, seleziona l'utente con il quale vuoi eseguire l'accesso.
Quando ti viene richiesto di selezionare una regione, seleziona us-south.
Rispondi alle richieste rimanenti per completare l'accesso.
Creazione di un VPC
Utilizza il seguente comando per creare una VPC denominata my-vpc.
ibmcloud is vpc-create my-vpc
Dall'output restituito, salva l'ID in una variabile in modo da poterlo utilizzare in seguito, ad esempio:
vpc="0738-59de4046-3434-4d87-bb29-0c99c428c96e"
L'esempio precedente non crea un VPC con accesso classico. Se il VPC ha bisogno di accedere alle tue risorse classiche, vedi Configurazione dell'accesso all'infrastruttura classica. È possibile abilitare un VPC per l'accesso classico solo durante la sua creazione. Inoltre, nel proprio account è possibile avere solo una VPC con accesso classico alla volta.
Creazione di un catalogo privato
Questo passo è facoltativo. Se si pianifica di condividere immagini da un catalogo privato, è necessario creare prima il catalogo privato. Se selezioni un'immagine del catalogo che appartiene a un account differente, hai ulteriori considerazioni e limitazioni da esaminare. Consulta Utilizzo dei riferimenti di immagine tra account in un catalogo privato. Per creare un catalogo privato, vedi l'esercitazione Onboarding del software nel tuo catalogo utilizzando la CLI.
Creazione di una sottorete
Prima di creare una sottorete, seleziona la zona e il prefisso di indirizzo in cui crearla. Per elencare i prefissi di indirizzo per ogni zona nel tuo VPC, esegui questo comando:
ibmcloud is vpc-address-prefixes $vpc
Ora è necessario selezionare il prefisso di indirizzo predefinito per la zona us-south-3. Dall'output del comando, nota il blocco CIDR del prefisso di indirizzo. Quando crei una sottorete, devi specificare un intervallo di IP
che sia all'interno di uno dei prefissi di indirizzo della zona selezionata.
Una sottorete non può essere ridimensionata dopo la sua creazione.
ibmcloud is subnet-create my-subnet $vpc us-south-3 --ipv4-cidr-block "10.0.1.0/24"
Dall'output restituito, salva l'ID in una variabile in modo da poterlo utilizzare in seguito, ad esempio:
subnet="0738-658756a4-1106-4914-969a-3b43b338524a"
All'atto della creazione, lo stato della sottorete è “ pending ”. Prima di poter creare risorse nella sottorete, questa deve passare allo stato available, il che richiede alcuni secondi. Per controllare lo stato della
sottorete, esegui questo comando:
ibmcloud is subnet $subnet
Collegamento di un gateway pubblico
Collega un gateway pubblico alla sottorete se vuoi consentire a tutte le risorse collegate di comunicare con l'internet pubblico.
Per creare un gateway pubblico, immetti il seguente comando:
ibmcloud is public-gateway-create my-gateway $vpc us-south-3
Dall'output restituito, salva l'ID in una variabile in modo da poterlo utilizzare in seguito, ad esempio:
gateway="0738-446c0c63-f0b1-4043-b30d-644f55fde391"
Per collegare il gateway pubblico alla tua sottorete, immetti il seguente comando:
ibmcloud is subnet-update $subnet --pgw $gateway
In un VPC, è consentito un solo gateway pubblico per ogni zona, ma tale gateway pubblico può essere collegato a più sottoreti nella zona. Per individuare il gateway pubblico di una zona, eseguire il comando ibmcloud is public-gateways e individuare i valori relativi alla VPC e alla zona in questione.
Aggiunta di una chiave SSH
Aggiungi la tua chiave SSH pubblica al tuo account IBM Cloud. Questa chiave viene specificata al momento della creazione dell'istanza ed è necessaria in seguito per accedere all'istanza. Puoi utilizzare una singola chiave per eseguire il provisioning di più istanze.
Per visualizzare le chiavi disponibili nel tuo account IBM Cloud, esegui questo comando:
ibmcloud is keys
Per aggiungere una chiave, esegui questo comando. Sostituisci il percorso con quello del tuo file di chiave SSH. Per una chiave SSH RSA, puoi utilizzare il percorso del file id_rsa.pub. Per una chiave SSH Ed25519, puoi utilizzare
il percorso del tuo file id_ed25519.pub.
ibmcloud is key-create my-key @$HOME/.ssh/id_rsa.pub
Dall'output restituito, salva l'ID in una variabile in modo da poterlo utilizzare in seguito, ad esempio:
key="0738-859b4e97-7540-4337-9c64-384792b85653"
Selezione di un profilo per l'istanza
Per elencare tutti i profili di istanza disponibili, immetti il seguente comando:
ibmcloud is instance-profiles
Salva il profilo che intendi utilizzare come una variabile, che viene utilizzata successivamente per eseguire il provisioning di un'istanza.
Verificare che il profilo utilizzato sia disponibile nella zona in cui si intende creare l'istanza.
Alcuni profili potrebbero non essere disponibili per uno dei seguenti motivi:
- Il numero di interfacce di rete del server virtuale supera i limiti del profilo. È possibile rimuovere le interfacce di rete per selezionare più profili. Per ulteriori informazioni, vedere Ridimensionamento di un server virtuale.
- L'immagine selezionata contiene un'espressione di uso consentito non compatibile con il profilo. In questi casi, selezionare un'immagine con un'espressione di uso consentito compatibile con il profilo desiderato. Per ulteriori informazioni, vedere Aggiunta di espressioni di uso consentito alle immagini personalizzate.
Selezione di una immagine per l'istanza
Puoi creare un'istanza utilizzando un'immagine stock, un'immagine personalizzata dal tuo account o un'immagine che è stata condivisa con il tuo account da un catalogo privato. Esegui uno dei seguenti comandi in base all'immagine che intendi utilizzare.
-
Seleziona un'immagine stock o personalizzata dal tuo account per la tua istanza.
-
Per elencare tutte le immagini disponibili, eseguire il comando
ibmcloud is images. Se l'elenco è troppo lungo, valutare la possibilità di filtrarlo come nel seguente esempio.$ 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 -Le immagini obsolete non includono il supporto più recente.
-
Seleziona un'immagine come
ibm-debian-12-0-minimal-amd64-1e salva l'ID immagine come una variabile da utilizzare successivamente per eseguire il provisioning di un'istanza.image=$(ibmcloud is images | grep -i "ibm-debian-12-0-minimal-amd64-1" | cut -d" " -f1)
-
-
Selezionare un'immagine condivisa da un catalogo privato per l'istanza
Se selezioni un'immagine del catalogo che appartiene a un account differente, hai ulteriori considerazioni e limitazioni da esaminare. Vedi Utilizzo dei riferimenti di immagine tra account in un catalogo privato nella CLI
-
Per elencare tutte le offerte di immagini di catalogo private disponibili, immetti il seguente comando.
ibmcloud is catalog-image-offeringsQuesto comando restituisce l'identificativo di ogni offerta di immagini e l'identificativo del catalogo privato in cui risiede l'immagine. Salva le variabili
offering_idecatalog_id, che vengono utilizzate successivamente per eseguire il provisioning di un'istanza.offering_id=6bf79f7b-de48-4ce8-8cae-866b376f2889 catalog_id=71306253-8444-4cae-a45d-64d35e5393ec -
Per ottenere il
offering_crnper l'offerta e iloffering_version_crnper ogni versione nell'offerta, esegui questo comando.ibmcloud is catalog-image-offering $catalog_id $offering_idQuando esegui il provisioning di un'istanza, puoi eseguire il provisioning dell'istanza dall'immagine gestita dal catalogo privata nella versione più recente in un'offerta del prodotto del catalogo utilizzando il valore
offering_crno dalla versione specifica nell'offerta del prodotto del catalogo utilizzando il valoreoffering_version_crn.Salva le variabili
offering_crneoffering_version_crn, che vengono utilizzate successivamente per eseguire il provisioning di un'istanza.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"
-
Creazione dell'istanza
Crea l'istanza nella sottorete appena creata. Passa la tua chiave SSH pubblica in modo da poter accedere dopo aver eseguito il provisioning dell'istanza.
Esegui uno dei comandi CLI riportati di seguito in base all'immagine che intendi utilizzare.
-
Crea un'istanza utilizzando un'immagine stock o personalizzata dal tuo account per la tua istanza.
ibmcloud is instance-create my-instance $vpc us-south-3 bx2-2x8 $subnet --image-id $image --keys $key -
Crea una istanza utilizzando un'immagine gestita dal catalogo privata dalla versione dell'immagine più recente.
ibmcloud is instance-create my-instance $vpc us-south-3 bx2-2x8 $subnet --catalog-offering $offering_crn --keys $key -
Crea un'istanza utilizzando un'immagine gestita dal catalogo privata da una versione specifica dell'immagine.
ibmcloud is instance-create my-instance $vpc us-south-3 bx2-2x8 $subnet --catalog-offering-version $offering_version_crn --keys $key
Le informazioni sull'interfaccia di rete creata per la nuova istanza non vengono restituite dopo la creazione dell'istanza.
Dall'output restituito, salva l'ID dell'istanza in una variabile in modo da poterlo utilizzare in seguito, ad esempio:
instance="0738-21179496-964e-4c00-8210-cf23d75750b3"
All'atto della creazione, lo stato dell'istanza è " pending ". Prima che tu possa procedere, l'istanza deve passare allo stato running, il che richiede alcuni minuti. Per controllare lo stato dell'istanza,
esegui questo comando:
ibmcloud is instance $instance
Dall'output restituito, salvare l'ID della VNI (Virtual Network Interface) in una variabile per poterla utilizzare in seguito, ad esempio:
vni="0717-0b45c763-fada-4d44-8f46-e71154ec11e0"
Creazione di un volume di dati " Block Storage "
Puoi creare un volume di archiviazione blocchi e collegarlo alla tua VSI (virtual server instance) se vuoi ulteriore spazio di archiviazione. Quando crei un volume di archiviazione blocchi, selezioni un profilo per ottimizzare le prestazioni dei tuoi carichi di lavoro di calcolo. Per ulteriori informazioni sulla capacità del volume e sugli intervalli IOPS in base al profilo del volume che selezioni, vedi Profili.
Per visualizzare un elenco di profili del volume, esegui:
ibmcloud is volume-profiles
Esegui questo comando per creare un volume di dati di archiviazione blocchi. Specifica un nome per il tuo volume, il profilo del volume e la zona in cui stai creando il volume. Per collegare un volume di dati di archiviazione blocchi a un'istanza, l'istanza e il volume di dati di archiviazione blocchi devono essere creati nella stessa zona.
ibmcloud is volume-create my-volume custom us-south-3 --iops 1000 --capacity 500
Dall'output restituito, salva l'ID del volume in una variabile in modo da poterlo utilizzare in seguito:
vol=0738-933c8781-f7f5-4a8f-8a2d-3bfc711788ee
All'atto della creazione, lo stato del volume è “ pending ”. Prima che tu possa procedere, il volume deve passare allo stato available, il che richiede alcuni minuti.
Per controllare lo stato del volume, esegui questo comando:
ibmcloud is volume $vol
Collegamento di un volume di dati Block Storage a un'istanza
Utilizza il seguente comando per collegare il volume all'istanza del server virtuale, utilizzando le variabili che hai creato:
ibmcloud is instance-volume-attachment-add my-volume-attachment $instance $vol --auto-delete true
Aggiunta di regole al gruppo di sicurezza predefinito
Puoi configurare il gruppo di sicurezza per definire il traffico in entrata e in uscita consentito per l'istanza. Ad esempio, puoi aggiungere una regola per consentire il traffico SSH.
Trova il gruppo di sicurezza per il VPC:
ibmcloud is vpc-sg $vpc
Dall'output restituito, salva l'ID in una variabile in modo da poterlo utilizzare in seguito:
sg=0738-2d364f0a-a870-42c3-a554-000000981149
Ora crea una regola per consentire il traffico SSH:
ibmcloud is sg-rulec $sg inbound tcp --port-min=22 --port-max=22
Facoltativamente, puoi anche aggiungere una regola per consentire il traffico ping:
ibmcloud is sg-rulec $sg inbound icmp --icmp-type 8 --icmp-code 0
Per le immagini Windows, assicurati che il gruppo di sicurezza associato all'istanza consenta il traffico RDP (Remote Desktop Protocol) in entrata e in uscita (porta TCP 3389).
Creazione di un indirizzo IP flottante per l'istanza
Crea un indirizzo IP mobile se vuoi che la tua istanza sia raggiungibile da internet.
ibmcloud is floating-ip-reserve my-fip --vni $vni
Ad esempio:
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
Dall'output restituito, salva l' Address e in una variabile in modo da poterla utilizzare in seguito:
address=52.118.151.163
Accedi alla tua istanza
Ad esempio, su Linux puoi utilizzare un comando di questo formato:
ssh -i $HOME/.ssh/id_rsa root@$address
L'accesso utente 'root' è disabilitato per impostazione predefinita in Fedora Core OS. Il login utente 'core' può essere utilizzato per accedere alle istanze Fedora Core OS.
Quando ti viene richiesto di continuare con la connessione, digita yes.
L'accesso SSH nell'istanza potrebbe essere impedito dai gruppi di sicurezza. Assicurati che il gruppo di sicurezza dell'istanza consenta l'accesso SSH.
Per connetterti a un'immagine Windows, accedi utilizzando la sua password decrittografata. Per istruzioni, vedi Connessione alla tua istanza Windows.
Monitoraggio della tua istanza
Puoi monitorare l'utilizzo di CPU, volume, memoria e rete della tua istanza nel tempo nella console IBM Cloud. Poiché i dati di monitoraggio sono archiviati in IBM Cloud Monitoring, devi essere autenticato a un'istanza del servizio di monitoraggio nel tuo account. Per ulteriori informazioni, vedi Introduzione al monitoraggio.
Per le istanze IBM Cloud Hyper Protect Virtual Servers per IBM Cloud® Virtual Private Cloud, non è possibile raccogliere le metriche della memoria perché le istanze Hyper Protect Virtual Servers per VPC sono create utilizzando immagini di esecuzione sicura e la memoria di un'istanza di esecuzione sicura non è accessibile.
Creazione di un gateway VPN
Crea un gateway VPN sulla sottorete se vuoi connettere in modo sicuro il tuo VPC a un'altra rete privata.
Per creare un gateway VPN, eseguire il seguente comando:
ibmcloud is vpn-gateway-create my-vpn-gateway $subnet
Dall'output restituito, salva l'ID del gateway VPN in una variabile in modo da poterlo utilizzare in seguito, ad esempio:
vpn_gateway="0757-7e91085b-dc11-4707-aa4d-66e735e9a2bc"
Lo stato del gateway VPN è pending quando lo crei per la prima volta. Prima di poter procedere, il gateway VPN deve passare allo stato “ available ”, operazione che richiede alcuni minuti. Per verificare lo stato
del gateway VPN, eseguire questo comando:
ibmcloud is vpn-gateway $vpn_gateway
Per creare una connessione VPN sul gateway VPN all'indirizzo peer 169.61.161.150 e alla chiave precondivisa mykey, immetti il seguente comando:
ibmcloud is vpn-gateway-connection-create my-vpn-conn $vpn_gateway 169.61.161.150 mykey
In questo esempio, 169.61.161.150 è l'indirizzo del gateway peer, che specifica l'indirizzo IP del gateway VPN per la rete esterna al VPC. Il valore " mykey " è la chiave di autenticazione del gateway VPN
per la rete esterna al proprio VPC. È una stringa di cifre esadecimali o una passphrase di caratteri ASCII stampabili. Per essere compatibile con la maggior parte dei tipi di gateway peer, questa stringa deve seguire queste regole:
- Può essere una combinazione di cifre, caratteri minuscoli o maiuscoli o i seguenti caratteri speciali:
- + & ! @ # $ % ^ * ( ) . , : - La lunghezza della stringa deve essere compresa tra 6 e 128 caratteri.
- Non può iniziare con
0xo0s.
Lo stato della connessione VPN è down quando viene creata per la prima volta e diventa up una volta stabilita la connessione. Per controllare lo stato delle connessioni VPN su un gateway VPN, esegui il seguente comando:
ibmcloud is vpn-gateway-connections $vpn_gateway
Congratulazioni!
Hai creato e configurato correttamente il tuo VPC dalla CLI IBM Cloud. Per provare altri comandi della CLI, vedi la Guida di riferimento alla CLI.
Utilizzo delle API REST per creare le risorse VPC
È possibile creare e configurare le risorse di IBM Cloud® Virtual Private Cloud utilizzando le API REST.
Per creare e configurare il tuo VPC (virtual private cloud) e altre risorse collegate, completa le procedure nelle sezioni che seguono, nel seguente ordine:
- Crea un VPC e una sottorete per definire la rete.
- Se vuoi consentire a tutte le risorse nella sottorete di comunicare con l'Internet pubblico, collega un gateway pubblico.
- Crea una VSI (virtual server instance). Per impostazione predefinita, un volume di avvio da 100 GB è collegato all'istanza.
- Se vuoi ulteriore spazio di archiviazione, crea un volume di archiviazione blocchi e collegalo alla tua istanza.
- Per definire il traffico in entrata e in uscita consentito per l'istanza, configurare il relativo gruppo di sicurezza.
- Se vuoi che la tua istanza sia raggiungibile da internet, riserva e associa un indirizzo IP mobile.
Prima di iniziare
Definisci le variabili per il token IAM, l'endpoint API e la versione API. Per le istruzioni, vedi Configurazione del tuo ambiente API e CLI.
Un buon modo per saperne di più sull'API consiste nel fare clic su Get sample API call nelle pagine di provisioning nella console IBM Cloud. Puoi visualizzare la sequenza corretta di richieste API e comprendere meglio le azioni e le loro dipendenze.
Creazione di un VPC
Crea un IBM Cloud VPC denominato my-vpc.
curl -X POST "$vpc_api_endpoint/v1/vpcs?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"name": "my-vpc"
}'
Devi inviare il parametro generation con ogni richiesta API per specificare quale generazione utilizzare. Per le VSI (virtual server instance) di generazione 2, specifica generation=2. Per ulteriori informazioni,
vedi Generation in Virtual Private Cloud API
Per le altre chiamate, è necessario conoscere l'ID della VPC appena creata. Salva l'ID in una variabile, ad esempio:
vpc="0738-59de4046-3434-4d87-bb29-0c99c428c96e"
Per verificare che la variabile sia stata salvata, esegui il comando echo $vpc e assicurati che la risposta non sia vuota.
L'esempio precedente non crea un VPC con accesso classico. Se il VPC ha bisogno di accedere alle tue risorse classiche, vedi Configurazione dell'accesso all'infrastruttura classica. È possibile abilitare un VPC per l'accesso classico solo durante la sua creazione. Inoltre, nel proprio account è possibile avere solo una VPC con accesso classico alla volta.
Creazione di un catalogo privato
Questo passo è facoltativo. Se si pianifica di condividere immagini da un catalogo privato, è necessario creare prima il catalogo privato. Se selezioni un'immagine del catalogo che appartiene a un account differente, hai ulteriori considerazioni e limitazioni da esaminare. Vedere Utilizzo di riferimenti di immagine tra account in un catalogo privato nella console. Per creare un catalogo privato, vedi l'esercitazione Onboarding del software nel tuo catalogo utilizzando la CLI.
Creazione di una sottorete
Prima di creare una sottorete, seleziona la zona e il prefisso di indirizzo in cui crearla. Per elencare i prefissi di indirizzo per ogni zona nel tuo VPC, esegui questo comando:
curl -X GET "$vpc_api_endpoint/v1/vpcs/$vpc/address_prefixes?version=$api_version&generation=2" \
-H "Authorization:$iam_token"
Ora, seleziona il prefisso dell'indirizzo predefinito per la zona us-south-3. Dalla risposta, nota il blocco CIDR del prefisso di indirizzo. Quando crei una sottorete, devi specificare un intervallo di IP che sia all'interno di uno dei prefissi di indirizzo della zona selezionata.
Una sottorete non può essere ridimensionata dopo la sua creazione.
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'" }
}'
Salva l'ID della sottorete in una variabile.
subnet="0738-35fb0489-7105-41b9-99de-033fae723006"
Per eseguire il provisioning delle risorse nella tua sottorete, è necessario che lo stato della sottorete sia Ready. Esegui una query sulla risorsa di sottorete e assicurati che lo stato sia Ready prima di continuare.
Se lo stato è failed, contatta il supporto fornendo i dettagli. Puoi provare a continuare tentando di eseguire il provisioning di un'altra sottorete.
curl -X GET "$vpc_api_endpoint/v1/subnets/$subnet?version=$api_version&generation=2" \
-H "Authorization: Bearer $iam_token"
Collegamento di un gateway pubblico
Collega un gateway pubblico alla sottorete se vuoi consentire a tutte le risorse collegate di comunicare con l'internet pubblico.
Crea un gateway pubblico per 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'" }
}'
Salva l'ID del gateway pubblico in una variabile.
gateway="0738-ad0cded3-53a3-4d4a-9809-8c59b50d2b80"
Collega il gateway pubblico alla tua sottorete.
curl -X PUT "$vpc_api_endpoint/v1/subnets/$subnet/public_gateway?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"id": "'$gateway'"
}'
In un VPC, è consentito un solo gateway pubblico per ogni zona, ma tale gateway pubblico può essere collegato a più sottoreti nella zona. Per individuare il gateway pubblico di una zona, eseguire il comando ibmcloud is public-gateways e individuare i valori relativi alla VPC e alla zona in questione.
Puoi quindi richiamare e visualizzare il gateway pubblico collegato alla sottorete immettendo il seguente comando.
curl -X GET "$vpc_api_endpoint/v1/subnets/$subnet/public_gateway?version=$api_version&generation=2" \
-H "Authorization: Bearer $iam_token"
Aggiunta di una chiave SSH
Aggiungi la tua chiave SSH pubblica al tuo account IBM Cloud. Questa chiave viene specificata al momento della creazione dell'istanza ed è necessaria in seguito per accedere all'istanza. Puoi utilizzare una singola chiave per eseguire il provisioning di più istanze.
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"
}'
Salva l'ID della chiave SSH in una variabile, ad esempio:
key="0738-35fb0489-7105-41b9-8764-033fae723006"
Selezione di un profilo per la tua istanza
Richiamare l'API per visualizzare tutti i profili. Il seguente comando elenca i profili disponibili.
curl -X GET "$vpc_api_endpoint/v1/instance/profiles?version=$api_version&generation=2" \
-H "Authorization:$iam_token"
Salvare il nome del profilo in una variabile, che viene utilizzata successivamente per eseguire il provisioning di un'istanza. Ad esempio,
profile_name="b2-2x8"
Verificare che il profilo utilizzato sia disponibile nella zona in cui si intende creare l'istanza.
Alcuni profili potrebbero non essere disponibili per uno dei seguenti motivi:
- Il numero di interfacce di rete del server virtuale supera i limiti del profilo. È possibile rimuovere le interfacce di rete per selezionare più profili. Per ulteriori informazioni, vedere Ridimensionamento di un server virtuale.
- L'immagine selezionata contiene un'espressione di uso consentito non compatibile con il profilo. In questi casi, selezionare un'immagine con un'espressione di uso consentito compatibile con il profilo desiderato. Per ulteriori informazioni, vedere Aggiunta di espressioni di uso consentito alle immagini personalizzate.
Selezione di una immagine per la tua istanza
Puoi creare un'istanza utilizzando un'immagine stock, un'immagine personalizzata dal tuo account o un'immagine che è stata condivisa con il tuo account da un catalogo privato. Esegui una delle seguenti chiamate API in base all'immagine che intendi utilizzare.
-
Seleziona un'immagine stock o personalizzata dal tuo account per la tua istanza.
Il seguente comando elenca le immagini disponibili.
curl -X GET "$vpc_api_endpoint/v1/images?version=$api_version&generation=2" \ -H "Authorization:$iam_token"Salva l'ID dell'immagine in una variabile, che deve essere utilizzata successivamente per eseguire il provisioning di un'istanza. Ad esempio,
image_id="0738-660198a6-52c6-21cd-7b57-e37917cef586" -
Seleziona un'immagine condivisa da un catalogo privato per la tua istanza.
Se selezioni un'immagine del catalogo che appartiene a un account differente, hai ulteriori considerazioni e limitazioni da esaminare. Vedi Utilizzo dei riferimenti di immagine tra account in un catalogo privato nell'API
È possibile eseguire il provisioning di un'istanza dall'immagine del catalogo privato all'ultima versione in un'offerta del prodotto del catalogo o da una specifica versione nell'offerta del prodotto del catalogo.
Per selezionare l'immagine del catalogo privato dalla versione più recente di un'offerta del prodotto del catalogo, vedi Catalog Management API - Get offering. Trovare il CRN dell'offerta e salvarlo in una variabile per un utilizzo successivo:
offering_crn="crn:v1:bluemix:public:globalcatalog-collection:global::1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc:offering:00111601-0ec5-41ac-b142-96d1e64e6442-global"Per selezionare l'immagine del Catalogo privato da una versione specifica di un'offerta del prodotto del catalogo, consulta API di gestione del catalogo - Ottieni offerta. Quindi, vai a Ottieni offerta> Tipi> Versioni> CRN per richiamare il CRN della versione e salvarlo in una variabile per un utilizzo successivo:
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"
Creazione dell'istanza
Crea l'istanza nella sottorete appena creata. Passa la tua chiave SSH pubblica in modo da poter accedere dopo aver eseguito il provisioning dell'istanza. Esegui una delle seguenti chiamate API in base al tipo di immagine che intendi utilizzare.
-
Seleziona un'immagine stock o personalizzata dal tuo account per la tua istanza.
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'" } }' -
Crea un'istanza utilizzando un'immagine del catalogo privata dalla versione più recente di un'offerta del prodotto del catalogo.
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'" } }' -
Crea una istanza utilizzando un'immagine del catalogo privata da una versione specifica di un'offerta del prodotto del catalogo.
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'" } }'
Salva l'ID dell'istanza in una variabile, ad esempio:
instance="0738-35fb0489-7105-41b9-99de-033fae723006"
Lo stato dell'istanza è stopped quando la si crea. Prima che tu possa procedere, l'istanza deve passare allo stato running, il che richiede alcuni minuti. Esegui una query dello stato dell'istanza e assicurati che
sia running.
curl -X GET "$vpc_api_endpoint/v1/instances/$instance?version=$api_version&generation=2" \
-H "Authorization: Bearer $iam_token"
Salva l'ID dell'interfaccia di rete primaria dell'istanza restituita nella chiamata GET/instance API, ad esempio:
network_interface="0738-7710e766-dd6e-41ef-9d36-06f7adbef33d"
Non puoi ottenere l'ID dell'interfaccia di rete primaria finché non esegui una query sull'istanza specifica.
(Facoltativo) Creazione e associazione di un volume di dati " Block Storage "
È possibile creare un volume di dati Block Storage e collegarlo all'istanza del server virtuale come memoria ausiliaria. Creare un volume di dati con una richiesta simile a questo esempio. Questa procedura mostra i profili dei volumi, crea un volume, salva l'ID del volume in una variabile, controlla lo stato del volume e quindi crea l'allegato al volume.
Mostra un elenco di profili volume:
curl -X GET "$vpc_api_endpoint/v1/volumes/profiles?version=$api_version&generation=2" \
-H "Authorization: Bearer $iam_token" \
I profili possono essere di utilizzo generico (3 IOPS/GB), di livello 5 iops, di livello 10 iops e personalizzati. Per ulteriori informazioni sulla capacità del volume e sugli intervalli IOPS in base al profilo del volume che selezioni, vedi Profili.
Creare il volume dati:
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"
}
}'
Salva l'ID del volume in una variabile:
volume_id="0738-640774d7-2adc-4609-add9-6dfd96167a8f"
All'atto della creazione, lo stato del volume è “ pending ”. Prima che tu possa procedere, il volume deve passare allo stato available, il che richiede alcuni minuti.
Verifica lo stato del volume:
curl -X GET "$vpc_api_endpoint/v1/volumes/$volume_id?version=$api_version&generation=2" \
-H "Authorization: Bearer $iam_token"
Creare un collegamento al volume per associare il nuovo volume di dati all'istanza del server virtuale. Nella richiesta, utilizza la variabile dell'ID istanza che hai creato in precedenza. Utilizzare la variabile ID volume per specificare il volume.
Creare il collegamento 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'"
}
}'
Aggiunta di regole al gruppo di sicurezza predefinito
Puoi configurare il gruppo di sicurezza per definire il traffico in entrata e in uscita consentito per l'istanza. Ad esempio, puoi aggiungere una regola per consentire il traffico SSH.
Trova il gruppo di sicurezza per il VPC:
curl -X GET "$vpc_api_endpoint/v1/vpcs/$vpc/default_security_group?version=$api_version&generation=2" \
-H "Authorization:$iam_token"
Salva l'ID del gruppo di sicurezza in una variabile, ad esempio:
sg=0738-2d364f0a-a870-42c3-a554-000000981149
Ora crea una regola per consentire il traffico SSH in entrata, in modo da poterti connettere all'istanza:
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
}'
Per le immagini Windows, assicurati che il gruppo di sicurezza associato all'istanza consenta il traffico RDP (Remote Desktop Protocol) in entrata e in uscita (porta TCP 3389).
Creazione di un indirizzo IP flottante
Crea un indirizzo IP mobile se vuoi che la tua istanza sia raggiungibile da internet. Utilizza l'interfaccia di rete primaria dell'istanza come destinazione per l'indirizzo IP mobile.
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'"
}
}
'
Salva l'ID dell'indirizzo IP mobile in una variabile, ad esempio.
floating_ip="0738-35fb0489-7105-41b9-99de-033fae723006"
Accedi alla tua istanza
Per connettersi all'istanza, utilizzare l'indirizzo IP flottante che avete creato. Per ottenere l'indirizzo IP mobile, esegui questo comando:
curl -X GET "$vpc_api_endpoint/v1/floating_ips/$floating_ip?version=$api_version&generation=2" \
-H "Authorization:$iam_token"
Su Linux, utilizza l'indirizzo (address) dell'IP mobile per stabilire una connessione all'istanza con SSH:
ssh -i <private_key_file> root@<floating ip address>
L'accesso utente 'root' è disabilitato per impostazione predefinita in Fedora Core OS. Il login utente 'core' può essere utilizzato per accedere alle istanze Fedora Core OS.
Per connetterti a un'immagine Windows, accedi utilizzando la sua password decrittografata. Per istruzioni, vedi Connessione alla tua istanza Windows.
Monitoraggio della tua istanza
Puoi monitorare l'utilizzo di CPU, volume, memoria e rete della tua istanza nel tempo nella console IBM Cloud. Poiché i dati di monitoraggio vengono archiviati in IBM Cloud Monitoring, devi essere autenticato in un'istanza IBM Cloud Monitoring nel tuo account. Per ulteriori informazioni, vedere IBM Cloud Monitoring.
(Facoltativo): eliminazione delle risorse
È possibile eliminare le risorse in qualsiasi momento. Tuttavia, una risorsa non può essere eliminata se è richiesta da altre risorse. Ad esempio, un VPC non può essere eliminato se contiene istanze, sottoreti o gateway pubblici. Per istruzioni su come eliminare una VPC e tutte le sue risorse, consultare la sezione " Eliminazione di una VPC tramite le API REST ".
Congratulazioni!
Hai creato e configurato correttamente la tua VPC utilizzando le API REST. Per provare ulteriori comandi API, vedi Virtual Private Cloud API.