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
- Un modèle YAML pour commencer à déployer des ressources sur les services Red Hat® OpenShift® Container Platform et Kubernetes.
- Un outil piloté par menu pour effectuer des opérations sélectionnées sur l'espace de noms du cluster Kubernetes.
- 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
unzip elmHcAutomation-v2.zip;
cd elmHcAutomation-v2 ;
chmod -R 755 * ;
cd code ;Prérequis
Hypothèses pour l'automatisation
kubectl get storageclassExé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).
| 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
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é. |
| 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. |
| 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
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 queCatalogSource,Subscription,PersistentVolume,PersistentVolumeClaim,ConfigMap, etSecret
- Catégorie : ELM
- Il permet d'interagir avec les API supportées par l'opérateur ELM telles que ELM, ELMOperation, Serviceability
B
pour revenir en arrièreM
pour Menu principalQ
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 .
userProperties/example.propertiesNAMESPACE="example"
ELM_DEPLOYMENT_TYPE="Medium"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
| N° | 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
Secretpour 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 |