Plugin mana yang harus saya gunakan untuk memulai Jenkins untuk mengelola komponen mainframe dalam format PDS?

13

Asumsikan seseorang yang akrab dengan DevOps dan mainframe, tetapi baru di Jenkins , ingin memulai dengan Jenkins, misalnya untuk:

Setelah beberapa jenis (minimal) instalasi dan konfigurasi Jenkins selesai, pertanyaan sebenarnya menjadi " Which of the typical Jenkins plugins, if any, would be needed?". Dari berbagai plugin Jenkins yang tampaknya masuk akal dalam kasus saya, tampaknya ini adalah kandidat yang mungkin (kutipan berasal dari halaman yang ditautkan):

  • Konektor IBM zOS .

    ... menyediakan fungsinya melalui koneksi FTP ke IBM z / OS LPAR. Anda dapat mengkonfigurasi proyek SCLM Anda di z / OS dan kemudian memeriksa perubahan melalui Jenkins.

    Fitur termasuk:

    • Pengajuan pekerjaan JCL pengguna (dengan log opsional dikumpulkan setelah selesai).
    • Pengenalan SCLM sebagai SCM untuk proyek Anda memungkinkan untuk checkout perubahan SCLM.
    • Kemampuan untuk membangun proyek-proyek SCLM saat ini hanya dapat dilakukan melalui tindakan membangun 'Kirim zOS Pekerjaan'.
  • Download Kode Sumber Compuware untuk Plugin Endevor, PDS, dan ISPW .

    ... memungkinkan pengguna Jenkins untuk mengunduh anggota Endevor, PDS, atau ISPW dari mainframe ke PC. Sumber kemudian dapat diakses di PC, misalnya, untuk analisis dan pelaporan SonarQube.

Karena plugin pertama adalah tentang SCLM (yang semuanya tentang PDSes), dan plugin ke-2 secara eksplisit menyatakan dukungan untuk PDSes (dalam namanya), saya percaya keduanya adalah kandidat yang memungkinkan.

Jadi dengan anggapan daftar pendek saya sudah lengkap (apakah itu?), Apa pro dan kontra dari salah satu yang akan membantu saya memutuskan mana yang terbaik untuk kasus saya?

P: Sesuatu seperti paket "Jenkins Kickstart" tampaknya tidak ada (setidaknya saya belum menemukannya).

Pierre.Vriens
sumber
1
Dengan mencari, banyak mencari, dan mungkin bertanya di sini kapan ada jebakan pada subjek tertentu. Meskipun membangun sumber daya dari Q / A itu bagus, itu benar-benar terlalu luas.
Tensibai
1
Pertanyaannya akan lebih mudah dijawab jika Anda ingin menguraikan masalah yang ingin Anda selesaikan dengan Jenkins. Mencoba memecahkan masalah tertentu juga merupakan awal yang baik untuk mempelajari alat baru!
Michael Le Barbier Grünewald
1
@ Pierre.Vriens Sepertinya jauh lebih baik sekarang; terima kasih sudah mengedit. Saya telah memilih untuk membuka kembali.
Aurora0001
1
Setelah refleksi, jangan mencoba untuk menggeneralisasi terlalu banyak pertanyaan Anda, jelaskan masalah yang Anda hadapi dan di mana Anda menghadap tembok, saya pikir itu cara terbaik.
Tensibai
1
@Tensibai merci untuk semua komentar (upaya untuk membantu) ... Ya "sedikit" keras, tapi jangan terlalu khawatir tentang itu (saya bisa mengatasinya). Selain itu: bertahan untuk upaya baru untuk meningkatkan (mempersempit) pertanyaan saya.
Pierre.Vriens

Jawaban:

2

Saya mengatur jenkins untuk mengelola tabel mainframe. Pada dasarnya memanfaatkan plugin skrip groovy. Saya menulis kode yang menangani perpindahan file pada mainframe dan memanggilnya melalui plugin. Pada dasarnya memanfaatkan API mainframe untuk terhubung dan perintah vsc untuk memindahkan file.

Eddie
sumber
2

Budak Jenkins berjalan dalam layanan sistem unix dari z / OS dan dapat menjalankan skrip atau fungsi apa pun dari sana. Kami menggunakan plugin Git untuk menarik kode sumber ke z / OS maka Anda memiliki pilihan berbeda tentang cara bekerja dengannya. Anda dapat menggunakan IBM Dependency Based Build yang porting Groovy ke z / OS plus beberapa ekstensi untuk secara khusus bekerja dengan fungsi z / OS asli seperti menyalin ke PDS (atau PDSE) atau menyalin kembali ke zFS, serta kemampuan untuk menjalankan MVS , TSO, ISPF memerintahkan dan mengirimkan JCL.

Juga dengan pengumuman Zowe baru Zowe.org untuk proyek open source baru di z / OS Anda juga memiliki akses ke sejumlah API berbasis REST bekerja dengan file dan melakukan tugas-tugas lain pada z / OS seperti memanggil zOSMF.

Rosalind Radcliffe
sumber
Saya berencana untuk melakukan ini: simpan semua file mainframe di GitHub, dan instal slave Jenkins di USS dalam z / OS. Selama permintaan komit atau tarik, webhook di GitHub akan memulai pekerjaan Jenkins yang akan mengunduh file dari GitHub dan mengirimkan ke z / OS untuk kompilasi dan tautan (kami memiliki skrip perl untuk melakukan ini sekarang). Bagaimana menurut anda?
Jirong Hu
1

Secara umum, ada dua cara untuk mengotomatisasi tindakan dari Jenkins:

  1. Instal sebuah plugin untuk Jenkins dan gunakan dalam langkah-langkah untuk mengotomatisasi tugas.
  2. Tulis skrip (shell, python, lainnya) dan panggil dari langkah untuk mengotomatiskan tugas.

Ada kelemahan / manfaat dari kedua pendekatan tersebut. Meskipun # 1 - pendekatan plugin - memberi Anda fungsi di luar kotak dan tidak mengharuskan Anda menulis skrip, mungkin saja sifatnya kaku dan terbatas. # 2 - pendekatan skrip - mengharuskan Anda untuk menulis skrip, serta memeliharanya, tetapi dapat memberikan lebih banyak fleksibilitas dan kebebasan dalam mengotomatisasi hal-hal.

Pendekatan skrip umumnya menggunakan banyak CLI - aws cli, docker cli, dll.

Jika # 2 - pendekatan skrip - layak dan Anda merasa nyaman dengan menulis skrip shell atau skrip lain seperti python untuk berinteraksi dengan mainframe, maka Brightside dapat membantu.

Berikut adalah contoh penggunaan Brightside (CLI gratis) untuk berinteraksi dengan PDS pada z / OS dari skrip 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 ''

Inilah output dari skrip itu:

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Cukup mudah untuk memanggil skrip ini dari Jenkins dan mengurai output untuk tujuan apa pun.

Pengungkapan penuh: Saya bekerja untuk CA yang menciptakan Brightside tetapi kami menggunakan CLI ini secara internal untuk tujuan yang tepat mengintegrasikan pengujian aplikasi mainframe kami dengan Jenkins.

Sujay Solomon
sumber
Sudahkah Anda menggunakannya?
anak ayam
Saya gagal melihat bagaimana ini dapat menjawab pertanyaan bahkan dari jarak jauh, harap edit jawaban Anda untuk menjelaskan bagaimana ia dapat menjawab pertanyaan atau saya akan menghapusnya dalam 24 jam
Tensibai
Tentu, saya akan menambahkan lebih detail ke posting saya.
Sujay Solomon
Satu hal lagi, mohon ungkapkan afiliasi Anda dengan perusahaan yang Anda promosikan. Lihat paragraf promosi diri di halaman perilaku kami . Ini kedengarannya seperti upaya yang jujur ​​untuk menjawab, saya merasa itu merindukan menggunakan plugin yang terintegrasi dalam jenkins untuk penggunaan pipa, tetapi setidaknya itu tidak terlihat seperti 'promosi produk saja' lagi.
Tensibai
TL; DR: menjawab dengan produk yang Anda miliki / ciptakan tidak masalah ketika Anda mengungkapkan tautan Anda dengan produk tersebut dan menjelaskan bagaimana hal itu dapat menyelesaikan masalah.
Tensibai
1

@ Pierre.Vriens, tanyakan pada Anda tentang “selidiki kelayakan mengelola data yang disimpan dalam file pribadi (PDSes, yaitu kumpulan data yang dipartisi) pada mainframe.”, Anda dapat menggunakan zOS Management Facility (zOSMF) yang dilengkapi dengan z / OS sistem operasi untuk mengakses API untuk itu. Dalam balasan Sujay, ia menyarankan menggunakan Brightside dan alat itu memanfaatkan API zOSMF untuk menyederhanakan tugas itu. Jadi jika Anda ingin mengikat Jenkins ke Mainframe untuk mengelola Set Data Partisi (PDS) dan Set Data (PS), Anda dapat menggunakan API zOSMF ini atau Anda bisa menggunakan Brightside .

Dalam semangat pengungkapan, saya bekerja sebagai Desainer UX untuk CA Technologies yang membangun Brightside.

John laPlante
sumber