Какой плагин мне следует использовать, чтобы начать работу с Jenkins для управления компонентами мэйнфреймов в формате PDS?

13

Предположим, кто-то, знакомый с DevOps и мэйнфреймами, но не знакомый с Jenkins , хочет начать работу с Jenkins, например:

После того, как какая-то (минимальная) установка и настройка Jenkins была завершена, реальный вопрос становится " Which of the typical Jenkins plugins, if any, would be needed?". Из различных плагинов Jenkins, которые, кажется, имеют смысл в моем случае, кажется, что это возможные кандидаты (цитаты из связанных страниц):

  • IBM zOS Connector .

    ... предоставляет свои функции через соединение FTP с LPAR IBM z / OS. Вы можете настроить свой проект SCLM в z / OS, а затем проверить наличие изменений через Jenkins.

    Особенности включают в себя:

    • Отправка пользовательского задания JCL (с дополнительным журналом, собранным по окончании).
    • Внедрение SCLM как SCM для ваших проектов, позволяющее оформить изменения SCLM.
    • Возможность создавать проекты SCLM в настоящее время может быть выполнена только с помощью действия «Отправить задание zOS».
  • Загрузка исходного кода Compuware для Endevor, PDS и плагина ISPW .

    ... позволяет пользователям Jenkins загружать членов Endevor, PDS или ISPW с мэйнфрейма на ПК. Затем можно получить доступ к источнику на ПК, например, для анализа и отчетности SonarQube.

Так как 1-й плагин предназначен для SCLM (который все о PDS), а 2-й плагин явно заявляет о поддержке PDS (в его названии), я верю, что оба являются возможными кандидатами.

Итак, если предположить, что мой короткий список завершен (не так ли?), Каковы плюсы и минусы любого из них, которые должны помочь мне решить, какой из них лучше всего подходит для моего случая?

PS: Похоже, что-то вроде пакета «Jenkins Kickstart» не существует (по крайней мере, я его пока не нашел).

Pierre.Vriens
источник
1
Поиском, много поиском и, возможно, спрашиваю здесь, когда есть ловушка на конкретную тему. Хотя создание ресурса Q / A - это здорово, оно действительно слишком широкое, как есть.
Тенсибай
1
На этот вопрос было бы легче ответить, если бы вы описали проблему, которую хотите решить с Дженкинсом. Попытка решить конкретную проблему также является хорошим началом для изучения нового инструмента!
Михаэль Ле Барбье Грюневальд
1
@ Pierre.Vriens Кажется, теперь намного лучше; спасибо за редактирование. Я проголосовал за открытие.
Aurora0001
1
После размышления, просто не пытайтесь обобщать ваш вопрос слишком подробно, опишите проблему, с которой вы столкнулись, и то, где вы стоите лицом к стене, я думаю, что это лучший способ.
Тенсибай
1
@Tensibai merci за все комментарии (попытки помочь) ... Да, "немного" резко, но не волнуйтесь об этом (я могу справиться с этим). Кроме того: держитесь за новую попытку улучшить (сузить) мой вопрос.
Pierre.Vriens

Ответы:

2

Я настроил Дженкинса для управления таблицами мэйнфреймов. В основном используется плагин Groovy скрипт. Я написал код, который обрабатывает перемещение файлов на мейнфрейме и вызывает их через плагин. По сути, используя API мэйнфреймов для подключения и команды VSC для перемещения файлов.

Эдди
источник
2

Подчиненный Jenkins работает в системных службах Unix z / OS и может запускать любой сценарий или функцию оттуда. Мы используем плагин Git для переноса исходного кода на z / OS, тогда у вас есть разные варианты работы с ним. Вы можете использовать IBM Dependency Based Build, который Groovy перенесен на z / OS, а также некоторые расширения, специально предназначенные для работы с собственными функциями z / OS, такими как копирование в PDS (или PDSE) или копирование обратно в zFS, а также возможность запуска MVS. , TSO, ISPF команды и отправить JCL.

Кроме того, с новым объявлением Zowe Zowe.org для нового проекта с открытым исходным кодом в z / OS у вас также есть доступ к ряду API-интерфейсов на основе REST, которые работают с файлами и выполняют другие задачи в z / OS, такие как вызов zOSMF.

Розалинд Рэдклифф
источник
Я планирую сделать это: сохранить все файлы мэйнфреймов в GitHub и установить Jenkins slave в USS в z / OS. Во время запроса фиксации или извлечения веб-крючок в GitHub запускает задание Jenkins, которое загружает файл из GitHub и отправляет его в z / OS для компиляции и ссылки (у нас есть сценарии perl для этого сейчас). Как вы думаете?
Jirong Hu
1

В общем, есть два способа автоматизировать действия от Jenkins:

  1. Установите плагин для Jenkins и поэтапно используйте его для автоматизации задач.
  2. Напишите скрипт (shell, python, other) и вызовите его с шага для автоматизации задач.

У обоих подходов есть недостатки / преимущества. В то время как # 1 - плагинный подход - предоставляет вам готовые функциональные возможности и не требует от вас написания сценариев, он может быть жестким и ограниченным в своих возможностях. # 2 - подход сценариев - требует, чтобы вы писали сценарии, а также поддерживали их, но могут обеспечить гораздо большую гибкость и свободу в автоматизации вещей.

Подход сценариев обычно использует много CLI - aws cli, docker cli и т. Д.

Если # 2 - подход на основе сценариев - жизнеспособен и вам удобно писать сценарии оболочки или другие сценарии, такие как python, для взаимодействия с мэйнфреймом, то Brightside может помочь.

Вот пример использования Brightside (бесплатный CLI) для взаимодействия с PDS в z / OS из сценария оболочки:

    #!/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 ''

Вот вывод этого скрипта:

введите описание изображения здесь введите описание изображения здесь

Достаточно легко вызвать эти сценарии из Jenkins и проанализировать вывод для любой цели.

Полное раскрытие: я работаю в CA, которая создала Brightside, но мы действительно используем этот CLI для точной цели интеграции тестирования мэйнфреймов с Jenkins.

Суджай Соломон
источник
Вы использовали это?
птенцы
Я не понимаю, как это может ответить на вопрос даже отдаленно, пожалуйста, отредактируйте свой ответ, чтобы объяснить, как он может ответить на вопрос, или я удалю его в течение 24
часов
Конечно, я добавлю больше подробностей в свой пост.
Суджай Соломон
Еще одна вещь, пожалуйста, расскажите о своей принадлежности к компании, которую вы рекламируете. Смотрите абзац саморекламы на нашей странице поведения . Это звучит как честная попытка ответить, я чувствую, что упускаю смысл использовать плагин, встроенный в jenkins для конвейерного использования, но, по крайней мере, он больше не выглядит как «только продвижение продукта».
Тенсибай
TL; DR: отвечая на продукт, которым вы владеете / создаете, все в порядке, когда вы раскрываете свою ссылку на продукт и объясняете, как она может решить проблему.
Тенсибай
1

@ Pierre.Vriens, по поводу вашего вопроса об «изучении возможности управления данными, хранящимися в личных файлах (PDS, т.е. разделенных наборах данных) на мэйнфрейме», вы можете использовать zOS Management Facility (zOSMF), поставляемую с z / OS операционная система для доступа к API для этого. В ответе Суджая он предлагает использовать Brightside, и этот инструмент использует API-интерфейсы zOSMF для упрощения этой задачи. Итак, если вы хотите привязать Jenkins к мэйнфрейму для управления разделенными наборами данных (PDS) и наборами данных (PS), вы можете использовать эти API-интерфейсы zOSMF или Brightside .

В духе раскрытия я работаю в качестве дизайнера UX для CA Technologies, который создает Brightside.

Джон лаПланте
источник