Sha256: 03ff21063cffb4a2807813d68a9f392348ec01faa3d129e51e784357b635d403

Contents?: true

Size: 1.34 KB

Versions: 4

Compression:

Stored size: 1.34 KB

Contents

#!/usr/bin/env ruby

require 'trollop'
require 'vault'
require 'vault_provision'

prog_name = File.basename $PROGRAM_NAME
opts = Trollop.options do
  banner <<-EOS
Provision a Vault configuration

Usage:

$ export VAULT_ADDR='https://<my-vault-server:8200>'
$ export VAULT_TOKEN=<my-vault-root-token>
$ #{prog_name} --dir /path/to/provisioning-data
.
EOS
  opt :dir,
      'Root directory of provisioning data. For example, ./bin/vault-provision --dir ./examples/basic',
      type: :string
  opt :destructive,
      'Regenerate the PKI CA keys (DANGEROUS)',
      default: false
  opt :addr,
      'vault address (overrides VAULT_ADDR)',
      type: :string, default: ENV['VAULT_ADDR']
  opt :token,
      'vault token (overrides VAULT_TOKEN)',
      type: :string, default: ENV['VAULT_TOKEN']
end

Trollop.die :dir, "need a directory" if opts[:dir].nil?
Trollop.die :dir, "#{opts[:dir]} isn't a directory" unless FileTest.directory?(opts[:dir])

Trollop.die :addr, "need VAULT_ADDR set"   unless opts[:addr]
Trollop.die :token, "need VAULT_TOKEN set" unless opts[:token]

signatories = {'pki-intermediate': 'pki-root'}
Vault::Provision.new(opts[:dir],
                     address: opts[:addr],
                     token: opts[:token],
                     intermediate_issuer: signatories,
                     pki_allow_destructive: opts[:destructive]).provision!

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
vault-provision-0.1.12 bin/vault-provision
vault-provision-0.1.11 bin/vault-provision
vault-provision-0.1.10 bin/vault-provision
vault-provision-0.1.9 bin/vault-provision