Puppet Integration

The Secrets Safe module consists of a number of plugins that allow creation and retrieval of secrets in DevOps Secrets Safe.

Prerequisites

The functions in this module require an application with permissions to perform read and write actions on the resources you interact with.

Usage

Ensure a user exists with a password retrieved from DevOps Secrets Safe, using the format shown here, where bob is the user:

user_password = dss_get_secret('https://my-secrets-safe.com', 'user/passwords:bob', "my_application", "my_api_key")
user { 'bob':
  ensure   => present,
  password => Sensitive($user_password)
}

Use a DSS generator to generate a password, and then provision a Postgres database using it:

class { 'postgresql::server':
}

dss_create_secret_with_generator('https://my-secrets-safe.com', 'passwords/db/pg_user', "my_application", "my_api_key", "postgres-password-generator")
$pg_pass = dss_get_secret('https://my-secrets-safe.com', 'passwords/db/pg_user', "my_application", "my_api_key")
postgresql::server::db { 'new_postgres':
  user     => 'pg_user',
  password => postgresql::postgresql_password('pg_user', $pg_pass),
}

Save a certificate that is on the file system as a secret in DSS:

dss_create_secret_with_file('https://my-secrets-safe.com', 'certs:mycert', "my_application", "my_api_key", "//etc/ssl/certs/ca.crt")

Functions

Each of the following functions have some common parameters:

host Data type: String Hostname or IP address of DevOps Secrets Safe instance
app_name Data type: String Name of DSS application used to perform this action
api_key Data type: String API key of the DSS application specified in the app_name parameter
secret_uri Data type: String URI of the secret being operated on
secret_value Data type: String String value of the secret to be stored
generator_name Data type: String Name of the DSS generator used to generate the value for this secret
file_name Data type: String Path to the file which is stored as a secret

 

Returns the value of a DevOps Secrets Safe secret found at secret_uri.

dss_get_secret(host, secret_uri, app_name, api_key)

Creates a secret at secret_uri using the value of secret_value.

dss_create_secret_with_value (host, secret_uri, app_name, api_key, secret_value)

Creates a secret at secret_uri using the DevOps Secrets Safe generator specified in generator_name.

dss_create_secret_with_generator(host, secret_uri, app_name, api_key, generator_name)

Creates a secret at secret_uri using the file at file_name as the value.

dss_create_secret_with_file(host, secret_uri, app_name, api_key, file_name)