vaml 0.1.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: be6b490176d6f15d95fcc857f59070092e8b6a4d
4
- data.tar.gz: 508da870ab0559220448c30b2a23879b185242ef
3
+ metadata.gz: 3b2ebabfa0526b8241ba6497e5d93f41a6e95b61
4
+ data.tar.gz: 3820ffa87e3dffa4d13d29dcbf280dd9a6ed566f
5
5
  SHA512:
6
- metadata.gz: eed59d3d4c072a25d87a3a906e9b5df3a35c15f645a3d7c164eb47386c8b75f353692f9ab4041f23007c1e96b4e40d6f7d76b2440d71a9bf85ce6d91642bd297
7
- data.tar.gz: a1ed95d6cd38d82f3bef07ddf9a2b0b9ab1df483ebead2a0b6c2ba8ed416549c736d4e821308ba0a83b063334d1ef94b6bd5e364f8749a1bb4af31206e4ac894
6
+ metadata.gz: ce9219c27887b53640b4fd9774a93380c690ac5e83f840463282b00487e2b119f7fc214b613da2e589b36773070294699851abd2959b60950b00b8dfdf5e0d04
7
+ data.tar.gz: 84df93926bc8a34ba9d74e14e4bd9b39b73c45226edd71a0f78171178367bea28bb644e55066b6b21d8508918f5be21ea82680ba7bd8e770cea4b94992ececa7
data/.gitignore CHANGED
@@ -5,5 +5,6 @@
5
5
  /coverage/
6
6
  /doc/
7
7
  /pkg/
8
+ /docker/consul-data
8
9
  /spec/reports/
9
10
  /tmp/
data/README.md CHANGED
@@ -124,15 +124,16 @@ Vaml::Github.enable_auth(organization)
124
124
  Vaml::Github.grant_policy(team_name, policy_name)
125
125
  ```
126
126
 
127
- ## Using Vault in your Local System
127
+ ## Using Vault
128
128
 
129
- OSX
129
+ This gem also contains a `docker/` directory with vault and consul setup for you.
130
+ To start vault on your local system with consul as the backend, clone the repo and run
131
+
132
+ `cd docker`
133
+ `docker-compose up`
134
+
135
+ or you can follow the official Vault documentation and install vault.
130
136
 
131
- ```
132
- brew install vault
133
- vault server --dev
134
- ```
135
- And Follow the official Vault documentation.
136
137
 
137
138
  ## Development
138
139
 
@@ -0,0 +1,5 @@
1
+ {
2
+ "key_file": "/consul/config/privkey1.pem",
3
+ "cert_file": "/consul/config/cert1.pem",
4
+ "ca_file": "/consul/config/fullchain1.pem",
5
+ }
@@ -0,0 +1,12 @@
1
+ backend "consul" {
2
+ address = "consul:8500"
3
+ path = "vault"
4
+ scheme = "http"
5
+ }
6
+
7
+ listener "tcp" {
8
+ address = "vault:8200"
9
+ tls_disable = 1
10
+ }
11
+
12
+ disable_mlock = true
@@ -0,0 +1,20 @@
1
+ backend "consul" {
2
+ address = "my_server_address:8500"
3
+ redirect_addr = "https://vault:8200"
4
+ path = "vault"
5
+ scheme = "https"
6
+ tls_skip_verify = 0
7
+ tls_cert_file= "/config/cert.pem"
8
+ tls_key_file = "/config/privkey.pem"
9
+ tls_ca_file = "/config/fullchain.pem"
10
+ }
11
+
12
+ listener "tcp" {
13
+ address = "0.0.0.0:8200"
14
+ tls_disable = 0
15
+ tls_cert_file = "/config/cert.pem"
16
+ tls_key_file = "/config/privkey.pem"
17
+ cluster_address = "0.0.0.0:8200"
18
+ }
19
+
20
+ disable_mlock = true
@@ -0,0 +1,50 @@
1
+ version: '3'
2
+ services:
3
+ consul-base:
4
+ image: consul:latest
5
+ container_name: "consul-base"
6
+ ports:
7
+ - "8400:8400"
8
+ - "8500:8500"
9
+ - "8600:8600"
10
+ - "53:53/udp"
11
+ command: "consul agent -server -bootstrap-expect 1 -ui-dir /ui -bind 0.0.0.0 -data-dir=/consul-data -config-file=/config/consul-config.json"
12
+ volumes:
13
+ - ./consul-data:/consul-data:Z
14
+ - ./config:/config
15
+ environment:
16
+ CONSUL_LOCAL_CONFIG: "{'key_file': '/consul/config/privkey1.pem', 'cert_file': '/consul/config/cert1.pem', 'ca_file': '/consul/config/fullchain1.pem', {'ports': {'http': 8501, 'https': 8500}}}"
17
+ consul-agent:
18
+ image: consul:latest
19
+ expose:
20
+ - "8400"
21
+ - "8500"
22
+ - "8600"
23
+ links:
24
+ - "consul-base:consul"
25
+ command: "consul agent -retry-join consul -bind 0.0.0.0 -data-dir=/consul-data"
26
+ depends_on:
27
+ - consul-base
28
+ volumes:
29
+ - ./consul-data:/consul-data:Z
30
+ environment:
31
+ CONSUL_LOCAL_CONFIG: "{'key_file': '/consul/config/privkey1.pem', 'cert_file': '/consul/config/cert1.pem', 'ca_file': '/consul/config/fullchain1.pem'}"
32
+ vault:
33
+ image: "vault"
34
+ #restart: always
35
+ cap_add:
36
+ - IPC_LOCK
37
+ #privileged: true
38
+ depends_on:
39
+ - consul-base
40
+ - consul-agent
41
+ links:
42
+ - "consul-base:consul"
43
+ environment:
44
+ - VAULT_ADDR=https://encrypt.homify.com:8200
45
+ ports:
46
+ - "8200:8200"
47
+ volumes:
48
+ - /home/ubuntu/vault-docker/config:/config:rw
49
+ #privileged: true
50
+ command: "vault server -config=/config/vault.hcl -log-level=trace"
@@ -0,0 +1,38 @@
1
+ version: '3'
2
+ services:
3
+ consul-base:
4
+ image: progrium/consul:latest
5
+ container_name: "consul-base"
6
+ ports:
7
+ - "8400:8400"
8
+ - "8500:8500"
9
+ - "8600:8600"
10
+ - "53:53/udp"
11
+ command: "-server -bootstrap-expect 1 -ui-dir /ui -bind 0.0.0.0 -data-dir=/consul-data"
12
+ volumes:
13
+ - ./consul-data:/consul-data
14
+ consul-agent:
15
+ image: progrium/consul:latest
16
+ expose:
17
+ - "8400"
18
+ - "8500"
19
+ - "8600"
20
+ command: "-server -join consul-base -bind 0.0.0.0"
21
+ depends_on:
22
+ - consul-base
23
+ vault:
24
+ image: "vault"
25
+ restart: always
26
+ depends_on:
27
+ - consul-base
28
+ - consul-agent
29
+ links:
30
+ - "consul-base:consul"
31
+ environment:
32
+ - VAULT_ADDR=http://vault:8200
33
+ ports:
34
+ - "8200:8200"
35
+ volumes:
36
+ - ./config:/config
37
+ - ./certbot-data:/etc/letsencrypt
38
+ command: "vault server -config=/config/vault.hcl -log-level=trace"
@@ -7,6 +7,7 @@ namespace :vaml do
7
7
  raise
8
8
  end
9
9
  Vaml.configure(host: ENV['VAULT_HOST'], token: ENV['VAULT_TOKEN'])
10
+ Vaml::Github.auth(ENV['VAULT_TOKEN'])
10
11
  Vaml.write_string(key, value)
11
12
  puts "the rake task did something"
12
13
  exit
@@ -14,6 +15,7 @@ namespace :vaml do
14
15
 
15
16
  task :read_secret do
16
17
  Vaml.configure(host: ENV['VAULT_HOST'], token: ENV['VAULT_TOKEN'])
18
+ Vaml::Github.auth(ENV['VAULT_TOKEN'])
17
19
  puts Vaml.read_string(ARGV[1])
18
20
  exit
19
21
  end
@@ -6,7 +6,6 @@ require 'vaml/vault_config'
6
6
  require 'vaml/configuration'
7
7
  require 'vaml/github'
8
8
  require 'vaml/railtie' if defined?(Rails)
9
- require 'pry'
10
9
 
11
10
  module Vaml
12
11
 
@@ -17,6 +16,7 @@ module Vaml
17
16
  def configure(options)
18
17
  options[:host] ||= 'http://127.0.0.1:8200'
19
18
  options[:token] ||= ENV['VAULT_TOKEN']
19
+ options[:ssl_verify] ||= false
20
20
 
21
21
  self.configuration ||= Configuration.new(options)
22
22
  yield configuration if block_given?
@@ -1,10 +1,11 @@
1
1
  module Vaml
2
2
  class Configuration
3
- attr_accessor :organization, :host, :token
3
+ attr_accessor :organization, :host, :token, :ssl_verify
4
4
  def initialize(options)
5
5
  @host = options[:host]
6
6
  @token = options[:token]
7
7
  @organization = options[:organization]
8
+ @ssl_verify = options[:ssl_verify]
8
9
  end
9
10
  end
10
11
  end
@@ -2,13 +2,13 @@ module Vaml
2
2
  module Github
3
3
  def self.enable_auth(org = Vaml.configuration.organization)
4
4
  puts "Enabling auth for #{org} ... "
5
- Vault.sys.enable_auth("github", "github")
5
+ Vault.sys.enable_auth("github", "github") unless Vault.sys.auths[:github]
6
6
  Vault.logical.write("auth/github/config", organization: org)
7
7
  end
8
8
 
9
9
  def self.grant_policy(team_name, policy_name)
10
- Vault.client.post("/v1/auth/github/map/teams/#{team_name}", policy_name)
11
- # Vault.logical.write("auth/github/map/teams/#{team_name}", policy_name)
10
+ puts "Granting policy for #{team_name} ... #{policy_name} "
11
+ Vaml.write_string("auth/github/map/teams/#{team_name}", policy_name)
12
12
  end
13
13
 
14
14
  def self.auth(token)
@@ -5,7 +5,8 @@ module Vaml
5
5
  ::Vault.configure do |config|
6
6
  config.address = Vaml.configuration.host
7
7
  config.token = Vaml.configuration.token
8
- config.ssl_verify = false
8
+ config.ssl_verify = true
9
+ config.ssl_verify = Vaml.configuration.ssl_verify
9
10
  config.timeout = 30
10
11
  config.ssl_timeout = 5
11
12
  config.open_timeout = 5
@@ -1,3 +1,3 @@
1
1
  module Vaml
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vaml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dipesh
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-12 00:00:00.000000000 Z
11
+ date: 2017-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: vault
@@ -81,6 +81,11 @@ files:
81
81
  - Rakefile
82
82
  - bin/console
83
83
  - bin/setup
84
+ - docker/config/consul-config.json
85
+ - docker/config/vault.hcl
86
+ - docker/config/vault.prod.hcl
87
+ - docker/docker-compose.with_ssl.yml
88
+ - docker/docker-compose.yml
84
89
  - exe/vaml
85
90
  - lib/tasks/add_secret.rake
86
91
  - lib/vaml.rb