Gestion de Engineering Lifecycle Management sur le nuage hybride à l'aide de l'automatisation

Afin de réduire les efforts que les équipes consacrent à la création et à la maintenance d'une instance Engineering Lifecycle Management instance, Engineering Lifecycle Management on Hybrid Cloud a construit une automatisation basée sur un shell qui permet d'effectuer diverses opérations avec un minimum d'efforts.

Disposition du référentiel

  1. Un modèle YAML pour commencer à déployer des ressources sur les services Red Hat® OpenShift® Container Platform et Kubernetes.
  2. Un outil piloté par menu pour effectuer des opérations sélectionnées sur l'espace de noms du cluster Kubernetes.
  3. CLI, moyen non interactif d'effectuer des opérations sur l'espace de noms du cluster Kubernetes.

Arbre des répertoires du référentiel

├── README.md
├── code                            |- Automation code
├── logs                            |- logging
│   ├── EHCLogs
│   └── scriptLogs
├── template                        |- Placeholder for Kubernetes resources.
│   ├── K8S                         |- Kubernetes(K8S) resources templates.
│   │   ├── elm
│   │   │   ├── elmInstance
│   │   │   └── elmOperation
│   │   └── pre-reqs
│   ├── OCP                         |- Red Hat OpenShift Container Platform (OCP) specific Kubernetes resources templates.
│   │   ├── elm
│   │   │   ├── elmInstance
│   │   │   └── elmOperation
│   │   └── pre-reqs
│   └── samples                     |- ELM-HC supported Kubernetes resources example/sample manifests.
│       ├── K8S
│       └── OCP
├── userOutput                      |- Placeholder for generated Kubernetes resources YAMLs.
└── userProperties                  |- Placeholder for User's shell/bash formate variable declaration properties.

Télécharger le fichier.zip

Téléchargez le fichier zip Automation ici pour l'exécuter. Extrayez et localisez en entrant le répertoire
 unzip elmHcAutomation-v2.zip;
 cd elmHcAutomation-v2 ;
 chmod -R 755 * ;
 cd code ;

Prérequis

Les scripts d'automatisation peuvent être exécutés sur n'importe quelle plateforme. Les terminaux et outils CLI suivants doivent être installés sur la machine locale.
  1. bash
  2. kubectl

Hypothèses pour l'automatisation

Un fournisseur de classe de stockage est installé sur le cluster Kubernetes. Pour plus d'informations, consultez la section Classe de stockage. Pour vérifier plus rapidement si la classe Storage est présente, utilisez la commande suivante :
kubectl get storageclass
Se référer aux fournisseurs de classe de stockage suivants si nécessaire
  1. Rook
  2. IBM Cloud® Kubernetes Service Stockage

Exécution

L'exécution des scripts prend en charge le mode interactif (menu driven) ainsi que le mode non interactif (cli) qui permet de traiter les opérations de type création, obtention et suppression de Kubernetes. Le script est conçu de manière à vérifier les dépendances pour chaque ressource et à essayer de créer ou de diriger vers les informations correctes si elles sont absentes. Le tableau explique les informations de script que vous devez suivre, c'est-à-dire satisfaire aux conditions préalables de l'instance ELM (tableau 1), créer une instance ELM (tableau 2) et effectuer d'autres exécutions opérationnelles de l'instance ELM (tableau 3).

Tableau 1. Pré-requis
Numéro de la commande Script Description
1 catalogSource.sh Ce script effectue les opérations Kubernetes du type de ressource CatalogSource sur l'espace de noms ELM ciblé. Vous pouvez exécuter ce script pour créer, obtenir et supprimer des actions sur CatalogSource de l'opérateur ELM.
2 subscription.sh Ce script effectue les opérations Kubernetes du type de ressource Subscription sur l'espace de noms ELM ciblé. Vous pouvez exécuter ce script pour créer, obtenir et supprimer des actions sur Subscription.
3 persistentVolumeClaim.sh Ce script effectue les opérations Kubernetes du type de ressource PersistentVolume, PersistentVolumeClaim sur l'espace de noms ELM ciblé. Le script propose deux types d'options de création de volumes persistants
  1. NFS (Network File System), Volume
  2. Dispositif de stockage local tel qu'un disque, une partition ou un répertoire
Pour en savoir plus, consultez NFS Volume et Volume local. Vous pouvez exécuter ce script pour créer, obtenir et supprimer des actions sur PersistentVolume, PersistentVolumeClaim.
4 configMap.sh Ce script effectue les opérations Kubernetes du type de ressource ConfigMap sur l'espace de noms ELM ciblé. Vous pouvez exécuter ce script pour créer, obtenir et supprimer des actions sur ConfigMap.
5 secret.sh Ce script effectue les opérations Kubernetes du type de ressource Secret sur l'espace de noms ELM ciblé. Vous pouvez exécuter ce script pour effectuer des actions de création, d'obtention et de suppression sur Secret.
- allPreRequisites.sh Exécutez ce script si vous prévoyez de créer, d'obtenir ou de supprimer tous les prérequis de ELM en même temps. Ce script effectue des opérations Kubernetes de type CatalogSource, Subscription, PersistentVolume, PersistentVolumeClaim, ConfigMap, Secret sur l'espace de noms ELM ciblé.
Tableau 2. ELM Instance
Numéro de série Script Description
1 elmInstance.sh Ce script exécute les opérations de l'instance ELM telles que la création, l'obtention, la suppression, la mise à niveau et le retour en arrière sur l'espace de noms ELM ciblé. Vous pouvez exécuter ce script pour créer, obtenir, supprimer, mettre à niveau, revenir en arrière sur l'instance ELM.
Tableau 3. Administration de l'instance ELM
Numéro de série Script Description
1 elmOperations.sh Ce script exécute ELMOperation sur l'espace de noms ciblé ELM. Vous pouvez exécuter ce script pour effectuer des actions de création, d'obtention et de suppression sur ELMOperation.
2 serviceability.sh Ce script effectue les opérations Serviceability sur l'espace de noms ciblé ELM. Vous pouvez exécuter ce script pour effectuer des actions de création, d'obtention et de suppression sur Serviceability.

Outil interactif piloté par menu

Le menu EHC est divisé en deux catégories : Pre-Requisites et ELM, où
Catégorie : Pré-requis
Il comprend l'instance ELM pre-requisites , c'est-à-dire le type de ressource Kubernetes tel que CatalogSource, Subscription, PersistentVolume, PersistentVolumeClaim, ConfigMap, et Secret
Catégorie : ELM
Il permet d'interagir avec les API supportées par l'opérateur ELM telles que ELM, ELMOperation, Serviceability
Lors de l'exécution d' EHC-Menu, vous obtenez un outil piloté par un menu qui exécute des actions en fonction du choix effectué.
Note : Dans la session d'exécution, vous pouvez taper
  • B pour revenir en arrière
  • M pour Menu principal
  • Q pour Quitter

L'outil de menu propose quelques variables prédéfinies. Ici, vous pouvez annuler ce choix en les déclarant à nouveau dans le répertoire userProperties , comme indiqué dans la présentation du référentiel. La déclaration de variables sous le répertoire userProperties est toujours prioritaire.

Par exemple, la dernière valeur de la variable NAMESPACE, ELM_DEPLOYMENT_TYPE est example,Medium au lieu de la valeur par défaut null,Small déclarée dans le répertoire userProperties .

Exemple : userProperties/example.properties
NAMESPACE="example"
ELM_DEPLOYMENT_TYPE="Medium"
Note : En fonction de l'opération de sélection, toute variable non déclarée recherche la valeur. Chaque opération de type create génère un manifeste YAML qui est placé dans le répertoire userOutput comme indiqué dans la présentation du référentiel.

Outil non interactif en utilisant le mode CLI

Vous pouvez passer les arguments de niveau drapeau pour exécuter les scripts en mode CLI

Available Flag Options:

-h | --help     Help for execution
-a              User Action flag [ create, get, delete ]
-resourceDir    Directory path where all K8S resources manifest exists.
-resourceFile   File path where K8S resource manifest exists.
-y | -yes       Silent additional choice confirmation

Example:

1. <script>.sh -a get -resourceDir /example/abc/directory                          [ Perform a "get" operation for all kubernetes resources whose manifest file exists at directory path /example/abc/directory ]

2. <script>.sh -a delete -resourceFile /example/abc/directory/example.yaml -yes    [ Perform a "delete" operation with for kubernetes resource/s give in  manifest file at path /example/abc/directory/example.yaml ]

Tableau de référence des variables

Voici la liste des variables et des valeurs utilisées par l'automatisation
Nom de variable Requis Par défaut Important
1 Espace de nom Facultatif exemple K8S Espace de noms des clusters
2 NOM_DU_CATALOGUE Facultatif ibm-elm-manifests Catalogue Nom de la source
3 CANAL_CATALOGUE Facultatif release-elm7.1 Catalogue Nom du canal
4 CATALOGUE_SOURCE_IMAGE Facultatif icr.io/cpopen/ibm-elm-operator-catalog:latest Image de catalogue
5 IMAGE_PULL_SECRET_NAME Y ibm-entitlement-key Nom du secret d'extraction d'image
6 IMAGE_PULL_USER Facultatif CP Tirer l'image Utilisateur
7 IMAGE_PULL_SECRET Y - Secret de fabrication de l'image
8 IMAGE_PULL_EMAILID Y - Identifiant e-mail de l'utilisateur
9 IMAGE_PULL_REGISTRY Facultatif cp.icr.io/cp/ibm-elm Registre d'images
10 CLASSE_DE_STOCKAGE Facultatif rook-cephfs Nom de la classe de stockage de votre cluster Kubernetes, cliquez sur Hypothèses pour l'automatisation du provisionnement de la classe de stockage dans votre cluster
11 OCP_STORAGE_CLASS Facultatif rook-cephfs Nom de la classe de stockage pour l' OCP
12 ELM_SHARED_PV_HOST Facultatif - NFS Nom d'hôte pour le type de PV partagé
13 ELM_SHARED_PV_HOST_PATH Facultatif - Le chemin d'accès au répertoire de l'hôte NFS pour le type de PV partagé est donné
14 ELM_SHARED_PV_STORAGE_SIZE Facultatif 10Gi Taille du stockage partagé en Go
15 ELM_BACKUP_PV_HOST Facultatif - NFS Nom d'hôte pour le PV de sauvegarde
16 ELM_BACKUP_PV_HOST_PATH Facultatif - NFS Chemin d'accès au répertoire de l'hôte pour le PV de sauvegarde
17 ELM_BACKUP_PV_STORAGE_SIZE Facultatif 10Gi Taille de la mémoire de sauvegarde en Go
18 AUTH_ROLE_CONFIG Y - Auth Role Config Veuillez déclarer la valeur de la variable entre guillemets simples, par exemple AUTH_ROLE_CONFIG='<value>'. En savoir plus sur la configuration d' LDAP s sécurisées avec Liberty et WebSphere pour les applications Engineering Lifecycle Management
19 LDAP_CONFIG Y - LDAP config Veuillez déclarer la valeur de la variable entre guillemets simples, c'est-à-dire LDAP_CONFIG='<value>'. En savoir plus sur la configuration d' LDAP s sécurisées avec Liberty et WebSphere pour les applications Engineering Lifecycle Management
20 SCIM_GROUP_MAPPING Y Y Cartographie SCIM. En savoir plus sur la configuration d' LDAP s sécurisées avec Liberty et WebSphere pour les applications Engineering Lifecycle Management
21 <APP_NAME>mOT DE PASSE _DB_JDBC_PASSWORD Y - Le mot de passe de chaque base de données d'applications. En savoir plus sur l' Engineering Lifecycle Management d'instance et le secret d'instance
22 DW_JDBC_PASSWORD Y - Données WareHouse Mot de passe DB. Pour en savoir plus sur le secret d'instance d' Engineering Lifecycle Management
23 SCIM_PROVIDER_USERID Y - Identifiant du fournisseur SCIM. En savoir plus sur l' Engineering Lifecycle Management d'instance et le secret d'instance
24 SCIM_PROVIDER_PASSWORD Y - Mot de passe de l'identifiant du fournisseur SCIM. Pour en savoir plus sur le secret d'instance d' Engineering Lifecycle Management
25 SSL_KEYSTORE_PW Y - SSL Mot de passe du keystore. Pour en savoir plus sur le secret d'instance d' Engineering Lifecycle Management
26 LDAP_PASSWORD Y - Mot de passe de connexion fourni par l' LDAP. Pour en savoir plus sur le secret d'instance d' Engineering Lifecycle Management
27 OIDC_PROVIDER_USERID Y - Identifiant du fournisseur OIDC. Pour en savoir plus sur le secret d'instance d' Engineering Lifecycle Management
28 MOT DE PASSE DU FOURNISSEUR OIDC Y - Mot de passe de l'identifiant du fournisseur de l'OIDC. Pour en savoir plus sur le secret d'instance d' Engineering Lifecycle Management
29 ELM_TYPE_DEPLOIEMENT Y Petite ELM Type de déploiement. Liste des secrets d'instance pris en charge par l' Engineering Lifecycle Management
30 ELM_TYPE_AUTH Facultatif LDAP Types d'authentification pris en charge ( LDAP, SAML, OIDC)
31 ELM_HOST_NAME Y - Nom d'hôte de l'application qui sera accessible
32 ELM_DB_HOST_NAME Y - Nom de l'hôte où la base de données est exécutée
33 ELM_DB_USER_NAME Y - Nom d'utilisateur de la base de données
34 ELM_DB_PORT Y - Port de l'instance de la base de données
35 ELM_DB_TYPE Facultatif Db2® Type de BD pris en charge ( DB2®, Oracle )
36 ELM_UTILISER_CERTIFICAT_AUTOSIGNÉ Facultatif true Pris en charge ( true, false )
37 NOM_DE_L'ELM_INSTANCE Facultatif example-elm Nom de l'instance ELM
38 CLASSE_D'ENTRÉE Y - Kubernetes Classe Cluster Ingress, pour plus de détails sur Ingress
39 FS_GROUP_ID Facultatif 5000 L'ID du groupe du système de fichiers qui est utilisé pour contrôler l'accès au stockage en bloc. Les caractères autorisés sont des valeurs numériques. Pour plus d'informations, consultez la section Configuration des exigences de stockage pour l'instance d' Engineering Lifecycle Management.
40 SUPPLEMENTAL_GROUPS_ID Facultatif 5000 Les identifiants de groupe utilisés pour contrôler l'accès au stockage partagé. Pour plus d'informations, consultez la section Configuration des exigences de stockage pour l'instance d' Engineering Lifecycle Management.
41 ELM_VERSION Facultatif Le plus récent Version actuelle de ELM disponible dans le canal du catalogue
42 ELM_IMAGEREPO Facultatif cp.icr.io/cp/ibm-elm ELM Reproduction d'images
43 ENI_CONTEXT_ROOT Facultatif relm ENI contexte d'application racine
44 LDX_CONTEXT_ROOT Facultatif ldx Racine du contexte de l'application LDX
45 LQE_CONTEXTE_ROOT Facultatif lqe Racine du contexte de l'application LQE
46 DCC_CONTEXT_ROOT Facultatif dcc Racine du contexte de l'application DCC
47 JTS_CONTEXT_ROOT Facultatif jts JTS contexte d'application racine
48 CCM_CONTEXT_ROO Facultatif ccm Racine du contexte de l'application CCM
49 RM_CONTEXT_ROOT Facultatif rm Racine du contexte de l'application RM
50 GC_CONTEXT_ROOT Facultatif gc Racine du contexte de l'application GC
51 QM_CONTEXT_ROOT Facultatif qm Racine du contexte de l'application QM
52 RB_CONTEXTE_ROOT Facultatif rs Racine du contexte de l'application RB
53 CCM_INSTALL_CCM_WITH_RMM Y Booléen (True ou False) Installer l' RMM ation avec CCM
54 ENI_APP_NAME Facultatif relm ENI contexte d'application racine
55 LDX_APP_NAME Facultatif ldx Nom de l'application LDX
56 LQE_APP_NAME Facultatif lqe Nom de l'application LQE
57 DCC_APP_NAME Facultatif dcc Nom de l'application DCC
58 JTS_APP_NAME Facultatif jts JTS nom de l'application
59 CCM_APP_NAME Facultatif ccm Nom de l'application CCM
60 RM_APP_NAME Facultatif rm Nom de l'application RM
61 GC_APP_NAME Facultatif gc Nom de l'application GC
62 QM_APP_NAME Facultatif qm Nom de l'application QM
63 RB_APP_NAME Facultatif rs Nom de l'application RB
64 ENI_DB_NAME Facultatif ENI ENI nom de la base de données de l'application
65 LDX_DB_NAME Facultatif LDX Nom de la base de données de l'application LDX
66 LQE_DB_NAME Facultatif LQE Nom de la base de données de l'application LQE
67 DCC_DB_NAME Facultatif DCC Nom de la base de données de l'application DCC
68 JTS_DB_NAME Facultatif JTS JTS nom de la base de données de l'application
69 CCM_DB_NAME Facultatif CCM Nom de la base de données des demandes CCM
70 RM_DB_NAME Facultatif RM Nom de la base de données de l'application RM
71 GC_DB_NAME Facultatif RP Nom de la base de données des demandes de GC
72 QM_DB_NAME Facultatif QM Nom de la base de données de l'application QM

limitation connue

Actuellement, Automation ne crée pas le type Kubernetes Secret pour la paire de données de la table de référence suivante key:value . Mais, sur la base de la configuration des fournisseurs d'authentification, le prérequis vérifie si la/les ressource(s) requise(s) existe(nt) ou non et fournit des informations de référence.
No Sr K8S Type/Nom Principales Type de valeur
1 Secret/certificats-tls-elm-secret LDAP_SSL_CERTIFICATE Sécurisez les Base-64 X.509 format données du certificat SSL du serveur LDAP. Pour plus d'informations sur la création d'un secret à partir des données de certificat de l'adresse LDAP SSL
2 Secret/certificats-tls-elm-secret certificat oidc-ssl SSL s du Base-64 X.509 format certificat du serveur OIDC. Création d'un secret à partir des données de certificat d' SAML SSL
3 Secret/elm-saml-idp-metadata idpMetadata.xml SAML Données IDP xml format du serveur. Création d'un secret à partir des données du certificat OIDC SSL