Получение и хранение всего секрета в файле env на хранилище Jenkins и hashicorp - PullRequest
1 голос
/ 02 марта 2020

В настоящее время мы строим конвейер развертывания jenkins. В этих сборках для секретного управления мы используем хранилище HachiCorp. Для получения секрета мы используем hashicorp-vault-plugin . Проблема в том, что мы хотим объявить все переменные в конвейерных скриптах, например: testing ',' testing_again ', secret / another_test (мы этого не хотим)

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'
    }
} 

Но нужно что-то вроде этого -

  1. Получить весь секрет в качестве ключа и значения
  2. Поместить файл env перед сборкой проекта
  3. После построить проект, уничтожить файл env.

Это возможно с помощью jenkins hashicorp-vault-plugin Или получить секрет из хранилища с помощью curl и обработать с помощью команды shell (пример отличный).

...