Déployez Oracle Blockchain Platform Enterprise Edition sur Red Hat OpenShift Local

Vous pouvez installer Oracle Blockchain Platform Enterprise Edition sur Red Hat OpenShift Local à des fins de test et de développement interne. Elle n'est pas prise en charge pour les environnements de production.

Red Hat OpenShift Local est conçu pour s'exécuter sur un ordinateur local afin de simplifier la configuration et les tests, et pour émuler l'environnement de développement cloud localement avec tous les outils nécessaires pour développer des applications basées sur des conteneurs. Il était auparavant connu sous le nom de conteneurs Red Hat CodeReady.

Pour plus d'informations sur Red Hat OpenShift Local, reportez-vous à Red Hat OpenShift Local.

Prérequis :
  • CPU : 12 ou plus
  • Mémoire : 30 Go ou plus
  • Taille du disque : 150 Go ou plus
  • RedHat OpenShift Local - Embedded OpenShift version 4.15.3, CRC (Code Ready Container) version 2.34.1
  • Système d'exploitation : CentOS 8

Cette section fournit un exemple d'installation des versions testées des prérequis. Reportez-vous à la documentation de chaque produit pour plus d'informations et pour toute modification requise des instructions d'installation. La revue de processus suivante a été testée en utilisant CentOS 8 comme système d'exploitation. D'autres distributions de Linux, telles qu'Oracle Linux ou Red Hat Enterprise Linux, peuvent également être utilisées.

Remarques :

Lorsque vous installez Istio dans le cadre des tâches d'installation du logiciel prérequis, installez la version 1.22.1, et non la dernière version.

Installation de Red Hat OpenShift local

Pour télécharger et installer Red Hat OpenShift Local, procédez comme suit : Pour plus d'informations, reportez-vous à Installation des conteneurs CodeReady.

  1. Accédez à Red Hat OpenShift Local et cliquez sur Installer OpenShift sur votre ordinateur portable. Vous êtes redirigé vers une page de connexion où vous pouvez entrer vos informations d'identification Red Hat ou créer un compte si vous n'en avez pas déjà un.
  2. Une fois connecté, cliquez sur Clusters, puis sur l'onglet Local.
  3. Sur la page Local, cliquez sur Télécharger OpenShift local, puis sur Télécharger la clé secrète d'extraction.
  4. Copiez le package crc et la clé secrète d'extraction que vous avez téléchargés à l'étape précédente vers votre machine virtuelle. Exemple :
    scp -r -i ~/.ssh/id_rsa ~/Downloads/crc-linux-amd64.tar.xz <username>@<ip-address>:/tmp
    scp -r -i ~/.ssh/id_rsa ~/Downloads/pull-secret.txt <username>@<ip-address>:/tmp
    cd
  5. Sur la machine virtuelle, créez un répertoire nommé crc et copiez le package crc et la clé secrète d'extraction dans ce répertoire.
  6. Installez OpenShift en exécutant la commande suivante :
    sudo dnf install NetworkManager
    Si une erreur commençant par Failed loading plugin "osmsplugin" : Aucun module nommé 'librepo' s'affiche, exécutez les commandes suivantes puis réexécutez la commande d'installation.
    sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
    sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
    
  7. Exécutez les commandes suivantes pour extraire le fichier d'archive :
    cd ~/crc
    tar xvf crc-linux-amd64.tar.xz
  8. Exécutez les commandes suivantes pour déplacer le fichier binaire vers le répertoire /bin et mettre à jour le chemin :
    mkdir -p ~/bin
    cp ~/crc/crc-linux-*-amd64/crc ~/bin
    export PATH=$PATH:$HOME/bin
    echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

Augmenter l'espace disque dans la partition racine

Si l'espace de partition root de la machine virtuelle est inférieur à 150 Go, procédez comme suit.

  1. Assurez-vous que le disque d'initialisation, le système de fichiers root ou le gestionnaire de volumes logiques (LVM) dispose d'au moins 150 Go d'espace libre.
  2. Utilisez fdisk pour créer une partition de système de fichiers Linux d'au moins 100 Go (dans cet exemple, la nouvelle partition est /dev/sda4).
    sudo fdisk /dev/sda
  3. Utilisez la commande suivante pour ajouter le volume physique à un groupe de volumes.
    sudo vgextend centosvolume /dev/sda4
  4. Utilisez la commande suivante pour augmenter la taille du volume logique.
    sudo lvextend -L+99G /dev/mapper/centosvolume-root
  5. Utilisez la commande suivante pour augmenter la taille du système de fichiers.
    sudo xfs_growfs /dev/centosvolume/root
    La commande équivalente sur Oracle Enterprise Linux est oci_growfs.

Configurer les paramètres locaux OpenShift

Exécutez les commandes suivantes pour configurer OpenShift Local afin d'utiliser 12 coeurs de processeur, 30 Go de mémoire et 100 Go d'espace disque.

crc config set cpus 12 
crc config set memory 30720 
crc config set disk-size 100

Téléchargement et installation du client OpenShift

Exécutez les commandes suivantes pour télécharger et installer le logiciel client oc, OpenShift.

wget -O ~/crc/openshift-client-linux.tar.gz https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/4.15.3/openshift-client-linux-4.15.3.tar.gz 
tar xvzf openshift-client-linux.tar.gz
sudo mv oc /usr/local/bin

Démarrage du cluster

Exécutez les commandes suivantes pour configurer, démarrer et vérifier le statut du cluster. Utilisez la clé secrète d'extraction que vous avez téléchargée lorsque vous avez téléchargé Red Hat OpenShift Local.

crc setup 
crc start -p ~/crc/pull-secret.txt
crc status
Une fois l'installation terminée, des informations similaires aux suivantes s'affichent :
INFO Adding crc-admin and crc-developer contexts to kubeconfig... 
Started the OpenShift cluster.

The server is accessible via web console at:
  https://console-openshift-console.apps-crc.testing

Log in as administrator:
  Username: kubeadmin
  Password: password  (note this password)

Log in as user:
  Username: developer
  Password: developer

Use the 'oc' command line interface:
  $ eval $(crc oc-env)
  $ oc login -u developer https://api.crc.testing:6443

Installer Oracle Blockchain Platform Enterprise Edition

  1. Pour vous assurer que Red Hat OpenShift Local fonctionne correctement, procédez comme suit :
    1. Connectez-vous à la console.
      oc login -u kubeadmin -p <password> https://api.crc.testing:6443
    2. Vérifiez que Red Hat OpenShift Local est accessible.
      oc get nodes
  2. Exécutez la commande suivante pour définir le profil Istio. Vous devez avoir terminé les étapes de l'installation d'Istio avant d'exécuter les commandes suivantes.
    istioctl install --set profile=openshift --set values.pilot.env.ENABLE_TLS_ON_SIDECAR_INGRESS=true --set components.cni.enabled=true --set values.cni.repair.deletePods="true"
  3. Sur la page Oracle Blockchain Platform Enterprise Edition, cliquez sur Télécharger, puis suivez les étapes permettant de télécharger le package Oracle Blockchain Platform Enterprise Edition, qui est d'environ 6,5 Go.
  4. Extrayez le fichier d'archive téléchargé.
    La structure de dossiers extraite inclut des scripts runme pour différentes plates-formes, y compris OpenShift.
  5. Mettez à jour le fichier runme-input.yaml avec les valeurs requises. Exécutez également les fichiers runme-input.yaml et runme.sh. Assurez-vous que vous pouvez vous connecter au registre à partir du compte utilisateur indiqué dans le fichier runme-input.yaml. L'exemple de fichier runme-input.yaml suivant peut être utilisé comme référence :
    imageRegistryConfiguration:
      registry: <container_registry_name>
      imageTagPrefix: <container-image-repository-prefix>
      username: <container-registry-username>
     
    imageReleaseVersion: <obpee-release-version>
     
    # Set storageClassName to create a dynamic persistent volume. If empty, default storageClass is used.
     
    controlPlaneStorage:
      storageClassName: 
      # Example 500Mi, 5Gi
      size: 1Gi
    parentDomainName: example.com
    #imagePullTimeout: Use this field to customize the wait time (in seconds) for pulling the required container images from the repository. Default is 1800 seconds.
    imagePullTimeout: 1800
    Les variables de l'exemple ont les valeurs suivantes :
    • imageRegistryConfiguration.registry est le serveur de registre de conteneur à utiliser. Exemple : iad.ocir.io
    • imageRegistryConfiguration.imageTagPrefix est le chemin du référentiel de base de conteneur avec le registre, à partir duquel les images seront propagées ou extraites. Exemple : iad.ocir.io/obpee/bcs
    • imageRegistryConfiguration.username est le nom utilisateur de connexion au registre de conteneurs.
    • imageReleaseVersion est la version d'Oracle Blockchain Platform Enterprise Edition.
    • controlPlaneStorage.storageClassName est la classe de stockage Kubernetes à utiliser pour la demande de volume persistant (PersistentVolumeClaim). Si ce champ est vide, la valeur par défaut storageClass est utilisée.
    • controlPlaneStorage.size est la taille de PVC pour les services Blockchain Platform Manager (plan de contrôle).
    • parentDomainName est le nom de domaine à utiliser pour les services Blockchain Platform Manager. Exemple : example.com.
    • imagePullTimeout correspond au délai d'attente d'extraction de l'image en secondes lors de l'installation d'Oracle Blockchain Platform Enterprise Edition. Par défaut, cet intervalle est de 1 800 secondes.
  6. Ouvrez une nouvelle fenêtre de terminal et accédez au répertoire du package de distribution. Suivez les étapes indiquées dans la sortie du script.
    1. Exécutez la commande suivante pour rendre le script exécutable.
      chmod +x runme_openshift.sh
    2. Exécutez le script suivant pour propager les conteneurs du fichier d'archive vers le référentiel spécifié, puis installez le produit.
      ./runme_openshift.sh --publish-images
      Si les images de conteneur sont déjà téléchargées vers un référentiel, vous pouvez les extraire du référentiel et les installer à l'aide de la commande suivante.
      ./runme_openshift.sh
    • Entrez le mot de passe administrateur LDAP par défaut (le mot de passe ne s'affichera pas) : il permet de définir le mot de passe de l'utilisateur admin pour le serveur d'authentification LDAP intégré.
    • Entrez le mot de passe par défaut de l'administrateur du plan de contrôle (le mot de passe ne sera pas affiché) : il est utilisé pour définir le mot de passe de l'administrateur Blockchain Platform Manager.
    • Entrez le mot de passe du registre <nom du registre> : il permet de se connecter au registre d'images de conteneur (comme indiqué dans runme-input.yaml) pour télécharger des images.
    Le script installe les services suivants sous l'espace de noms obp-cp :
    • control-plane
    • openldap
    • obp-auth-server
    • obp-operator
    • hlf-operator
  7. Ajoutez la ligne suivante au fichier /etc/hosts sur la machine virtuelle crc.
    <CRC_IP_address> controlplane.<parentDomainName> openldap.<parentDomainName> auth.<parentDomainName>
    Dans l'exemple, <CRC_IP_address> est la sortie de la commande crc ip.
  8. Ajoutez la ligne suivante au fichier /etc/hosts sur l'ordinateur que vous utilisez pour vous connecter à la console Blockchain Platform Manager.
    <public_vm_ip> controlplane.<parentDomainName> openldap.<parentDomainName> auth.<parentDomainName>
    Dans cet exemple, <public_vm_ip> est l'adresse IP publique de la machine virtuelle.
  9. Pour accéder à Blockchain Platform Manager à partir d'un ordinateur client, procédez comme suit : Les étapes suivantes utilisent firewalld pour autoriser le trafic entrant vers le serveur et HAProxy pour transférer le trafic vers l'instance locale OpenShift.
    1. Vérifiez que l'entrée suivante se trouve dans le fichier de configuration /etc/NetworkManager/conf.d/crc-nm-dnsmasq.conf.
      [main]
              dns=dnsmasq
      Le fichier de configuration d'instance dnsmasq, /etc/NetworkManager/dnsmasq.d/crc.conf, peut ressembler à ce qui suit :
      server=/crc.testing/198.x.x.x
      server=/apps-crc.testing/198.x.x.x
      198.x.x.x est la sortie de la commande crc ip. L'instance dnsmasq de NetworkManager transmet les demandes pour crc.testing et apps-crc.testing au serveur DNS 198.x.x.x.
    2. Entrez la commande suivante pour installer les dépendances requises.
      sudo dnf -y install haproxy policycoreutils-python-utils
    3. Saisissez les commandes suivantes pour configurer le pare-feu.
      sudo systemctl start firewalld
      sudo firewall-cmd --add-port=80/tcp --permanent
      sudo firewall-cmd --add-port=6443/tcp --permanent
      sudo firewall-cmd --add-port=443/tcp --permanent
      sudo systemctl restart firewalld
      sudo semanage port -a -t http_port_t -p tcp 6443
      sudo semanage port -a -t http_port_t -p tcp 6443
    4. Pour pouvoir configurer HAProxy, vous devez connaître l'adresse IP du serveur et l'adresse IP de la machine virtuelle locale Red Hat OpenShift. Exécutez les commandes suivantes .
      export SERVER_IP=$(hostname --ip-address)
      export CRC_IP=$(crc ip)
      cd /etc/haproxy;sudo cp haproxy.cfg haproxy.cfg.orig
    5. Remplacez le contenu du fichier haproxy.cfg par le texte suivant.
      global
      debug
       
      defaults
      log global
      mode http
      timeout connect 0
      timeout client 0
      timeout server 0
       
      frontend apps
      bind SERVER_IP:80
      bind SERVER_IP:443
      option tcplog
      mode tcp
      default_backend apps
       
      backend apps
      mode tcp
      balance roundrobin
      option ssl-hello-chk
      server webserver1 CRC_IP:80 check
      server webserver2 CRC_IP:443 check
       
      frontend api
      bind SERVER_IP:6443
      option tcplog
      mode tcp
      default_backend api
       
      backend api
      mode tcp
      balance roundrobin
      option ssl-hello-chk
      server webserver1 CRC_IP:6443 check
      
    6. Exécutez les commandes suivantes pour remplacer les adresses IP dans la configuration HAproxy, puis démarrez HAproxy.
      export CRC_IP=$(crc ip)
      export SERVER_IP=$(hostname --ip-address)
      sudo sed -i "s/CRC_IP/$CRC_IP/g" haproxy.cfg
      sudo sed -i "s/SERVER_IP/$SERVER_IP/g" haproxy.cfg
      sudo systemctl start haproxy

Accéder au gestionnaire Blockchain Platform

Après l'installation, configurez la résolution des noms d'hôte pour les noms d'hôte Blockchain Platform Manager générés.
  1. Exécutez la commande suivante pour obtenir la liste des noms d'hôte configurés :
    kubectl get virtualservice -n obp-cp -o json | jq -r .items[].spec.hosts[0]
  2. Configurez la résolution des noms d'hôte pour ces noms d'hôte générés à l'adresse IP du cluster Red Hat OpenShift en cours d'exécution en ajoutant l'entrée suivante au fichier /etc/hosts sur la machine virtuelle.
    <IP_Address> controlplane.<parentDomainName> openldap.<parentDomainName> auth.<parentDomainName>
    Dans l'exemple, <IP_address> est la sortie de la commande crc ip.
  3. Assurez-vous que la liste de sécurité de machine virtuelle crc autorise les ports 443, 6443 et 80 à partir de l'ordinateur hôte client.

Vous pouvez désormais vous connecter à Blockchain Platform Manager (outil de gestion de plan de contrôle) pour créer une instance.

Une fois l'instance créée, vous devez configurer le transfert DNS comme décrit dans : Provisionnement des post-requis.