Quel plugin dois-je utiliser pour démarrer avec Jenkins pour gérer les composants mainframe au format PDS?

13

Supposons que quelqu'un connaissant les DevOps et les mainframes, mais nouveau pour Jenkins , souhaite commencer avec Jenkins, par exemple pour:

Après qu'une sorte (minimale) d' installation et de configuration de Jenkins soit terminée, la vraie question devient " Which of the typical Jenkins plugins, if any, would be needed?". D'après les différents plugins Jenkins qui semblent avoir du sens dans mon cas, il semble que ce soient des candidats possibles (les citations proviennent des pages liées):

  • IBM zOS Connector .

    ... fournit ses fonctions via une connexion FTP à IBM z / OS LPAR. Vous pouvez configurer votre projet SCLM sur z / OS, puis vérifier les modifications via Jenkins.

    Les fonctionnalités incluent:

    • Soumission du travail JCL utilisateur (avec journal optionnel collecté à la fin).
    • Introduction de SCLM en tant que SCM pour vos projets permettant de récupérer les modifications SCLM.
    • La possibilité de créer des projets SCLM actuellement ne peut être effectuée que via l'action de génération «Soumettre un travail zOS».
  • Téléchargement du code source Compuware pour Endevor, PDS et ISPW Plugin .

    ... permet aux utilisateurs de Jenkins de télécharger les membres Endevor, PDS ou ISPW du mainframe vers le PC. La source peut alors être consultée sur le PC, par exemple, pour l'analyse et le rapport SonarQube.

Étant donné que le 1er plugin concerne SCLM (qui concerne uniquement les PDS) et que le 2e plugin indique explicitement la prise en charge des PDS (en son nom), j'espère que les deux sont des candidats possibles.

Donc, en supposant que ma liste est complète (n'est-ce pas?), Quels sont les avantages et les inconvénients de l'un ou l'autre qui devraient m'aider à décider lequel convient le mieux à mon cas?

Ps: quelque chose comme un paquet "Jenkins Kickstart" ne semble pas exister (du moins je ne l'ai pas encore trouvé).

Pierre.Vriens
la source
1
En cherchant, beaucoup de recherches, et peut-être en demandant ici quand il y a un piège sur un sujet spécifique. Bien que la création d'une ressource de Q / A soit excellente, c'est vraiment trop large.
Tensibai
1
Il serait plus facile de répondre à la question si vous souhaitez décrire un problème que vous souhaitez résoudre avec Jenkins. Essayer de résoudre un problème spécifique est également un bon début pour apprendre un nouvel outil!
Michael Le Barbier Grünewald
1
@ Pierre.Vriens semble beaucoup mieux maintenant; merci pour l'édition. J'ai voté pour la réouverture.
Aurora0001
1
Après réflexion, n'essayez pas de généraliser trop votre question, de décrire le problème auquel vous êtes confronté et où vous êtes face à un mur, je pense que c'est la meilleure façon.
Tensibai
1
@Tensibai merci pour tous les commentaires (tentatives d'aide) ... Oui "un peu" dur, mais ne vous en faites pas trop (je peux gérer ça). En dehors de cela: attendez une nouvelle tentative pour améliorer (affiner) ma question.
Pierre.Vriens

Réponses:

2

J'ai configuré jenkins pour gérer les tables mainframe. Utilisant essentiellement un plugin de script groovy. J'ai écrit du code qui gère le mouvement des fichiers sur le mainframe et les appelle via le plugin. Exploiter essentiellement l'API mainframes pour se connecter et les commandes du vsc pour déplacer les fichiers.

Eddie
la source
2

L'esclave Jenkins s'exécute dans les services système unix de z / OS et peut exécuter n'importe quel script ou fonction à partir de là. Nous utilisons le plugin Git pour extraire le code source sur z / OS, puis vous avez différents choix sur la façon de travailler avec. Vous pouvez utiliser IBM Dependency Based Build qui est porté par Groovy vers z / OS plus certaines extensions pour travailler spécifiquement avec des fonctions natives z / OS telles que la copie vers PDS (ou PDSE) ou la copie vers zFS, ainsi que la possibilité d'exécuter MVS , TSO, ISPF et soumettez JCL.

De plus, avec la nouvelle annonce Zowe Zowe.org pour un nouveau projet open source sur z / OS, vous avez également accès à un certain nombre d'API basées sur REST qui travaillent avec des fichiers et effectuent d'autres tâches sur z / OS, comme appeler zOSMF.

Rosalind Radcliffe
la source
J'ai l'intention de le faire: stocker tous les fichiers mainframe dans GitHub et installer l'esclave Jenkins dans USS dans z / OS. Lors d'une demande de validation ou d'extraction, le webhook dans GitHub lancera un travail Jenkins qui téléchargera le fichier depuis GitHub et le soumettra à z / OS pour la compilation et le lien (nous avons des scripts perl pour le faire maintenant). Qu'est-ce que tu penses?
Jirong Hu
1

En général, il existe deux façons d'automatiser les actions de Jenkins:

  1. Installez un plugin pour Jenkins et utilisez-le par étapes pour automatiser les tâches.
  2. Écrivez un script (shell, python, autre) et appelez-le depuis une étape pour automatiser les tâches.

Les deux approches présentent des inconvénients / avantages. Alors que # 1 - l'approche plugin - vous offre des fonctionnalités prêtes à l'emploi et ne nécessite pas de script, il peut être rigide et limité dans ses capacités. # 2 - l'approche de script - vous oblige à écrire des scripts, ainsi que de les maintenir, mais peut fournir beaucoup plus de flexibilité et de liberté dans l'automatisation des choses.

L'approche de script utilise généralement beaucoup de CLI - aws cli, docker cli, etc.

Si # 2 - l'approche de script - est viable et que vous êtes à l'aise avec l'écriture de scripts shell ou d'autres scripts comme python pour interagir avec le mainframe, alors Brightside peut vous aider.

Voici un exemple d'utilisation de Brightside (CLI gratuite) pour interagir avec PDS sur z / OS à partir d'un script shell:

    #!/bin/sh
    echo 'bright files create classic "USER.PUBLIC.SAMPLE.PDS"'
    bright files create classic "USER.PUBLIC.SAMPLE.PDS"
    echo ''

    echo 'bright files download all-members "USER.LIB.SAMP" -d MyPDS'
    bright files download all-members "USER.LIB.SAMP" -d MyPDS
    echo ''

    echo 'bright files upload dir-to-pds MyPDS "USER.PUBLIC.SAMPLE.PDS"'
    bright files upload dir-to-pds MyPDS "USER.PUBLIC.SAMPLE.PDS"
    echo ''

    echo 'bright files list all-members "USER.PUBLIC.SAMPLE.PDS"'
    bright files list all-members "USER.PUBLIC.SAMPLE.PDS"
    echo ''

    echo 'bright files delete data-set "USER.PUBLIC.SAMPLE.PDS(ALLOCLIB)" -f'
    bright files delete data-set "USER.PUBLIC.SAMPLE.PDS(ALLOCLIB)" -f
    echo ''

    echo 'bright files list all-members "USER.PUBLIC.SAMPLE.PDS"'
    bright files list all-members "USER.PUBLIC.SAMPLE.PDS"
    echo ''

    echo 'bright files delete data-set "USER.PUBLIC.SAMPLE.PDS" -f'
    bright files delete data-set "USER.PUBLIC.SAMPLE.PDS" -f
    echo ''

Voici la sortie de ce script:

entrez la description de l'image ici entrez la description de l'image ici

Assez facile pour appeler ces scripts à partir de Jenkins et analyser la sortie dans n'importe quel but.

Divulgation complète: je travaille pour CA qui a créé Brightside mais nous utilisons cette CLI en interne dans le but exact d'intégrer nos tests d'application mainframe avec Jenkins.

Sujay Solomon
la source
L'avez-vous utilisé?
poussins
Je ne vois pas comment cela peut répondre à la question même à distance, veuillez modifier votre réponse pour expliquer comment cela peut répondre à la question ou je le supprimerai dans 24h
Tensibai
Bien sûr, je vais ajouter plus de détails à mon message.
Sujay Solomon
Encore une chose, veuillez divulguer votre affiliation à l'entreprise que vous promouvez. Voir le paragraphe d'auto-promotion sur notre page comportement . Cela ressemble à une tentative honnête de répondre, je pense que cela ne sert à rien d'utiliser un plug-in intégré à Jenkins pour une utilisation dans le pipeline, mais au moins cela ne ressemble plus à la `` promotion de produit uniquement ''.
Tensibai
TL; DR: répondre avec un produit que vous possédez / créez est correct lorsque vous divulguez votre lien avec le produit et expliquez comment cela peut résoudre le problème.
Tensibai
1

@ Pierre.Vriens, par rapport à votre "enquête sur la faisabilité de la gestion des données stockées dans des fichiers personnels (PDS, c'est-à-dire des ensembles de données partitionnés) sur le mainframe", vous pouvez utiliser zOS Management Facility (zOSMF) fourni avec le z / OS système d'exploitation pour accéder aux API pour cela. Dans la réponse de Sujay, il suggère d'utiliser Brightside et cet outil puise dans les API zOSMF pour simplifier cette tâche. Donc, si vous souhaitez lier Jenkins au mainframe pour gérer les ensembles de données partitionnés (PDS) et les ensembles de données (PS), vous pouvez utiliser ces API zOSMF ou vous pouvez utiliser Brightside .

Dans un esprit de divulgation, je travaille en tant que concepteur UX pour CA Technologies qui construit Brightside.

John laPlante
la source