Creare un server PostgreSQL abilitato per Azure Arc dall'interfaccia della riga di comando

Questo documento descrive i passaggi per creare un server PostgreSQL in Azure Arc e connettersi.

Prerequisiti

Prima di procedere con le attività in questo articolo, è necessario disporre degli strumenti necessari. Tutte le distribuzioni richiedono gli strumenti seguenti:

  • Azure Data Studio

  • Estensione Azure Arc per Azure Data Studio

  • Interfaccia della riga di comando di Azure (az)

  • arcdata estensione per l'interfaccia della riga di comando di Azure

  • kubectl

    Strumenti client aggiuntivi a seconda dell'ambiente. Per un elenco più completo, vedere Strumenti client.

Oltre agli strumenti necessari, per completare le attività è necessario un titolare del trattamento dei dati di Azure Arc.

Nota

In quanto funzionalità di anteprima, la tecnologia presentata in questo articolo è soggetta alle condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure.

Gli aggiornamenti più recenti sono disponibili nelle note sulla versione.

Attività iniziali

Se si ha già familiarità con gli argomenti seguenti, è possibile ignorare questo paragrafo. Prima di procedere con la creazione, è possibile leggere alcuni argomenti importanti:

Se si preferisce provare le operazioni senza effettuare il provisioning di un ambiente completo, iniziare rapidamente con Azure Arc Jumpstart in servizio Azure Kubernetes (AKS), aws Elastic Kubernetes Service (EKS), Google Cloud Kubernetes Engine (GKE) o in una macchina virtuale di Azure.

Passaggio preliminare e temporaneo solo per gli utenti di OpenShift

Implementare questo passaggio prima di passare al passaggio successivo. Per distribuire il server PostgreSQL in Red Hat OpenShift in un progetto diverso da quello predefinito, è necessario eseguire i comandi seguenti nel cluster per aggiornare i vincoli di sicurezza. Questo comando concede i privilegi necessari agli account del servizio che eseguiranno il server PostgreSQL. Il vincolo di contesto di sicurezza (SCC) arc-data-scc è quello aggiunto quando è stato distribuito il controller dati di Azure Arc.

oc adm policy add-scc-to-user arc-data-scc -z <server-name> -n <namespace-name>

Nome server è il nome del server che verrà creato durante il passaggio successivo.

Per altre informazioni sui controller di dominio di OpenShift, vedere la documentazione di OpenShift. Passare al passaggio successivo.

Creare un server PostgreSQL abilitato per Azure Arc

Per creare un server PostgreSQL abilitato per Azure Arc nel controller di dati Arc, si userà il comando az postgres server-arc create a cui verranno passati diversi parametri.

Per informazioni dettagliate su tutti i parametri che è possibile impostare al momento della creazione, esaminare l'output del comando:

az postgres server-arc create --help

I parametri principali da considerare sono:

  • nome del server da distribuire. --name Indicare o -n seguito da un nome la cui lunghezza non deve superare 11 caratteri.

  • Le classi di archiviazione che si desidera che il server usi. È importante impostare la classe di archiviazione direttamente al momento della distribuzione di un server perché questa impostazione non può essere modificata dopo la distribuzione. È possibile specificare le classi di archiviazione da usare per i dati, i log e i backup. Per impostazione predefinita, se non si indicano le classi di archiviazione, verranno usate le classi di archiviazione del controller di dati.

    • Per impostare la classe di archiviazione per i backup, indicare il parametro --storage-class-backups seguito dal nome della classe di archiviazione. Se si esclude questo parametro, i backup automatizzati vengono disabilitati
    • Per impostare la classe di archiviazione per i dati, indicare il parametro --storage-class-data seguito dal nome della classe di archiviazione.
    • Per impostare la classe di archiviazione per i log, indicare il parametro --storage-class-logs seguito dal nome della classe di archiviazione.

    Importante

    Se è necessario modificare la classe di archiviazione dopo la distribuzione, estrarre i dati, eliminare il server, creare un nuovo server e importare i dati.

Quando si esegue il comando create, verrà richiesto di immettere il nome utente e la password per l'utente amministratore. È possibile ignorare il prompt interattivo impostando le AZDATA_USERNAME variabili di ambiente di sessione e AZDATA_PASSWORD prima di eseguire il comando create.

Esempi

Per distribuire un server PostgreSQL denominato postgres01 che usa le stesse classi di archiviazione del controller di dati, eseguire il comando seguente:

az postgres server-arc create -n postgres01 --k8s-namespace <namespace> --use-k8s

Nota

  • Se il controller dati è stato distribuito usando AZDATA_USERNAME le variabili di ambiente di sessione e AZDATA_PASSWORD nella stessa sessione del terminale, verranno usati anche i valori per AZDATA_PASSWORD per distribuire il server PostgreSQL. Se si preferisce usare un'altra password, (1) aggiornare i valori per AZDATA_USERNAME e AZDATA_PASSWORD o (2) eliminare le variabili di ambiente e AZDATA_PASSWORD (3) eliminare i AZDATA_USERNAME valori per cui immettere un nome utente e una password in modo interattivo quando si crea un server.
  • La creazione di un server PostgreSQL non registrerà immediatamente le risorse in Azure. Come parte del processo di caricamento dell'inventario delle risorse o dei dati di utilizzo in Azure, le risorse verranno create in Azure e sarà possibile visualizzare le risorse nel portale di Azure.

Elencare i server PostgreSQL distribuiti nel controller dati Arc

Per elencare i server PostgreSQL distribuiti nel controller dati Arc, eseguire il comando seguente:

az postgres server-arc list --k8s-namespace <namespace> --use-k8s
  {
    "name": "postgres01",
    "state": "Ready"
  }

Ottenere gli endpoint per connettersi ai server PostgreSQL abilitati per Azure Arc

Per visualizzare gli endpoint per un server PostgreSQL, eseguire il comando seguente:

az postgres server-arc endpoint list -n <server name> --k8s-namespace <namespace> --use-k8s

Ad esempio:

{
  "instances": [
    {
      "endpoints": [
        {
          "description": "PostgreSQL Instance",
          "endpoint": "postgresql://postgres:<replace with password>@123.456.78.912:5432"
        },
        {
          "description": "Log Search Dashboard",
        },
        {
          "description": "Metrics Dashboard",
          "endpoint": "https://98.765.432.11:3000/d/postgres-metrics?var-Namespace=arc&var-Name=postgres01"
        }
      ],
      "engine": "PostgreSql",
      "name": "postgres01"
    }
  ],
  "namespace": "arc"
}

È possibile usare l'endpoint dell'istanza di PostgreSQL per connettersi al server PostgreSQL dallo strumento preferito: Azure Data Studio, pgcli psql, pg Amministrazione e così via.

A questo punto, usare la build Insider di Azure Data Studio.

Nota speciale sulle distribuzioni di macchine virtuali di Azure

Quando si usa una macchina virtuale di Azure, l'indirizzo IP dell'endpoint non mostrerà l'indirizzo IP pubblico . Per individuare l'indirizzo IP pubblico, usare il comando seguente:

az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table

È quindi possibile combinare l'indirizzo IP pubblico con la porta per stabilire la connessione.

Potrebbe anche essere necessario esporre la porta del server PostgreSQL tramite il gateway di sicurezza di rete.You may need to expose the port of the PostgreSQL server through the network security gateway (NSG). Per consentire il traffico attraverso il gruppo di sicurezza di rete, impostare una regola. Per impostare una regola, è necessario conoscere il nome del gruppo di sicurezza di rete. Per determinare il gruppo di sicurezza di rete, usare il comando seguente:

az network nsg list -g azurearcvm-rg --query "[].{NSGName:name}" -o table

Dopo aver ottenuto il nome del gruppo di sicurezza di rete, è possibile aggiungere una regola del firewall usando il comando seguente. I valori di esempio qui creano una regola del gruppo di sicurezza di rete per la porta 30655 e consentono la connessione da qualsiasi indirizzo IP di origine.

Avviso

Non è consigliabile impostare una regola per consentire la connessione da qualsiasi indirizzo IP di origine. È possibile bloccare le cose meglio specificando un -source-address-prefixes valore specifico per l'indirizzo IP client o un intervallo di indirizzi IP che copre gli indirizzi IP del team o dell'organizzazione.

Sostituire il valore del --destination-port-ranges parametro seguente con il numero di porta ottenuto dal az postgres server-arc list comando precedente.

az network nsg rule create -n db_port --destination-port-ranges 30655 --source-address-prefixes '*' --nsg-name azurearcvmNSG --priority 500 -g azurearcvm-rg --access Allow --description 'Allow port through for db access' --destination-address-prefixes '*' --direction Inbound --protocol Tcp --source-port-ranges '*'

Stabilire la connessione con Azure Data Studio

Aprire Azure Data Studio e connettersi all'istanza con l'indirizzo IP dell'endpoint esterno e il numero di porta precedente e la password specificata al momento della creazione dell'istanza. Se PostgreSQL non è disponibile nell'elenco a discesa tipo di Connessione ion, è possibile installare l'estensione PostgreSQL cercando PostgreSQL nella scheda estensioni.

Nota

È necessario fare clic sul pulsante [Avanzate] nel pannello di connessione per immettere il numero di porta.

Tenere presente che, se si usa una macchina virtuale di Azure, è necessario l'indirizzo IP pubblico , accessibile tramite il comando seguente:

az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table

Connessione con psql

Per accedere al server PostgreSQL, passare l'endpoint esterno del server PostgreSQL recuperato in precedenza:

È ora possibile connettersi a psql:

psql postgresql://postgres:<EnterYourPassword>@10.0.0.4:30655