Remarque :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction à Oracle Cloud Infrastructure Free Tier.
- Il utilise des exemples de valeur pour les informations d'identification Oracle Cloud Infrastructure, la location et les compartiments. A la fin de votre atelier, remplacez ces valeurs par celles propres à votre environnement cloud.
Déployer Oracle FLEXCUBE sur OKE
Introduction
Oracle FLEXCUBE Universal Banking nécessite plusieurs étapes pour qu'un environnement soit opérationnel. Etant une application JEE (Java Enterprise Edition), elle inclut une base logicielle minimale à installer, telle que la base de données et le serveur d'applications. Pour cet exemple, Oracle WebLogic et Oracle Database sont utilisés dans le cadre de la pile technique. Pour activer un système complet et en cours d'exécution, un déploiement standard doit suivre les étapes suivantes :
1. Install Oracle Database
2. Install Oracle Weblogic Fusion Middleware Infrastructure
3. Install Oracle FLEXCUBE database artifacts
4. Install Oracle FLEXCUBE application server artifacts
5. Configure initial setup
6. Tune database
7. Tune application
8. Personalize as per business needs
Un programme d'installation d'application effectue les étapes initiales. Le processus peut être répété, mais il prend également beaucoup de temps, ce qui signifie que, en fonction de la complexité de l'environnement à créer, le déploiement du système peut prendre plusieurs jours. Une façon d'améliorer ce processus est d'automatiser la plupart d'entre eux et c'est là que les stratégies de mise en conteneur peuvent bénéficier de ces types d'architectures.
Les 7 premières étapes énumérées précédemment peuvent être entièrement automatisées à l'aide de conteneurs, tels que des images Docker et une combinaison d'outils pour le maintenir et le gérer. Les données configurées dans la base de données deviennent un artefact prédéfini réplicable et la couche d'application est transformée en une image déjà réglée et stockée en tant que copie maître. Oracle Cloud Infrastructure (OCI) fournit ensuite des éléments pour répliquer à tout moment un environnement complet basé sur cette copie maître du système.
Remarque :
Est-il possible de déployer la base de données ou des banques de données potentiellement différentes dans des conteneurs indépendants ?
Potentiellement oui, mais pour ce tutoriel, nous avons décidé de le conserver en tant que déploiement de base de données cloud standard avec toutes les banques de données du même schéma et de conserver toutes les pratiques courantes existantes au niveau de la base de données.
L'objectif de ce tutoriel n'est pas de transformer l'architecture en architecture basée sur les microservices, car cela nécessiterait d'autres modifications structurelles qui ne font pas partie de la portée. Pour plus d'informations sur la base de données Oracle sur Docker, rendez-vous sur le site : Oracle GitHub.
Objectifs
- Déployer rapidement une image FLEXCUBE manuellement
- Créer une image FLEXCUBE de conteneur
- Créer une instance DevOps pour créer et déployer FLEXCUBE dans un cluster Kubernetes
Prérequis
- Cluster OKE comportant un noeud de processus actif avec au moins :
- 8 OCPU
- 64 Go de RAM
- Accès
kubectl
au cluster OKE pour les opérations locales - Sauvegarde de base de données FLEXCUBE dans la base de données OCI (DBaaS)
- Le VCN OKE doit accéder à DBaaS
- Utilisation des autorisations et des limites pour créer :
- Equilibreurs de charge
- Stockage Block Volume
- Configuration JDBC de votre sauvegarde FLEXCUBE :
- nom utilisateur
- mot de passe
- Adresse Oracle Database (adresse IP/port)
- Connaissance de :
- WebLogic Utilisation des outils et de l'administration : utilisation de
setWLSEnv.sh
- Administration de base de Kubernetes
- Opération Visual Builder ou Jenkins
- Administration et configuration de FLEXCUBE
- WebLogic Utilisation des outils et de l'administration : utilisation de
Remarque :
Pour créer un cluster OKE dans votre locataire OCI, reportez-vous à Création du cluster OKE.
Si vous avez déjà créé le cluster OKE, vérifiez si vous avez configuré l'accès au cluster comme décrit dans la rubrique Télécharger le fichier Kubeconfig.
Pour obtenir des instructions sur l'installation de kubectl, reportez-vous à la section : Install kubectl
Tâche 1 : création d'un serveur d'administration WebLogic
Commençons par un simple POD de serveur d'administration WebLogic dans votre cluster Kubernetes.
-
Dans le fichier weblogic.zip, vous pouvez trouver :
- README : quelques liens qui vous aident à créer votre cluster OKE s'il n'est pas déjà créé
- secret.sh : script bash qui vous aide à créer la clé secrète permettant d'accéder au référentiel d'images Oracle pour utiliser l'image WebLogic.
- weblogic.yaml : fichier YAML permettant de créer une instance de WebLogic et des ports de service permettant d'accéder au serveur d'administration
Remarque : vous devez affecter le référentiel d'images Oracle et définir vos informations d'identification (utilisateur/mot de passe) pour obtenir l'image WebLogic. Pour plus d'informations, reportez-vous à Référentiel d'images Oracle.
-
Avec vos informations d'identification dans le référentiel d'images Oracle (connexion/mot de passe), vous devez modifier le script secret.sh et ajouter vos informations d'identification au fichier. Exécutez cette commande pour fournir la clé secrète dans votre cluster OKE. Vous ne pouvez pas déployer le conteneur WebLogic sans cette étape.
sh secret.sh
-
Nous pouvons maintenant procéder au déploiement WebLogic. Vous pouvez ajuster de nombreux paramètres, mais pour ce test, tenez à jour le port 7001 et les informations d'identification pour vous connecter au serveur d'administration WebLogic.
weblogic.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: weblogic-deployment spec: replicas: 1 selector: matchLabels: app: weblogic template: metadata: labels: app: weblogic spec: containers: - name: weblogic image: container-registry.oracle.com/middleware/weblogic:12.2.1.4 env: - name: DOMAIN_NAME value: "myDomain" - name: ADMIN_NAME value: "myadmin" - name: ADMIN_LISTEN_PORT value: "7001" - name: ADMIN_HOST value: "AdminContainer" - name: ADMINISTRATION_PORT_ENABLED value: "false" - name: ADMINISTRATION_PORT value: "9005" - name: MANAGED_SERVER_PORT value: "8001" - name: MANAGED_SERVER_NAME_BASE value: "MS" - name: CONFIGURED_MANAGED_SERVER_COUNT value: "2" - name: CLUSTER_NAME value: "cluster1" - name: CLUSTER_TYPE value: "DYNAMIC" - name: PRODUCTION_MODE value: "dev" - name: DOMAIN_HOST_VOLUME value: "/app/domains" - name: PROPERTIES_FILE_DIR value: "/u01/oracle/properties" - name: PROPERTIES_FILE value: "/u01/oracle/properties/domain.properties" command: [ "/bin/bash", "-c", "--" ] args: [ "mkdir /u01/oracle/properties; cd /u01/oracle/properties; echo 'username=weblogic' > domain.properties; echo 'password=weblogic123' >> domain.properties; cd /u01/oracle; ./createAndStartEmptyDomain.sh; while true; do sleep 30; done;" ] ports: - name: port9005 containerPort: 9005 imagePullSecrets: - name: oracledockersecret --- apiVersion: v1 kind: Service metadata: name: weblogic-service labels: app: weblogic spec: selector: app: weblogic ports: - port: 7001 targetPort: 7001 name: adminserver - port: 8001 targetPort: 8001 name: managedserver - port: 9005 targetPort: 9005 name: adminport type: LoadBalancer
-
Dans votre terminal, vous pouvez exécuter le fichier
weblogic.yaml
pour déployer le serveur d'administration.kubectl apply -f weblogic.yaml
-
Vous pouvez voir le port des services et des équilibreurs de charge pour accéder à votre serveur d'administration. Exécutez la commande suivante :
kubectl get svc
-
Les détails suivants sont affichés :
-
Notez une valeur en attente dans votre weblogic-service. Cela signifie qu'un équilibreur de charge n'est pas prêt avec une adresse IP publique. Attendez une minute, puis répétez la commande kubectl pour afficher l'adresse IP publique.
-
Avec une adresse IP publique, ouvrez l'URL suivante dans votre navigateur :
http://<Public IP>:7001/console
-
Vous pouvez maintenant voir le serveur d'administration. L'utilisateur et le mot de passe définis dans votre fichier YAML sont les suivants :
utilisateur : mot de passe weblogic : weblogic123
Tâche 2 : obtention du mot de passe de base de données au format AES256
Vérifiez la sauvegarde de la base de données FLEXCUBE et obtenez le mot de passe de la base de données au format AES256.
-
N'oubliez pas qu'Oracle Database est nécessaire dans OCI DBaaS et restaurez votre sauvegarde FLEXCUBE. Après avoir vérifié la restauration d'une sauvegarde de base de données FLEXCUBE valide, vous avez besoin de ces informations pour accéder au contenu de la base de données FLEXCUBE :
- Adresse (adresse IP/port)
- Nom utilisateur
- Mot de passe
-
Vous ne pouvez pas utiliser le mot de passe au format texte. Vous devez convertir votre mot de passe au format AES256. La façon la plus simple de convertir votre mot de passe au format AES256 est d'utiliser l'outil WebLogic :
setWLSEnv.sh
-
Ce script bash d'outil se trouve dans le chemin WebLogic :
./oracle/wlserver/server/bin
-
Pour convertir votre mot de passe, vous devez exécuter les commandes suivantes :
cd ./oracle/wlserver/server/bin . ./setWLSEnv.sh java -Dweblogic.RootDirectory=../user_projects/domains/integrated weblogic.security.Encrypt <Database Password>
-
Après l'exécution de setWLSEnv.sh, vous obtenez un mot de passe au format AES256 comme dans l'exemple suivant :
{AES256}7kfaltdnEBjKNq.......RIU0IcLOynq1ee8Ib8=
-
Utilisons le POD du serveur d'administration WebLogic plus récent pour exécuter cette commande.
kubectl exec -it $(kubectl get pod -l app=weblogic -o jsonpath="{.items[0].metadata.name}") -- /bin/bash
-
Attendez que vous puissiez entrer dans le conteneur de votre serveur WebLogic. Exécutez la séquence de commandes suivante :
cd /u01/oracle/wlserver/server/bin . ./setWLSEnv.sh java -Dweblogic.RootDirectory=/u01/oracle/user_projects/domains/myDomain weblogic.security.Encrypt <Database Password>
-
Remplacez
par votre mot de passe texte. -
Vous pouvez voir le mot de passe {AES256}. Enregistrez ces informations pour les étapes suivantes.
-
Exécutez cette commande pour quitter le conteneur :
exit
. -
Vous pouvez à présent supprimer le serveur d'administration WebLogic. Vous devez le supprimer à cause de FLEXCUBE, il utilisera également le port 7001.
kubectl delete -f weblogic.yaml
Tâche 3 : Exécuter un déploiement manuel avec kubectl
Vous pouvez déployer FLEXCUBE (fcubs) dans votre cluster OKE à l'aide de la commande kubectl. Elle peut être effectuée sur votre machine locale si vous avez configuré l'accès au cluster OKE pour l'outil de commande kubectl.
Comprenons le fichier integrated145.yaml
Le fichier yaml contient quelques paramètres importants pour créer le pod : inclut le nom du déploiement, reconnaît l'adresse IP/le nom d'hôte interne, où choisir l'image à partir de WebLogic, la connexion JDBC et l'accès à la base de données chiffré.
Dans le même fichier yaml, il est également défini le dimensionnement attendu par le pod, en tenant compte du nombre de ressources nécessaires et jusqu'à la limite qu'il peut augmenter en cas d'augmentation de la consommation.
Les ports à exposer sont également définis dans le fichier yaml, ce qui permet une sécurité personnalisée. L'utilisateur métier peut accéder à l'application, à la console WebLogic par l'administrateur, aux services Web par les développeurs, etc.
Remarque : dans ce scénario, nous avons créé tous les services dans le même POD. Pour évoluer, nous devons tout faire. Une bonne façon de casser un monolithe serait d'instancier différents pods à l'aide de différents ports exposés dans différents serveurs WebLogic. Par conséquent, les pods peuvent être mis à l'échelle indépendamment.
Par exemple, un POD de services Web fortement utilisé dans les intégrations peut nécessiter et utiliser 10 coeurs et évoluer si nécessaire, tandis que l'application (déployée dans l'autre pod) nécessite seulement 2 coeurs et a un comportement plus "constant".
Il s'agit du fichier integrated145.yaml :
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: flexcubeclaim
spec:
accessModes:
- ReadWriteOnce
storageClassName: oci-bv
resources:
requests:
storage: 500Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: integrated145-deployment
spec:
replicas: 1
selector:
matchLabels:
app: integrated145
template:
metadata:
labels:
app: integrated145
spec:
hostname: integrated145
hostAliases:
- ip: "127.0.0.1"
hostnames:
- "fcubs.oracle.com"
containers:
- name: integrated145
image: gru.ocir.io/idvkxij5qkne/oraclefmw-infra:12.2.1.4.0_jdk8u281_pt34080315_apr22
command: [ "/bin/sh", "-c"]
args:
[ "sleep 180; su - gsh ; cd /; yum -y install wget; wget https://objectstorage.us-ashburn-1.oraclecloud.com/p/dX80UuetlAvWOEbvQNMBv47H3ZPR-zZHJJmTsu_GQ66icfgFaPSSu_97j8q3Fyrp/n/idcci5ks1puo/b/flexcubeBucketNewVersion/o/initializeConfig.sh; yum -y install unzip; sh initializeConfig.sh jdbc:oracle:thin:@x.x.x.x:1521/prodpdb.sub0xxxxxxxxx0.arspvcn.oraclevcn.com {AES256}AgWyiXhc7aM112gNRUwBIWf5QpTpWMlI537LrIfPWjCcmwNCsynBxxg99; while true; do sleep 30; done;" ]
ports:
- name: port7001
containerPort: 7001
- name: port7002
containerPort: 7002
- name: port7003
containerPort: 7003
- name: port7004
containerPort: 7004
- name: port7005
containerPort: 7005
- name: port7006
containerPort: 7006
- name: port7007
containerPort: 7007
- name: port7008
containerPort: 7008
- name: port7009
containerPort: 7009
- name: port7010
containerPort: 7010
- name: port7011
containerPort: 7011
- name: port7012
containerPort: 7012
- name: port7013
containerPort: 7013
- name: port7014
containerPort: 7014
- name: port7015
containerPort: 7015
- name: port7016
containerPort: 7016
- name: port7017
containerPort: 7017
- name: port7018
containerPort: 7018
- name: port7019
containerPort: 7019
- name: port7020
containerPort: 7020
- name: port5556
containerPort: 5556
# livenessProbe:
# httpGet:
# path: /console
# port: 7001
# initialDelaySeconds: 3000
# timeoutSeconds: 30
# periodSeconds: 300
# failureThreshold: 3
volumeMounts:
- name: data
mountPath: /scratch/gsh/kernel145
readOnly: false
resources:
requests:
cpu: "5"
memory: "36Gi"
#ephemeral-storage: "500Gi"
limits:
cpu: "8"
memory: "64Gi"
#ephemeral-storage: "500Gi"
# restartPolicy: Always
volumes:
- name: data
persistentVolumeClaim:
claimName: flexcubeclaim
imagePullSecrets:
- name: ocirsecret
---
apiVersion: v1
kind: Service
metadata:
name: integrated145-service
labels:
app: integrated145
# annotations:
# service.beta.kubernetes.io/oci-load-balancer-internal: "true"
# service.beta.kubernetes.io/oci-load-balancer-shape: "100Mbps"
# service.beta.kubernetes.io/oci-load-balancer-subnet1: "ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaa.........................zjyrza"
spec:
selector:
app: integrated145
ports:
- port: 7004
targetPort: 7004
type: LoadBalancer
---
apiVersion: v1
kind: Service
metadata:
name: integrated145-service-weblogic
labels:
app: integrated145
# annotations:
# service.beta.kubernetes.io/oci-load-balancer-internal: "true"
# service.beta.kubernetes.io/oci-load-balancer-shape: "100Mbps"
# service.beta.kubernetes.io/oci-load-balancer-subnet1: "ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaa.........................zjyrza"
spec:
selector:
app: integrated145
ports:
- port: 7001
targetPort: 7001
type: LoadBalancer
---
apiVersion: v1
kind: Service
metadata:
name: or Jenkins
labels:
app: integrated145
# annotations:
# service.beta.kubernetes.io/oci-load-balancer-internal: "true"
# service.beta.kubernetes.io/oci-load-balancer-shape: "100Mbps"
# service.beta.kubernetes.io/oci-load-balancer-subnet1: "ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaa.........................zjyrza"
spec:
selector:
app: integrated145
ports:
- port: 7005
targetPort: 7005
type: LoadBalancer
---
apiVersion: v1
kind: Service
metadata:
name: integrated145-webservices2
labels:
app: integrated145
# annotations:
# service.beta.kubernetes.io/oci-load-balancer-internal: "true"
# service.beta.kubernetes.io/oci-load-balancer-shape: "100Mbps"
# service.beta.kubernetes.io/oci-load-balancer-subnet1: "ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaa.........................zjyrza"
spec:
selector:
app: integrated145
ports:
- port: 7009
targetPort: 7009
type: LoadBalancer
Remarque : Résilience - Le déploiement FLEXCUBE est résilient. Par conséquent, si WebLogic ou FLEXCUBE tombe en panne, le cluster Kubernetes se charge et s'exécute à nouveau. Le responsable de cela est le livenessprobe dans le fichier integrated145.yaml. Annulez la mise en commentaire des lignes suivantes si vous souhaitez activer une réinsertion dans votre conteneur.
# livenessProbe: # httpGet: # path: /console # port: 7001 # initialDelaySeconds: 3000 # timeoutSeconds: 30 # periodSeconds: 300 # failureThreshold: 3 . . . # restartPolicy: Always
Comprenons quelques fichiers script
Certains fichiers sont requis pour :
- Déployer la structure FLEXCUBE dans l'image Fusion
- Configurer les sources de données JDBC pour accéder à la base de données FLEXCUBE
- Configuration d'autres paramètres nécessaires pour rendre FLEXCUBE opérationnel
FLEXCUBE-Package.zip
Ce package est un fichier ZIP. Il contient tous les scripts nécessaires pour configurer et exécuter l'instance FLEXCUBE. Le contenu de ce package se trouve dans le dossier scripts.zip. Ce package contient :
-
initializeConfig.sh : fichier principal qui exécute tous les autres scripts pour configurer et exécuter FLEXCUBE
-
domainsDetails.properties : fichier de base qui sera modifié par le script
initializeConfig.sh
-
config.xml : fichier de base qui sera modifié par le script
initializeConfig.sh
-
flexcube.sh : script permettant de télécharger la structure FLEXCUBE v14.5 dans le POD
-
JDBCReplace.sh : script permettant de remplacer toutes les sources de données JDBC par l'adresse de base de données FLEXCUBE (IP/Port), le nom utilisateur et le mot de passe de la base de données flexcube (format AES256)
-
JDBCList : fichier contenant tous les fichiers XML associés aux sources de données de l'application. Il sera utilisé par JDBCReplace.sh
-
ExecuteWebLogic.sh : script permettant d'exécuter le serveur de domaine WebLogic, le gestionnaire de noeuds et de démarrer les applications (avec StartApps.sh et StartApps.py)
-
StartApps.sh : Script permettant d'exécuter le script WLST
StartApps.py
-
StartApps.py : script qui exécute les applications FLEXCUBE
Remarque : le dossier extra-scripts.zip contient d'autres scripts qui seront utiles pour d'autres tâches. Ce n'est pas une partie du cœur de ce tutoriel.
Préparer le fichier YAML
Cette étape consiste à configurer le fichier integrated145.yaml
. Ce fichier YAML est responsable du déploiement de l'application, de l'accès à l'application via un équilibreur de charge et de la création d'un stockage pour la persistance. La configuration consiste essentiellement à placer les informations de la base de données dans le fichier YAML.
-
Recherchez cette ligne dans le fichier integrated145.yaml :
-
Faites défiler la page et recherchez la ligne suivante :
sh initializeConfig.sh jdbc:oracle:thin:@x.x.x.x:1521/prodpdb.sub0xxxxxxxxx0.arspvcn.oraclevcn.com
-
Modifiez x.x.x.x :1521/prodpdb.sub0xxxxxxxxx0.arspvcn.oraclevcn.com avec votre adresse DBaaS.
-
Faites défiler la page et recherchez la ligne suivante :
{AES256}AgWyiXhc7aM112gNRUwBIWf5QpTpWMlI537LrIfPWjCcmwNCsynBxxg99
-
Modifiez la valeur {AES256} avec le mot de passe généré à l'étape précédente.
Exécutez le fichier integrated145.yaml.
-
Une fois tout configuré, exécutez le fichier YAML :
kubectl apply -f integrated145.yaml
-
Le processus de création de la structure FLEXCUBE, de configuration et de mise en service du serveur et de l'application peut prendre environ 15 minutes. Ensuite, exécutez la commande suivante pour afficher les services et le port des équilibreurs de charge :
kubectl get svc
Les adresses IP publiques des équilibreurs de charge sont affichées lors de la création. Attendez que toutes les adresses IP publiques soient visibles.
NAME TYPE CLUSTER-IP ADRESSE EXTERNE PORT(S) AGE integrated145-service LoadBalancer 10.x.x.x 210.x.x.x 7004:30868/TCP 200d integrated145-service-weblogic LoadBalancer 10.x.x.x 210.x.x.x 7001:32071/TCP 200d integrated145-webservices LoadBalancer 10.x.x.x 210.x.x.x 7005:30415/TCP 200d integrated145-webservices2 LoadBalancer 10.x.x.x 210.x.x.x 7009:30759/TCP 200d Remarque : dans le fichier
integrated145.yaml
, vous pouvez voir dans la section Service, les annotations sont commentées. Cette annotation crée l'équilibreur de charge en mode privé et votre application sera plus sécurisée, mais vous devez créer un bastion pour accéder à ces applications.# annotations: # service.beta.kubernetes.io/oci-load-balancer-internal: "true" # service.beta.kubernetes.io/oci-load-balancer-shape: "100Mbps" # service.beta.kubernetes.io/oci-load-balancer-subnet1: "ocid1.subnet.oc1.sa-saopaulo-1.aaaaaa.............jyrza"
-
Remplacez subnet1 par l'OCID de votre sous-réseau privé. Si vous choisissez d'utiliser FLEXCUBE dans un sous-réseau privé, créez une machine virtuelle de calcul en tant que bastion.
-
Vous pouvez établir un tunnel SSH pour accéder à vos adresses comme suit :
ssh -i PrivateKey.pem -L 7001:<integrated145-service-weblogic Private IP>:7001 opc@<Bastion Public IP>
ssh -i PrivateKey.pem -L 7004:<integrated145-service Private IP>:7004 opc@<Bastion Public IP>
ssh -i PrivateKey.pem -L 7005:<integrated145-webservices Private IP>:7004 opc@<Bastion Public IP>
Et accédez à votre navigateur local à l'aide des URL suivantes :
-
http://localhost:7001/console
-
https://localhost:7004/FCJNeoWeb
-
http://localhost:7005/FCUBSAccService/FCUBSAccService ? WSDL
-
-
-
Une fois les adresses IP visibles, vous pouvez tester votre application. Ouvrez votre navigateur et saisissez :
-
Pour le serveur d'administration WebLogic :
http://<integrated145-service-weblogic IP>:7001/console
-
Pour le service REST :
https://<integrated145-service IP>:7004/FCJNeoWeb
-
Pour le service SOAP :
http://<integrated145-webservices>:7005/FCUBSAccService/FCUBSAccService?WSDL
http://<integrated145-webservices>:7009
-
Application FLEXCUBE sur le port 7004
Service SOAP sur le port 7005
Tâche 4 : automatisation du déploiement FLEXCUBE
Effectuez cette tâche avec Visual Builder Studio. Cet outil fait partie d'OCI et est similaire à Jenkins. Par conséquent, si vous utilisez Jenkins, vous pouvez configurer l'intégration continue et le déploiement continu avec des ajustements mineurs.
-
Créez votre rendez-vous pour le projet FLEXCUBE Git. Vous devez configurer le projet FLEXCUBE Git dans votre configuration Visual Builder Studio (ou Jenkins).
-
Créez deux variables dans le pipeline.
-
JDBCString
: contient la chaîne JDBC. Exemple :jdbc:oracle:thin:@x.x.x.x:1521/prodpdb.sub0xxxxxxxxx0.arspvcn.oraclevcn.com
-
JDBCPassword
: contient un format de mot de passe AES256. Exemple :{AES256}AgWyiXhc7aM112gNRUwBIWf5QpTpWMlI537LrIfPWjCcmwNCsynBxxg99
Dans Visual Builder, vous pouvez créer les variables comme suit :
-
-
Créez les deux étapes suivantes dans le pipeline : Etape de l'interface de ligne de commande OCI : nécessaire pour créer la connexion avec le locataire du cluster OKE et Etape du shell UNIX : nécessaire pour exécuter le processus de déploiement.
-
Dans Configuration de travail dans Visual Builder Studio, cliquez sur Ajouter nouveau et sélectionnez OCICli. Vous devez placer les paramètres OCI pour autoriser Visual Builder Studio à fonctionner avec votre location et votre cluster OKE.
- OCID utilisateur
- Empreinte : configurez l'accès à l'interface de ligne de commande OCI et téléchargez une clé publique
- OCID de location
- Clé privée : paire de clés privées de la clé publique téléchargée dans l'empreinte
- Région : région de votre cluster OKE
- Phrase de passe : si vous avez un mot de passe dans votre clé privée
-
Cliquez sur Ajouter nouveau et sélectionnez Shell UNIX. Ajoutez ce script dans la zone :
# Prepare for kubectl from OCI CLI mkdir -p $HOME/.kube oci ce cluster create-kubeconfig --cluster-id <OCID of your OKE Cluster> --file $HOME/.kube/config --region us-ashburn-1 --token-version 2.0.0 export KUBECONFIG=$HOME/.kube/config # Set Variables export JDBCString=$JDBCString export JDBCPassword=$JDBCPassword # setup the JDBC variables in integrated145-devops.yaml sed -i "s~--JDBCString--~$JDBCString~g" ./files/scripts/integrated145-devops.yaml sed -i "s~--JDBCPassword--~$JDBCPassword~g" ./files/scripts/integrated145-devops.yaml # Deploy integrated145 kubectl config view kubectl replace -f ./files/scripts/integrated145-devops.yaml --force
Remarque : obtenez l'OCID OKE dans votre locataire et ajoutez la ligne "oci ce cluster...". Le fichier integrated145-devops.yaml est similaire au fichier integrated145.yaml, mais préparé pour l'intégration continue et le déploiement continu.
Dans Visual Builder Studio, les détails suivants sont affichés :
-
-
Démarrez le pipeline et attendez le déploiement. Vous pouvez répertorier les services disponibles à l'aide de la commande suivante :
kubectl get svc
NAME TYPE CLUSTER-IP ADRESSE EXTERNE PORT(S) AGE integrated145-service LoadBalancer 10.x.x.x 210.x.x.x 7004:30868/TCP 200d integrated145-service-weblogic LoadBalancer 10.x.x.x 210.x.x.x 7001:32071/TCP 200d integrated145-webservices LoadBalancer 10.x.x.x 210.x.x.x 7005:30415/TCP 200d integrated145-webservices2 LoadBalancer 10.x.x.x 210.x.x.x 7009:30759/TCP 200d
Tâche 5 : mettez à jour les tables de base de données pour configurer votre instance FLEXCUBE.
-
Une fois FLEXCUBE activé sur votre cluster Kubernetes et que vous devez l'intégrer à d'autres applications FSGBU, vous devez effectuer certaines mises à jour sur la base de données. Vous devez modifier les tables suivantes pour qu'elles pointent vers les adresses correctes de votre instance FLEXCUBE :
TableName Modifier PMTM_EXT_NOTIF_SYSTEM REST_URL CSTM_PROP_MASTER SERVICE_URL IFTM_EXT_PAYSYS_DETAIL WSDL_URLS pour OBLM IFTM_EXTERNAL_SERVICE_DETAILS REST_IP PMTM_EXTERNAL_ACC_SYSTEM RS_URL pour OBVAM PMTM_ECA_SYSTEM RS_URL pour OBVAM STTM_HOST_DSN Contient des détails de schéma utilisés uniquement pour REPORTS et pouvant être ignorés -
Si vous modifiez le nom d'hôte de votre configuration, vous devez également mettre à jour le nom d'hôte du conteneur pour les tables suivantes :
TableName CSTM_EXTERNAL_SERVER_DETAILS PMTM_EXCHANGE_RATE_SYSTEM PMTM_FILE_ENV_SYSTEM PMTM_QUEUE_PROFILE PMTM_SANCTION_SYSTEM PROPRIÉTÉS IFTM_TF_EXT_SERVICE_DETAILS GETH_BLOCK_EXT_SYS_DETAIL GETM_BLOCK_EXT_SYS_DETAIL CSTB_NGUI_REGISTRY IFTM_TF_EXT_PAYSYS_DETAIL IFTM_TR_EXT_SERVICE_DETAILS OLTM_INTEGRATION_DETAILS IFTM_TR_EXT_PAYSYS_DETAIL IFTM_INTEGRATION_DETAILS IFTM_TF_EXT_SERVICE_DETAILS
Tâche 6 : suppression du déploiement FLEXCUBE
-
Pour supprimer le déploiement, exécutez cette commande sur votre terminal :
kubectl delete -f integrated145.yaml
Liens connexes
Remerciements
- Auteurs - Cristiano Hoshikawa (ingénieur solutions LAD A-Team), Eduardo Farah (conseil principal en vente et architecte bancaire)
Ressources de formation supplémentaires
Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à davantage de contenu de formation gratuit sur le canal Oracle Learning YouTube. En outre, accédez à education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour consulter la documentation produit, consultez Oracle Help Center.
Deploy Oracle FLEXCUBE on OKE
F77599-01
February 2023
Copyright © 2023, Oracle and/or its affiliates.