У меня есть сценарий Jenkinsfile, работающий в нашей распределенной среде сборки Jenkins.
У меня есть код, выполняющий аутентификацию Kerberos в Jenkinsfile. Этот код основан на двух небольших программах на Java, которые успешно прошли аутентификацию в Kerberos. Эти две программы Java работают как на моей рабочей станции Windows, так и на гостевой виртуальной машине Linux.
То есть: у меня есть пара работающих программ на Java, которые успешно выполняют аутентификацию Kerberos из Windows и из Linux, используя набор конфигурационных файлов Kerberos. Когда я перевожу код в свой Jenkinsfile, он, по-видимому, не работает на шаге 1: поиск моих тщательно сконструированных файлов krb5.conf (и login.conf).
Код Kerberos находится в правильно настроенной глобальной общей библиотеке. Я знаю, что она правильно настроена, потому что библиотека используется в другом месте моего Jenkinsfile, и я знаю, что она загрузила правильные библиотеки Kerberos из нашего репозитория, потому что я не получаю никакой ошибки компиляции или класса не найдены.
Конкретное сообщение об ошибке, которое мне не удалось выделить из десятка различных сборок, пытаясь поместить файл krb5.conf везде, где, как я думаю, Дженкинс может его искать, таково:
GSSException: Invalid name provided (Mechanism level: KrbException: Cannot locate default realm)
Да, есть более длинная трассировка стека, но если вы знаете, что происходит, это все, что вам нужно.
Я пытался использовать System.setProperty () из Jenkinsfile, чтобы указать на файл, который был зарегистрирован в проекте, создан с использованием учетных данных файла Jenkins, и с помощью шага writeFile для прямой записи строки, содержащей файл конфигурации. в рабочую область сборки. В каждом случае Дженкинс просто не находит файл krb5.conf, и я получаю ту же ошибку «Не удается найти область по умолчанию».
Проблематично поместить файл в / etc по разным причинам. Кроме того, мне действительно нужно помещать туда файлы конфигурации Kerberos, когда есть четко объясненный алгоритм их поиска, и я, кажется, следую ему?
Если вы знаете, что происходит, любая помощь будет принята с благодарностью.
NB : Я успешно прошел аутентификацию в Kerberos, используя обсуждаемые здесь файлы krb5.conf и login.conf. Они работают. Kerberos и мои конфиги, похоже, не проблема. Что бы ни делал Дженкинс или нет, похоже, это проблема.