title: Getting and put all secret in an env file on Jenkins and hashicorp vault
body: <p>Currently we are building a jenkins deployment pipeline. On those build, for secret management we are using HachiCorp vault. For getting secret we using <strong>hashicorp-vault-plugin</strong>. Problem is we wants to declare all variables on pipeline scripts, like this - <strong>testing','testing_again', secret/another_test</strong> (we don't want that)</p>
  
  <pre><code>node {
      // define the secrets and the env variables
      // engine version can be defined on secret, job, folder or global.
      // the default is engine version 2 unless otherwise specified globally.
      def secrets = [
          [path: 'secret/testing', engineVersion: 1, secretValues: [
              [envVar: 'testing', vaultKey: 'value_one'],
              [envVar: 'testing_again', vaultKey: 'value_two']]],
          [path: 'secret/another_test', engineVersion: 2, secretValues: [
              [vaultKey: 'another_test']]]
      ]
  
      // optional configuration, if you do not provide this the next higher configuration
      // (e.g. folder or global) will be used
      def configuration = [vaultUrl: 'http://my-very-other-vault-url.com',
                           vaultCredentialId: 'my-vault-cred-id',
                           engineVersion: 1]
      // inside this block your credentials will be available as env variables
      withVault([configuration: configuration, vaultSecrets: secrets]) {
          sh 'echo $testing'
          sh 'echo $testing_again'
          sh 'echo $another_test'
      }
  } 
  </code></pre>
  
  <blockquote>
    <p>But need some things like this -</p>
  </blockquote>
  
  <ol>
  <li>Get all the secret as key and value </li>
  <li>Put on a env file before Building the project</li>
  <li>After build project, destroy the env file.</li>
  </ol>
  
  <p>Is it possible by jenkins hashicorp-vault-plugin Or get those secret from vault by curl and process by shell commend (Example is great).</p>