Tools - Vault
Client
Install
Install from official site:
CLIENT_VERSION=1.8.7
# Download archive
curl -LO https://releases.hashicorp.com/vault/${CLIENT_VERSION}/vault_${CLIENT_VERSION}_linux_amd64.zip
# Extract
unzip vault_${CLIENT_VERSION}_linux_amd64.zip
# Copy to bin path (admin)
mv vault /usr/local/bin
# Clean zip
rm -f vault_${CLIENT_VERSION}_linux_amd64.zip
Setup
Before use vault client, export vault url:
To use a specific namespace export the following var:
Commands
Login with LDAP:
vault login \
-method=ldap \
username={username} \
(password={password})
# Ex: vault login -method=ldap username=lkone
List kv:
List secret:
List secret and filter data with JQ ( with bash variable injection)
export mykey="key_to_retrieve"
vault kv get -format json -field=data unixlinux/secret/cicd/gitlab/preprod/gitlab-runner |jq -r --arg app "$mykey" '.|to_entries[]|select(.key==$mykey)'
````
Extract vault key/values inside a secret and export them to bash
```bash
vault kv get -format json -field=data unixlinux/secret/cicd/gitlab/preprod/s3/cache |jq -r '.|to_entries[]|"export \(.key)=\(@sh"\(.value)")"'
export accesskey='6ZCEO-NOT-REAL-3R9O'
export secretkey='C6omB4J2TA-NOT-REAL-N8QTYFOIgpkDJ'
# pour importer directement dans l env courant
source <(vault kv get -format json -field=data unixlinux/secret/cicd/gitlab/preprod/s3/cache |jq -r '.|to_entries[]|"export \(.key)=\(@sh"\(.value)")"')
@sh ci dessus permet de proteger les values jq avant de les rendre visible au shell