envme 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +46 -13
- data/lib/envme.rb +1 -1
- data/lib/envme/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 5098e39b92393685c4daedd5b2ef8e86ff1183dc1be21147c3c8c98e82a395fc
|
4
|
+
data.tar.gz: cdc20d80247ea1f9f7f6ee0390f8bcc438facdcd516f0f399f3135b717a565fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4157b85087360e40ad79f71744d8b7123c5f66791f8e804b96aa97b0b15e1d75cc241f5ae2c91ca6e43efb5b6eda191459e01c5a0ce3d105afee2991b6b52e3
|
7
|
+
data.tar.gz: d86cacd96befe38118ee37e725bef9298566718ef5540c8136ffd275083c36aeb1e06969c8467fb9d9107626a1a189686df1cc464ce77a0127ed469f2808cc2e
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Envme [![Gem Version](https://badge.fury.io/rb/envme.svg)](http://badge.fury.io/rb/envme) [![Circle CI](https://circleci.com/gh/reppard/envme.svg?style=svg)](https://circleci.com/gh/reppard/envme)
|
2
2
|
|
3
|
-
Envme is a Ruby wrapper around hashicorp's [envconsul](https://github.com/hashicorp/envconsul). It fetches k/v data from Consul using a user specified prefix which can then be used to configure your app with the returned enviroment variables. It can be useful for building AWS user data or generating systemd service files.
|
3
|
+
Envme is a Ruby wrapper around hashicorp's [envconsul](https://github.com/hashicorp/envconsul). It fetches k/v data from Consul using a user specified prefix which can then be used to configure your app with the returned enviroment variables. It can be useful for building AWS user data or generating systemd service files. Currently works with envconsul v0.5.0.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -13,7 +13,7 @@ Or add to your Gemfile
|
|
13
13
|
```ruby
|
14
14
|
source 'https://rubygems.org'
|
15
15
|
|
16
|
-
gem 'envme', '>=0.
|
16
|
+
gem 'envme', '>=0.2.0'
|
17
17
|
```
|
18
18
|
|
19
19
|
## Usage
|
@@ -32,56 +32,89 @@ Grab everything at specified prefix:
|
|
32
32
|
|
33
33
|
```ruby
|
34
34
|
Envme::Vars.get('test/prefix')
|
35
|
-
=> ["DB_ENDPOINT=db.endpoint.com", "DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser", "REST_ENDPOINT=rest.endpoint.com"]
|
35
|
+
# => ["DB_ENDPOINT=db.endpoint.com", "DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser", "REST_ENDPOINT=rest.endpoint.com"]
|
36
36
|
```
|
37
37
|
|
38
38
|
Limit return by passing in a search string:
|
39
39
|
|
40
40
|
```ruby
|
41
41
|
Envme::Vars.get('test/prefix', 'rest')
|
42
|
-
=> ["REST_ENDPOINT=rest.endpoint.com"]
|
42
|
+
# => ["REST_ENDPOINT=rest.endpoint.com"]
|
43
43
|
|
44
44
|
Envme::Vars.get('test/prefix', 'db')
|
45
|
-
=> ["DB_ENDPOINT=db.endpoint.com", "DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser"]
|
45
|
+
# => ["DB_ENDPOINT=db.endpoint.com", "DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser"]
|
46
46
|
```
|
47
47
|
|
48
48
|
Using multiple search strings:
|
49
49
|
|
50
50
|
```ruby
|
51
51
|
Envme::Vars.get('test/prefix', 'db', 'rest')
|
52
|
-
=> ["DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser", "REST_ENDPOINT=rest.endpoint.com", "DB_ENDPOINT=db.endpoint.com"]
|
52
|
+
# => ["DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser", "REST_ENDPOINT=rest.endpoint.com", "DB_ENDPOINT=db.endpoint.com"]
|
53
53
|
```
|
54
54
|
|
55
55
|
### Sanitizing return values
|
56
56
|
|
57
57
|
```ruby
|
58
58
|
vars = Envme::Vars.get('test', 'db')
|
59
|
-
=> ["PREFIX_DB_ENDPOINT=db.endpoint.com", "PREFIX_DB_PASSWD=p@s$W0rd", "PREFIX_DB_USERNAME=dbuser"]
|
59
|
+
# => ["PREFIX_DB_ENDPOINT=db.endpoint.com", "PREFIX_DB_PASSWD=p@s$W0rd", "PREFIX_DB_USERNAME=dbuser"]
|
60
60
|
|
61
61
|
Envme::Vars.sanitize(vars, 'prefix')
|
62
|
-
=> ["DB_ENDPOINT=db.endpoint.com", "DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser"]
|
62
|
+
# => ["DB_ENDPOINT=db.endpoint.com", "DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser"]
|
63
63
|
```
|
64
64
|
|
65
|
-
### Building
|
65
|
+
### Building scripts
|
66
|
+
|
67
|
+
Exports for script:
|
66
68
|
|
67
69
|
```ruby
|
68
70
|
vars = Envme::Vars.get('test/prefix', 'db')
|
69
|
-
=> ["DB_ENDPOINT=db.endpoint.com", "DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser"]
|
71
|
+
# => ["DB_ENDPOINT=db.endpoint.com", "DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser"]
|
72
|
+
|
73
|
+
exports = Envme.build_exports(vars)
|
74
|
+
# => "export DB_ENDPOINT=db.endpoint.com\nexport DB_PASSWD=p@s$W0rd\nexport DB_USERNAME=dbuser"
|
70
75
|
|
71
|
-
|
76
|
+
start_script = <<-eos
|
77
|
+
#!/bin/bash
|
78
|
+
#{exports}
|
79
|
+
ruby app.rb
|
80
|
+
eos
|
81
|
+
# => "#!/bin/bash\nexport DB_ENDPOINT=db.endpoint.com\nexport DB_PASSWD=p@s$W0rd\nexport DB_USERNAME=dbuser\nruby app.rb\n"
|
72
82
|
|
83
|
+
puts start_script
|
84
|
+
|
85
|
+
#!/bin/bash
|
73
86
|
export DB_ENDPOINT=db.endpoint.com
|
74
87
|
export DB_PASSWD=p@s$W0rd
|
75
88
|
export DB_USERNAME=dbuser
|
89
|
+
ruby app.rb
|
90
|
+
=> nil
|
91
|
+
```
|
92
|
+
|
93
|
+
Populate a systemd EnvironmentFile:
|
94
|
+
|
95
|
+
```ruby
|
96
|
+
vars = Envme::Vars.get('test/prefix', 'rest', 'db')
|
97
|
+
# => ["DB_PASSWD=p@s$W0rd", "DB_USERNAME=dbuser", "REST_ENDPOINT=rest.endpoint.com", "DB_ENDPOINT=db.endpoint.com"]
|
76
98
|
|
99
|
+
file_builder = Envme.file_builder(vars, '/etc/sysconfig/my_service.service')
|
100
|
+
# => "echo DB_ENDPOINT=db.endpoint.com >> /etc/sysconfig/my_service.service\necho DB_PASSWD=p@s$W0rd >> /etc/sysconfig/my_service.service\necho DB_USERNAME=dbuser >> /etc/sysconfig/my_service.service\necho REST_ENDPOINT=rest.endpoint.com >> /etc/sysconfig/my_service.service"
|
77
101
|
|
78
|
-
|
102
|
+
user_data = <<-eos
|
103
|
+
#!/bin/bash
|
104
|
+
#{file_builder}
|
105
|
+
systemctl my_service start
|
106
|
+
eos
|
107
|
+
=> "#!/bin/bash\necho DB_ENDPOINT=db.endpoint.com >> /etc/sysconfig/my_service.service\necho DB_PASSWD=p@s$W0rd >> /etc/sysconfig/my_service.service\necho DB_USERNAME=dbuser >> /etc/sysconfig/my_service.service\necho REST_ENDPOINT=rest.endpoint.com >> /etc/sysconfig/my_service.service\nsystemctl my_service start\n"
|
79
108
|
|
80
|
-
puts
|
109
|
+
puts user_data
|
81
110
|
|
111
|
+
#!/bin/bash
|
82
112
|
echo DB_ENDPOINT=db.endpoint.com >> /etc/sysconfig/my_service.service
|
83
113
|
echo DB_PASSWD=p@s$W0rd >> /etc/sysconfig/my_service.service
|
84
114
|
echo DB_USERNAME=dbuser >> /etc/sysconfig/my_service.service
|
115
|
+
echo REST_ENDPOINT=rest.endpoint.com >> /etc/sysconfig/my_service.service
|
116
|
+
systemctl my_service start
|
117
|
+
=> nil
|
85
118
|
```
|
86
119
|
|
87
120
|
Inspired by [Diplomat](https://github.com/WeAreFarmGeek/diplomat)
|
data/lib/envme.rb
CHANGED
data/lib/envme/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: envme
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 'Reppard Walker '
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-04-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -117,8 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
117
117
|
- !ruby/object:Gem::Version
|
118
118
|
version: '0'
|
119
119
|
requirements: []
|
120
|
-
|
121
|
-
rubygems_version: 2.2.2
|
120
|
+
rubygems_version: 3.0.1
|
122
121
|
signing_key:
|
123
122
|
specification_version: 4
|
124
123
|
summary: Envme is a Ruby wrapper for envconsul with a few extras.
|