Qual plugin devo usar para começar a usar o Jenkins para gerenciar componentes de mainframe no formato PDS?


13

Suponha que alguém familiarizado com DevOps e mainframes, mas que seja novo no Jenkins , queira começar com o Jenkins, por exemplo:

Após a conclusão de algum tipo (mínimo) de instalação e configuração do Jenkins , a questão real se torna " Which of the typical Jenkins plugins, if any, would be needed?". Dos vários plugins Jenkins que parecem fazer sentido no meu caso, parece que esses são possíveis candidatos (as citações são das páginas vinculadas):

  • IBM zOS Connector .

    ... fornece suas funções via conexão FTP ao IBM z / OS LPAR. É possível configurar seu projeto SCLM no z / OS e, em seguida, verificar as alterações via Jenkins.

    Características incluem:

    • Envio da tarefa JCL do usuário (com o log opcional coletado após a conclusão).
    • Introdução do SCLM como SCM para seus projetos, permitindo fazer check-out das alterações do SCLM.
    • A capacidade de construir projetos SCLM atualmente pode ser executada apenas por meio da ação de construção 'Enviar tarefa do zOS'.
  • Download do código-fonte da Compuware para os plug-ins Endevor, PDS e ISPW .

    ... permite que os usuários do Jenkins baixem membros do Endevor, PDS ou ISPW do mainframe para o PC. A fonte pode ser acessada no PC, por exemplo, para análises e relatórios do SonarQube.

Como o primeiro plug-in é sobre o SCLM (que é tudo sobre PDSes) e o segundo plug-in explicitamente declara suporte a PDSes (em seu nome), confio que ambos sejam possíveis candidatos.

Então, supondo que minha lista final esteja completa (não é?), Quais são os prós e os contras de qualquer um que me ajudem a decidir qual é o melhor para o meu caso?

Ps: Algo como um pacote "Jenkins Kickstart" parece não existir (pelo menos ainda não o encontrei).


1
Pesquisando, pesquisando bastante, e talvez perguntando aqui quando há uma armadilha em um assunto específico. Embora a construção de um recurso de Q / A seja excelente, ela é realmente muito ampla.
Tensibai

1
A pergunta seria mais fácil de responder se você descrevesse um problema que deseja resolver com o Jenkins. Tentar resolver um problema específico também é um bom começo para aprender uma nova ferramenta!
Michael Le Barbier Grünewald

1
@ Pierre.Vriens Parece muito melhor agora; obrigado pela edição. Eu votei para reabrir.
Aurora0001

1
Após a reflexão, não tente generalizar demais sua pergunta, descreva o problema que está enfrentando e onde está enfrentando uma parede, acho que é o melhor caminho.
Tensibai 03/03

1
@ Tensibai merci por todos os comentários (tentativas de ajudar) ... Sim "um pouco" duro, mas não se preocupe muito com isso (eu posso lidar com isso). Além disso: aguarde uma nova tentativa de melhorar (refinar) minha pergunta.
Pierre.Vriens

Respostas:


2

Eu configurei o jenkins para gerenciar tabelas de mainframe. Utilizando essencialmente o plug-in de script groovy. Eu escrevi um código que lida com o movimento de arquivos no mainframe e os chamo pelo plug-in. Aproveitando essencialmente a API de mainframes para conectar-se e os comandos do vsc para mover os arquivos.


2

O escravo Jenkins é executado nos serviços de sistema unix do z / OS e pode executar qualquer script ou função a partir daí. Usamos o plug-in Git para extrair o código-fonte para o z / OS, e você tem diferentes opções de como trabalhar com ele. É possível usar o IBM Dependency Based Build, que é portado pelo Groovy para z / OS, além de algumas extensões para trabalhar especificamente com funções nativas do z / OS, como copiar para PDS (ou PDSE) ou copiar de volta para zFS, além da capacidade de executar o MVS , TSO, ISPF e envia JCL.

Além disso, com o novo anúncio da Zowe, Zowe.org, para um novo projeto de código aberto no z / OS, você também tem acesso a várias APIs baseadas em REST que trabalham com arquivos e executam outras tarefas no z / OS, como chamar o zOSMF.


Eu pretendo fazer isso: armazene todos os arquivos de mainframe no GitHub e instale o Jenkins slave no USS no z / OS. Durante uma solicitação de confirmação ou recebimento, o webhook no GitHub inicia uma tarefa do Jenkins que baixa o arquivo do GitHub e envia ao z / OS para compilação e link (temos scripts perl para fazer isso agora). O que você acha?
Jirong Hu

1

Em geral, existem duas maneiras de automatizar ações do Jenkins:

  1. Instale um plug-in para o Jenkins e use-o nas etapas para automatizar tarefas.
  2. Escreva um script (shell, python, outro) e chame-o de uma etapa para automatizar tarefas.

Existem desvantagens / benefícios para ambas as abordagens. Embora o número 1 - a abordagem do plug-in - ofereça funcionalidade imediata e não exija o script, ele pode ser rígido e limitado em suas habilidades. # 2 - a abordagem de script - requer que você escreva scripts, bem como os mantenha, mas pode fornecer muito mais flexibilidade e liberdade na automação das coisas.

A abordagem de script geralmente usa muitas CLIs - aws cli, docker cli, etc.

Se o item 2 - a abordagem de script - for viável e você se sentir à vontade para escrever scripts shell ou outros scripts como python para interagir com o mainframe, o Brightside pode ajudar.

Aqui está um exemplo do uso do Brightside (CLI gratuito) para interagir com o PDS no z / OS a partir de um script de 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 ''

Aqui está a saída desse script:

insira a descrição da imagem aqui insira a descrição da imagem aqui

Fácil o suficiente para chamar esses scripts do Jenkins e analisar a saída para qualquer finalidade.

Divulgação completa: Trabalho para a CA que criou o Brightside, mas usamos essa CLI internamente com o objetivo exato de integrar nossos testes de aplicativos de mainframe com Jenkins.


Você já usou?
chicks

Não vejo como isso pode responder a pergunta, mesmo que remotamente, por favor edite sua resposta para explicar como ele pode responder à pergunta ou eu vou apagar em 24h
Tensibai

Claro, vou adicionar mais detalhes ao meu post.
Sujay Solomon

Mais uma coisa, divulgue sua afiliação com a empresa que você está promovendo. Veja o parágrafo de autopromoção em nossa página de comportamento . Isso soa como uma tentativa honesta de responder, sinto que não é necessário usar um plug-in integrado ao jenkins para uso em pipeline, mas pelo menos não parece mais 'apenas promoção do produto'.
Tensibai

TL; DR: responder com um produto que você possui / cria é aceitável quando você divulga seu link com o produto e explica como ele pode resolver o problema.
Tensibai

1

@ Pierre.Vriens, escreva sua pergunta sobre “investigar a viabilidade de gerenciar dados armazenados em arquivos pessoais (PDSes, isto é, conjuntos de dados particionados) no mainframe”. sistema operacional para acessar APIs para isso. Na resposta de Sujay, ele sugere o uso do Brightside e essa ferramenta utiliza as APIs do zOSMF para simplificar essa tarefa. Portanto, se você desejar vincular Jenkins ao Mainframe para gerenciar os Conjuntos de Dados Particionados (PDS) e Conjuntos de Dados (PS), poderá usar essas APIs do zOSMF ou o Brightside .

No espírito da divulgação, trabalho como UX Designer da CA Technologies, que cria a Brightside.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.