Sha256: def0bf16e29bab37ee20ecea518a01ac2387a5cc7e136a6788ac6fbc498361fd

Contents?: true

Size: 1.31 KB

Versions: 4

Compression:

Stored size: 1.31 KB

Contents

require 'vault'
require 'active_support/inflector'

class Vault::Provision; end
require 'vault/provision/prototype'

require 'vault/provision/auth'
require 'vault/provision/sys'
require 'vault/provision/pki'
require 'vault/provision/generic'

# controller for the children
class Vault::Provision
  SYSTEM_POLICIES = ['response-wrapping', 'root'].freeze

  attr_accessor :vault, :instance_dir,
                :intermediate_issuer, :pki_allow_destructive

  def initialize instance_dir,
                 address: ENV['VAULT_ADDR'],
                 token: ENV['VAULT_TOKEN'],
                 intermediate_issuer: {},
                 pki_allow_destructive: false

    @instance_dir = instance_dir
    @vault = Vault::Client.new address: address, token: token
    @intermediate_issuer = intermediate_issuer
    @pki_allow_destructive = pki_allow_destructive
    @handlers = [
      Sys::Auth,
      Auth::Ldap::Config,
      Sys::Mounts,
      Pki::Root::Generate::Internal,
      Pki::Intermediate::Generate::Internal,
      Pki::Config::Urls,
      Pki::Roles,
      Generic,
      Sys::Policy,
      Auth::Ldap::Groups,
      Auth::Approle
    ]
  end

  def provision!
    @handlers.each do |handler|
      puts "* Calling handler #{handler}"
      handler.new(self).provision!
    end
  end

  def pki_force?
    @pki_force
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
vault-provision-0.1.7 lib/vault/provision.rb
vault-provision-0.1.6 lib/vault/provision.rb
vault-provision-0.1.5 lib/vault/provision.rb
vault-provision-0.1.4 lib/vault/provision.rb