Créer un serveur PostgreSQL avec Azure Arc depuis l’interface CLI

Ce document décrit les étapes de création d’un serveur PostgreSQL sur Azure Arc et de connexion à ce dernier.

Prérequis

Avant de pouvoir effectuer les tâches de cet article, vous devez disposer des outils nécessaires. Tous les déploiements nécessitent les outils suivants :

  • Azure Data Studio

  • Extension Azure Arc pour Azure Data Studio

  • Azure CLI (az)

  • arcdata Extension pour Azure CLI

  • kubectl

    Outils clients supplémentaires en fonction de votre environnement. Pour obtenir une liste plus complète, consultez Outils clients.

Outre les outils requis, pour effectuer les tâches, vous avez besoin d’un contrôleur de données Azure Arc.

Remarque

En tant que fonctionnalité en préversion, la technologie présentée dans cet article est soumise aux conditions d’utilisation supplémentaires des préversions de Microsoft Azure.

Les dernières mises à jour sont disponibles dans les notes de publication.

Bien démarrer

Si vous êtes déjà familiarisé avec les rubriques ci-dessous, vous pouvez ignorer ce paragraphe. Vous souhaiterez peut-être lire les rubriques importantes avant de procéder à la création :

Si vous préférez essayer d’effectuer des opérations sans provisionner un environnement complet, commencez rapidement avec Démarrage rapide Azure Arc sur Azure Kubernetes Service (AKS), AWS Elastic Kubernetes Service (EKS), Google Cloud Kubernetes Engine (GKE) ou dans une machine virtuelle Azure.

Étape préliminaire et temporaire pour les utilisateurs OpenShift uniquement

Implémentez cette étape avant de passer à l’étape suivante. Pour déployer le serveur PostgreSQL sur Red Hat OpenShift dans un projet autre que celui par défaut, vous devez exécuter les commandes suivantes sur votre cluster pour mettre à jour les contraintes de sécurité. Cette commande accorde les privilèges nécessaires aux comptes de service qui exécuteront votre serveur PostgreSQL. La contrainte de contexte de sécurité (SCC) arc-data-scc est celle que vous avez ajoutée lors du déploiement du contrôleur de données Azure Arc.

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

Server-name est le nom du serveur que vous allez créer à l’étape suivante.

Pour plus d’informations sur les contraintes de contexte de sécurité dans OpenShift, consultez la documentation OpenShift. Passez à l’étape suivante.

Créer un serveur PostgreSQL avec Azure Arc

Pour créer un serveur PostgreSQL avec Azure Arc sur votre contrôleur de données Arc, vous allez utiliser la commande az postgres server-arc create à laquelle vous allez passer plusieurs paramètres.

Pour plus d’informations sur tous les paramètres que vous pouvez définir au moment de la création, passez en revue la sortie de la commande :

az postgres server-arc create --help

Les principaux paramètres à prendre en compte sont les suivants :

  • Le nom du serveur que vous voulez déployer. Indiquez --name ou -n suivi d’un nom dont la longueur ne doit pas dépasser 11 caractères.

  • Les classes de stockage que vous souhaitez que votre serveur utilise. Il est important de définir la classe de stockage juste au moment où vous déployez un serveur, car ce paramètre ne peut pas être modifié après le déploiement. Vous pouvez spécifier les classes de stockage à utiliser pour les données, les journaux et les sauvegardes. Par défaut, si vous n’indiquez pas de classes de stockage, les classes de stockage du contrôleur de données sont utilisées.

    • Pour définir la classe de stockage pour les sauvegardes, indiquez le paramètre --storage-class-backups suivi du nom de la classe de stockage. L’exclusion de ce paramètre désactive les sauvegardes automatisées
    • Pour définir la classe de stockage pour les données, indiquez le paramètre --storage-class-data suivi du nom de la classe de stockage.
    • Pour définir la classe de stockage pour les journaux, indiquez le paramètre --storage-class-logs suivi du nom de la classe de stockage.

    Important

    Si vous avez besoin de modifier la classe de stockage après le déploiement, vous devrez extraire les données, supprimer votre serveur, créer un nouveau serveur et importer les données.

Lorsque vous exécutez la commande create, vous êtes invité à saisir le nom d’utilisateur et le mot de passe de l’utilisateur administratif. Vous pouvez ignorer l’invite interactive en définissant les variables d’environnement de session AZDATA_USERNAME et AZDATA_PASSWORD avant d’exécuter la commande create.

Exemples

Pour déployer un serveur PostgreSQL nommé postgres01 qui utilise les mêmes classes de stockage que le contrôleur de données, exécutez la commande suivante :

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

Remarque

  • Si vous avez déployé le contrôleur de données à l’aide des variables d’environnement de session AZDATA_USERNAME et AZDATA_PASSWORD dans la même session de terminal, les valeurs d’AZDATA_PASSWORD seront également utilisées pour déployer le serveur PostgreSQL. Si vous préférez utiliser un autre mot de passe, vous pouvez (1) mettre à jour la valeur de AZDATA_USERNAME et AZDATA_PASSWORD ou (2) supprimer les variables d’environnement AZDATA_USERNAME et AZDATA_PASSWORD, ou (3) supprimer sa valeur pour être invité à entrer un nom d’utilisateur et un mot de passe de manière interactive lorsque vous créez un serveur.
  • La création d’un serveur PostgreSQL n’inscrira pas immédiatement les ressources dans Azure. Dans le cadre du processus de chargement de l’inventaire des ressources ou des données d’utilisation sur Azure, les ressources seront créées dans Azure et vous pourrez voir vos ressources dans le portail Azure.

Répertorier les serveurs PostgreSQL déployés dans votre contrôleur de données Arc

Pour répertorier les serveurs PostgreSQL déployés dans votre contrôleur de données Arc, exécutez la commande suivante :

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

Obtenir les points de terminaison pour vous connecter à vos serveurs PostgreSQL avec Azure Arc

Pour afficher les points de terminaison d’un serveur PostgreSQL, exécutez la commande suivante :

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

Par exemple :

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

Vous pouvez utiliser le point de terminaison d’instance PostgreSQL pour vous connecter au serveur PostgreSQL à partir de votre outil favori : Azure Data Studio, pgcli psql, pgAdmin, etc.

Pour le moment, utilisez la build Insiders d’Azure Data Studio.

Remarque spéciale sur les déploiements de machines virtuelles Azure

Lorsque vous utilisez une machine virtuelle Azure, l’adresse IP du point de terminaison n’affiche pas l’adresse IP publique. Utilisez la commande suivante pour localiser l’adresse IP publique :

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

Vous pouvez ensuite combiner l’adresse IP publique avec le port pour établir votre connexion.

Vous devrez peut-être également exposer le port du serveur PostgreSQL à l’aide de la passerelle de sécurité réseau (NSG). Pour autoriser le trafic via le groupe de sécurité réseau, définissez une règle. Pour définir une règle, vous devez connaître le nom de votre groupe de sécurité réseau. Vous déterminez le groupe de sécurité réseau à l’aide de la commande ci-dessous :

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

Une fois que vous avez le nom du groupe de sécurité réseau, vous pouvez ajouter une règle de pare-feu à l’aide de la commande suivante. Les exemples de valeurs ci-dessous créent une règle NSG pour le port 30655 et autorisent la connexion à partir de n’importe quelle adresse IP source .

Avertissement

Nous vous déconseillons de définir une règle pour autoriser la connexion à partir de n’importe quelle adresse IP source. Vous pouvez mieux verrouiller les choses en spécifiant une valeur -source-address-prefixes spécifique à votre adresse IP du client ou une plage d’adresses IP qui couvre les adresses IP de votre équipe ou de votre organisation.

Remplacez la valeur du paramètre --destination-port-ranges ci-dessous par le numéro de port que vous avez obtenu à partir de la commande az postgres server-arc list ci-dessus.

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 '*'

Se connecter avec Azure Data Studio

Ouvrez Azure Data Studio et connectez-vous à votre instance avec l’adresse IP et le numéro de port du point de terminaison externe, ainsi que le mot de passe que vous avez spécifié au moment de la création de l’instance. Si PostgreSQL n’est pas disponible dans la liste déroulante Type de connexion, vous pouvez installer l’extension PostgreSQL en recherchant PostgreSQL sous l’onglet Extensions.

Remarque

Vous devrez cliquer sur le bouton [Avancé] dans le panneau de connexion pour entrer le numéro de port.

N’oubliez pas que si vous utilisez une machine virtuelle Azure, vous aurez besoin de l’adresse IP publique qui est accessible via la commande suivante :

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

Se connecter avec psql

Pour accéder à votre serveur PostgreSQL, passez le point de terminaison externe du serveur PostgreSQL que vous avez récupéré ci-dessus :

Vous pouvez maintenant vous connecter à psql :

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