Quando crei un'istanza di una macchina virtuale (VM), Google Cloud viene creato un nome DNS interno dal nome della VM. A meno che non specifichi un nome host personalizzato, Google Cloud utilizza il nome DNS interno creato automaticamente come nome host fornito alla VM.
Puoi creare una VM con un nome host personalizzato specificando un nome DNS completamente qualificato. I nomi host personalizzati sono utili per mantenere le convenzioni o per supportare i requisiti per le applicazioni che si aspettano un determinato nome host.
Anche se specifichi un nome host personalizzato, Google Cloud viene creato il nome DNS interno di Compute Engine. Puoi connetterti alla VM utilizzando questo record DNS interno creato automaticamente. Il record DNS interno risolve al nome DNS interno e non al nome host personalizzato. Con gli hostname personalizzati, devi comunque creare un record DNS corrispondente nella zona appropriata, ad esempio utilizzando Cloud DNS.
Prima di iniziare
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API. Google Cloud
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Terraform
Per utilizzare gli esempi di Terraform in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
Vai
Per utilizzare gli Go esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
Java
Per utilizzare gli Java esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
Node.js
Per utilizzare gli Node.js esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
Python
Per utilizzare gli Python esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione Google Cloud sull'autenticazione.
-
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare una VM con un nome host personalizzato,
chiedi all'amministratore di concederti il ruolo IAM Amministratore istanze Compute (v1) (roles/compute.instanceAdmin.v1
) nel progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene le autorizzazioni necessarie per creare VM con un nome host personalizzato. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per creare una VM con un nome host personalizzato sono necessarie le seguenti autorizzazioni:
-
compute.instances.create
sul progetto -
Per utilizzare un'immagine personalizzata per creare la VM:
compute.images.useReadOnly
sull'immagine -
Per utilizzare uno snapshot per creare la VM:
compute.snapshots.useReadOnly
sullo snapshot -
Per utilizzare un modello di istanza per creare la VM:
compute.instanceTemplates.useReadOnly
nel modello di istanza -
Per assegnare una rete legacy alla VM:
compute.networks.use
nel progetto -
Per specificare un indirizzo IP statico per la VM:
compute.addresses.use
nel progetto -
Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete legacy:
compute.networks.useExternalIp
nel progetto -
Per specificare una subnet per la VM:
compute.subnetworks.use
nel progetto o nella subnet scelta -
Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete VPC:
compute.subnetworks.useExternalIp
nel progetto o nella subnet scelta -
Per impostare i metadati dell'istanza VM per la VM:
compute.instances.setMetadata
nel progetto -
Per impostare i tag per la VM:
compute.instances.setTags
sulla VM -
Per impostare le etichette per la VM:
compute.instances.setLabels
sulla VM -
Per impostare un account di servizio da utilizzare per la VM:
compute.instances.setServiceAccount
sulla VM -
Per creare un nuovo disco per la VM:
compute.disks.create
nel progetto -
Per collegare un disco esistente in modalità di sola lettura o di lettura e scrittura:
compute.disks.use
sul disco -
Per collegare un disco esistente in modalità di sola lettura:
compute.disks.useReadOnly
sul disco
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Limitazioni
Devi configurare manualmente il record DNS per il nome host personalizzato. I nomi host personalizzati non vengono risolti dai record creati automaticamente forniti dal DNS interno di Compute Engine. Puoi utilizzare uno dei seguenti elementi per ospitare il record DNS per il nome host personalizzato:
qualsiasi altro server dei nomi DNS pubblico
Non puoi modificare un nome host personalizzato dopo aver creato la VM.
Sistemi operativi supportati
I nomi host personalizzati vengono impostati nell'ambiente guest utilizzando script di hook che si integrano con il software di rete guest. I sistemi operativi Linux che non dispongono di uno script per l'integrazione con il software della rete ospite potrebbero non avere il nome host corretto.
Per l'elenco completo delle versioni del sistema operativo che supportano i nomi host personalizzati, controlla il supporto dell'ambiente guest in Dettagli del sistema operativo.
Convenzione di denominazione
I nomi host personalizzati devono essere conformi ai requisiti RFC 1035 per i nomi host validi. Per soddisfare questi requisiti, i nomi host personalizzati devono soddisfare le seguenti specifiche di formato:
- Il nome host contiene almeno due etichette descritte di seguito:
- Ogni etichetta contiene espressioni regolari che includono solo questi caratteri:
[a-z]([-a-z0-9]*[a-z0-9])?
. - Le etichette vengono concatenate con un punto.
- Ogni etichetta è composta da 1 a 63 caratteri.
- Ogni etichetta contiene espressioni regolari che includono solo questi caratteri:
- Il nome host non deve superare i 253 caratteri.
Non valido: contiene una singola etichetta
my-host1234
Valida: contiene tre etichette concatenate con puntini
my-host1234.example.com
Creare una VM con un nome host personalizzato
Nella console Google Cloud, vai alla pagina Crea un'istanza.
Specifica un nome per la VM. Per ulteriori informazioni, consulta la convenzione di denominazione delle risorse.
Espandi la sezione Opzioni avanzate e segui questi passaggi:
- Espandi la sezione Networking.
- Nel campo Hostname (Nome host), specifica il nome host personalizzato.
Apporta ulteriori personalizzazioni della VM, se necessario.
Per creare e avviare la VM, fai clic su Crea.
Passaggio successivo:configura i record DNS. Per saperne di più, consulta la pagina relativa alla gestione dei record.
Utilizzando Google Cloud CLI, segui le istruzioni per creare un'istanza da un'immagine o da uno snapshot, aggiungo il flag --hostname
e utilizza il comando gcloud compute instances create
come segue:
gcloud compute instances createVM_NAME \ --hostname=HOST_NAME
Sostituisci quanto segue:
VM_NAME
: il nome della VMHOST_NAME
: il nome host del dominio completo che vuoi assegnare
Ad esempio, per creare una VM myinstance
con il nome host personalizzato test.example.com
, esegui il seguente comando:
gcloud compute instances create myinstance \ --hostname=test.example.com
Passaggio successivo:configura i record DNS. Per saperne di più, consulta Gestire i record.
Puoi utilizzare una risorsa Terraform per creare un'istanza con un nome host personalizzato utilizzando l'argomento hostname
.
- Nella console Google Cloud, vai alla pagina Istanze VM.
- Fai clic su Crea istanza.
- Specifica i parametri che preferisci.
- Nella parte superiore o inferiore della pagina, fai clic su Codice equivalente e poi sulla scheda Terraform per visualizzare il codice Terraform.
Passaggio successivo:configura i record DNS. Per saperne di più, consulta Gestire i record.
Segui le istruzioni dell'API per
creare un'istanza da un'immagine
o da un
snapshot,
e specifica il campo hostname
nel corpo della richiesta.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE /instances { "name": "VM_NAME ", "hostname": "HOST_NAME ", ... }
Sostituisci quanto segue:
Verifica il nome host personalizzato
Per le VM Linux, puoi verificare il nome host eseguendo il comando hostname -f
sulla VM.
Puoi anche verificare il nome host personalizzato utilizzando la console Google Cloud o la riga di comando Google Cloud.
Per visualizzare il nome host personalizzato della tua VM, vai alla pagina Istanze VM.
Fai clic sul nome dell'istanza per aprire la pagina Dettagli istanza VM.
Esamina la sezione Nome host. Il campo Nome host è visibile solo se è impostato un nome host personalizzato.
Per visualizzare il nome host personalizzato della VM utilizzando gcloud compute
, utilizza il sottocomando instances describe
con un flag --format
per filtrare l'output. Sostituisci
VM_NAME
con il nome della VM.
gcloud compute instances describeVM_NAME \ --format='get(hostname)'
Ad esempio, per visualizzare il nome host personalizzato di una VM denominatamyinstance
, esegui il seguente comando.
gcloud compute instances describe myinstance \ --format='get(hostname)'
L'output potrebbe essere simile al seguente:
test.example.com
Se non è impostato un nome host personalizzato, l'output per questo comando è vuoto.