red*_*888 9 jenkins jenkins-plugins
我只能上传现有的詹金斯机密文件,而不能下载现有的机密文件。
如何下载已上传的现有机密文件以确认其内容?
如果您可以访问Jenkins实例的脚本控制台(例如,通过在浏览器中访问https://jenkins.example.com/script),则可以运行以下脚本:
import com.cloudbees.plugins.credentials.*;
import com.cloudbees.plugins.credentials.domains.Domain;
import org.jenkinsci.plugins.plaincredentials.impl.FileCredentialsImpl;
println "Jenkins credentials config file location=" + SystemCredentialsProvider.getConfigFile();
println ""
def fileName = "my-secret-file.txt"
SystemCredentialsProvider.getInstance().getCredentials().stream().
filter { cred -> cred instanceof FileCredentialsImpl }.
map { fileCred -> (FileCredentialsImpl) fileCred }.
filter { fileCred -> fileName.equals( fileCred.getFileName() ) }.
forEach { fileCred ->
String s = new String( fileCred.getSecretBytes().getPlainData() )
println "XXXXXX BEGIN a secret file with fileName=" + fileName + " XXXXXXXXXXXX"
println s
println "XXXXXX END a secret file with fileName=" + fileName + " XXXXXXXXXXXX"
println ""
}
Run Code Online (Sandbox Code Playgroud)
更改fileName为您要打印的文件名。该脚本将打印出Jenkins凭证存储区的全局域中具有fileName文件名的文件内容。
该脚本的可修正警告:
如果您在运行 Jenkins 的机器上具有 shell 访问权限和sudo // Jenkins Unix 用户权限,则可以通过执行以下操作来检索机密文件root:
MY_SECRET_FILE_TXT。在命令文本区域中,添加以下 shell 脚本:
echo "executing user is $(whoami)"
# remove my-secret-file.txt before possibly getting an overwriting error
rm -f $WORKSPACE/my-secret-file.txt
echo "Jenkins project workspace: $WORKSPACE"
cp $MY_SECRET_FILE_TXT $WORKSPACE
Run Code Online (Sandbox Code Playgroud)下次触发该项目的构建时,秘密文件应出现在该项目的工作区中,即位置$WORKSPACE/my-secret-file.txt。例如,在我安装了软件包和守护进程的Ubuntu 14.04.5 LTSjenkins安装中,该位置是/var/lib/jenkins/workspace/$JENKINS_PROJECT_NAME/my-secret-file.txt
| 归档时间: |
|
| 查看次数: |
5843 次 |
| 最近记录: |