Je peux seulement télécharger un fichier secret jenkins existant, mais pas le fichier existant.
Comment télécharger un fichier secret existant que j'ai chargé pour confirmer son contenu?
Si vous pouvez accéder à la console de script de votre instance Jenkins (par exemple, en accédant à https://jenkins.example.com/script dans un navigateur), vous pouvez exécuter le script suivant:
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 ""
}
Remplacez fileName
par le nom de fichier que vous souhaitez imprimer. Ce script imprimera le contenu des fichiers du domaine global du magasin d'informations d'identification Jenkins dont le nom de fichier est fileName
.
Avertissements réparables de ce script:
Si vous disposez d'un accès Shell aux et Sudo / root
/ Utilisateurs de Jenkins Unix autorisations sur la machine exécutant Jenkins, vous pouvez récupérer le fichier secret en procédant comme suit:
MY_SECRET_FILE_TXT
.Dans la zone de texte Commande , ajoutez le script Shell suivant:
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
La prochaine fois qu'une génération est déclenchée pour ce projet, le fichier secret doit apparaître dans l'espace de travail de ce projet, c'est-à-dire à l'emplacement $WORKSPACE/my-secret-file.txt
. Par exemple, sur mon Ubuntu 14.04.5 LTS installation avec package installé et daemonjenkins
, cet emplacement est /var/lib/jenkins/workspace/$JENKINS_PROJECT_NAME/my-secret-file.txt
La réponse marquée avec la console de script est géniale.
Il existe également ce script qui répertorie TOUS les secrets pouvant être exécutés depuis la console: https://github.com/tkrzeminski/jenkins-groovy-scripts/blob/master/show-all- credentials.groovy