Как скрыть пароли в выводе консоли Jenkins?
плагин Mask Passwords позволяет передавать в процесс сборки только предустановленные пароли, поэтому он действительно ничего не делает для безопасности задания.
Мне нужен параметр пароля, который нужно вводить каждый раз, когда задание выполняется (как параметр), и мне нужно, чтобы это было замаскировано в выходных данных консоли.
из того, что я читаю, собираюсь управлять Дженкинсом - > настроить систему и выбрать для маскировки параметры пароля должны работать, но это не для некоторых причина.. есть предложения?
6 ответов
протестировано с Дженкинсом 1.609.1 и Маска Паролей Плагин 2.7.3. Вам нужно активировать его в "Configure System", а также в задании, которое вы хотите использовать. В конфигурации задания есть точка "Маска паролей", которая должна быть активирована, а затем будет использовать глобальную конфигурацию для маски паролей.
если у вас есть Linux builder, вы можете скрыть выходные данные команды оболочки под оболочкой выполнения в текстовом поле команды просто добавьте в первую строку строку:
#!/bin/bash +x
some other commands...
это скроет только вывод команды с паролем в выводе консоли
Я использую здесь "ввести пароли для сборки как переменные среды "форма" среда сборки". Это действительно отлично работает. он будет скрывать пароли формы консоли. Более того, он также скрывает пароли ввода пользователя через "параметр пароля"
очень круто !! :)
вы можете использовать Mask Passwords плагин это очень использовать https://wiki.jenkins-ci.org/display/JENKINS/Mask + пароли + плагин
пожалуйста, найдите ниже мои выводы с решением [без использования плагина паролей маски]:
краткое описание моей работы Дженкинса: Я написал работу, которая загружает артефакты из Nexus на основе параметров, заданных во время выполнения, а затем делает SQL-соединение с базой данных и развертывает SQL-скрипты с помощью плагина Maven flyway. Моя работа занимает-среда, схема базы данных, номер версии артефакта, команда Flyway, пользователь базы данных и пароль в качестве ввода параметры.
краткая справка о проблеме: При передаче пароля как цели MAVEN (параметр) он поступал в консоль Дженкинса в виде обычного текста. Хотя я использовал "параметр пароля" для передачи пароля во время выполнения, но тогда он также приходил как обычный текст в консоли.
Я попытался использовать" секретный текст " для шифрования пароля, но затем моя работа начала терпеть неудачу, потому что зашифрованный пароль передавался целям Maven, чего не было возможность подключения к DB.
устранение:
Я "ввести пароли для сборки в качестве переменных среды" из среды сборки и определил его значение как мой "параметр пароля" (мое имя параметра пароля было db_password), который я передаю как параметр во время выполнения (например.: Я определил значение пароля для ввода как: ${db_password}).
и это работает, как ожидалось. Пароль, который я передаю, пока моя работа как [*******]
[консоли журнала: Выполнение Maven: - B-f /work/jenkins_data/workspace/S2/database-развертывание-через-flyway-EDOS/pom.XML с чистой компиляции Ддб=UAT_cms_core -DdatabaseSchema=КМВ-ядро -Dmode=инфо-DdeploymentVersion=1.2.9 -Ddb_user=ПОЛЬЗОВАТЕЛЬ_БАЗЫ_ДАННЫХ -Ddb_password=[*******] ]
вы можете использовать учетные данные. Добавьте учетные данные секретного текста и дайте и id, которые вы будете использовать следующим образом:
withCredentials([string(credentialsId: 'DOCKER_USER', variable: 'DOCKER_USER'), string(credentialsId: 'DOCKER_PASSWORD', variable: 'DOCKER_PASSWORD')]) {
sh "docker login -u $DOCKER_USER -p $DOCKER_PASSWORD"
sh "docker push '$DOCKER_USER/appName:test'"
}
DOCKER_USER
и DOCKER_PASSWORD
находятся в хранилище учетных данных Дженкинса и будут заменены на ***
в журнале