forger 2.0.5 → 3.0.0
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 +4 -4
- data/.circleci/config.yml +1 -0
- data/CHANGELOG.md +12 -0
- data/Gemfile.lock +40 -29
- data/README.md +6 -37
- data/docs/example/config/variables/development.rb +2 -0
- data/docs/example/profiles/default.yml +2 -2
- data/docs/extract-scripts.md +40 -0
- data/docs/layouts.md +35 -0
- data/docs/profiles.md +79 -0
- data/docs/variables.md +53 -0
- data/forger.gemspec +6 -3
- data/lib/forger.rb +4 -23
- data/lib/forger/autoloader.rb +21 -0
- data/lib/forger/aws_services.rb +22 -0
- data/lib/forger/clean.rb +0 -2
- data/lib/forger/cleaner.rb +0 -1
- data/lib/forger/cleaner/ami.rb +1 -1
- data/lib/forger/cli.rb +10 -6
- data/lib/forger/completer.rb +0 -2
- data/lib/forger/core.rb +28 -12
- data/lib/forger/create.rb +2 -23
- data/lib/forger/create/info.rb +10 -4
- data/lib/forger/create/waiter.rb +1 -1
- data/lib/forger/destroy.rb +1 -1
- data/lib/forger/help/upload.md +1 -13
- data/lib/forger/network.rb +2 -2
- data/lib/forger/new.rb +5 -6
- data/lib/forger/profile.rb +15 -3
- data/lib/forger/s3.rb +23 -0
- data/lib/forger/s3/bucket.rb +131 -0
- data/lib/forger/script.rb +0 -4
- data/lib/forger/script/upload.rb +12 -42
- data/lib/forger/scripts/cloudwatch.sh +2 -2
- data/lib/forger/scripts/shared/functions.sh +1 -1
- data/lib/forger/setting.rb +0 -32
- data/lib/forger/template.rb +0 -3
- data/lib/forger/template/context.rb +16 -1
- data/lib/forger/template/helper.rb +9 -9
- data/lib/forger/template/helper/ami_helper.rb +1 -1
- data/lib/forger/template/helper/core_helper.rb +7 -6
- data/lib/forger/template/helper/script_helper.rb +3 -9
- data/lib/forger/version.rb +1 -1
- data/lib/forger/wait.rb +0 -2
- data/lib/forger/waiter.rb +0 -1
- data/lib/forger/waiter/ami.rb +1 -1
- data/lib/templates/default/app/user_data/bootstrap.sh.tt +6 -9
- data/lib/templates/default/app/user_data/layouts/default.sh.tt +1 -5
- data/lib/templates/default/config/settings.yml.tt +1 -11
- data/lib/templates/default/config/{development.yml.tt → variables/development.yml.tt} +0 -0
- data/spec/fixtures/demo_project/app/user_data/bootstrap.sh +2 -2
- data/spec/fixtures/demo_project/config/settings.yml +2 -4
- data/spec/fixtures/demo_project/config/variables/test.rb +4 -0
- data/spec/fixtures/demo_project/profiles/default.yml +2 -2
- metadata +59 -13
- data/docs/example/config/development.yml +0 -7
- data/lib/forger/aws_service.rb +0 -7
- data/lib/forger/config.rb +0 -25
- data/spec/fixtures/demo_project/config/test.yml +0 -8
data/lib/forger/wait.rb
CHANGED
data/lib/forger/waiter.rb
CHANGED
data/lib/forger/waiter/ami.rb
CHANGED
@@ -1,12 +1,9 @@
|
|
1
|
-
|
1
|
+
# Example of calling the extracted shared scripts
|
2
2
|
# setup: shared functions, path, awscli, etc
|
3
|
-
source /opt/scripts/shared/functions.sh
|
4
|
-
export PATH=/usr/local/bin/:$PATH
|
5
|
-
configure_aws_cli /root
|
6
|
-
configure_aws_cli /home/ec2-user
|
7
|
-
|
8
|
-
# install software
|
9
|
-
/opt/scripts/install/common.sh
|
10
|
-
<% end -%>
|
3
|
+
# source /opt/scripts/shared/functions.sh
|
4
|
+
# export PATH=/usr/local/bin/:$PATH
|
5
|
+
# configure_aws_cli /root
|
6
|
+
# configure_aws_cli /home/ec2-user
|
7
|
+
# /opt/scripts/install/common.sh
|
11
8
|
|
12
9
|
<%%= personalize_script %>
|
@@ -5,12 +5,8 @@ cd ~ # user-data starts off in / so go to $HOME
|
|
5
5
|
|
6
6
|
<%%= add_ssh_key %>
|
7
7
|
|
8
|
-
<% if options[:s3_folder] -%>
|
9
|
-
<%%= extract_scripts(to: "/opt") %>
|
10
|
-
<% else -%>
|
11
8
|
# Uncomment to use extract_scripts and use app/scripts
|
12
|
-
|
13
|
-
<% end -%>
|
9
|
+
<%%=# extract_scripts(to: "/opt") %>
|
14
10
|
|
15
11
|
<%%= yield %>
|
16
12
|
|
@@ -8,18 +8,8 @@ base:
|
|
8
8
|
# There are separate files to separate user defined variables and internal
|
9
9
|
# setting configs.
|
10
10
|
development:
|
11
|
-
# By setting s3_folder, forger will automatically tarball and upload your scripts
|
12
|
-
# to set. You then can then use the extract_scripts helper method to download
|
13
|
-
# the scripts onto the server.
|
14
|
-
# s3_folder: mybucket/path/to/folder # simple string
|
15
11
|
# compile_clean: true # uncomment to clean
|
16
12
|
# extract_scripts:
|
17
13
|
# to: "/opt"
|
18
14
|
# as: "ec2-user"
|
19
|
-
|
20
|
-
- my-aws-profile
|
21
|
-
<% if @options[:s3_folder] -%>
|
22
|
-
s3_folder: <%= @options[:s3_folder] %>
|
23
|
-
<% else -%>
|
24
|
-
# s3_folder: my-s3-bucket/ec2
|
25
|
-
<% end -%>
|
15
|
+
aws_profile: my-aws-profile
|
File without changes
|
@@ -10,8 +10,8 @@ user_data: "<%= user_data("bootstrap.sh") %>"
|
|
10
10
|
iam_instance_profile:
|
11
11
|
name: <%= ENV['IAM_INSTANCE_PROFILE'] %>
|
12
12
|
# public network settings
|
13
|
-
security_group_ids: <%=
|
14
|
-
subnet_id: <%=
|
13
|
+
security_group_ids: <%= @security_group_ids.inspect %>
|
14
|
+
subnet_id: <%= @subnets.shuffle.first %>
|
15
15
|
block_device_mappings:
|
16
16
|
- device_name: /dev/xvda
|
17
17
|
ebs:
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: forger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-01
|
11
|
+
date: 2019-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: aws-sdk-cloudformation
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: aws-sdk-ec2
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +66,20 @@ dependencies:
|
|
52
66
|
- - ">="
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: cfn-status
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
84
|
name: dotenv
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -150,6 +178,20 @@ dependencies:
|
|
150
178
|
- - ">="
|
151
179
|
- !ruby/object:Gem::Version
|
152
180
|
version: '0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: zeitwerk
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
type: :runtime
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
153
195
|
- !ruby/object:Gem::Dependency
|
154
196
|
name: bundler
|
155
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -235,8 +277,7 @@ dependencies:
|
|
235
277
|
- !ruby/object:Gem::Version
|
236
278
|
version: '0'
|
237
279
|
description:
|
238
|
-
email:
|
239
|
-
- tongueroo@gmail.com
|
280
|
+
email: tongueroo@gmail.com
|
240
281
|
executables:
|
241
282
|
- forger
|
242
283
|
extensions: []
|
@@ -258,14 +299,19 @@ files:
|
|
258
299
|
- docs/example/.env.production
|
259
300
|
- docs/example/app/scripts/hello.sh
|
260
301
|
- docs/example/app/user_data/bootstrap.sh
|
261
|
-
- docs/example/config/development.
|
302
|
+
- docs/example/config/variables/development.rb
|
262
303
|
- docs/example/profiles/default.yml
|
263
304
|
- docs/example/profiles/spot.yml
|
305
|
+
- docs/extract-scripts.md
|
306
|
+
- docs/layouts.md
|
307
|
+
- docs/profiles.md
|
308
|
+
- docs/variables.md
|
264
309
|
- exe/forger
|
265
310
|
- forger.gemspec
|
266
311
|
- lib/forger.rb
|
267
312
|
- lib/forger/ami.rb
|
268
|
-
- lib/forger/
|
313
|
+
- lib/forger/autoloader.rb
|
314
|
+
- lib/forger/aws_services.rb
|
269
315
|
- lib/forger/base.rb
|
270
316
|
- lib/forger/clean.rb
|
271
317
|
- lib/forger/cleaner.rb
|
@@ -275,7 +321,6 @@ files:
|
|
275
321
|
- lib/forger/completer.rb
|
276
322
|
- lib/forger/completer/script.rb
|
277
323
|
- lib/forger/completer/script.sh
|
278
|
-
- lib/forger/config.rb
|
279
324
|
- lib/forger/core.rb
|
280
325
|
- lib/forger/create.rb
|
281
326
|
- lib/forger/create/error_messages.rb
|
@@ -299,6 +344,8 @@ files:
|
|
299
344
|
- lib/forger/network.rb
|
300
345
|
- lib/forger/new.rb
|
301
346
|
- lib/forger/profile.rb
|
347
|
+
- lib/forger/s3.rb
|
348
|
+
- lib/forger/s3/bucket.rb
|
302
349
|
- lib/forger/script.rb
|
303
350
|
- lib/forger/script/compile.rb
|
304
351
|
- lib/forger/script/compress.rb
|
@@ -350,13 +397,13 @@ files:
|
|
350
397
|
- lib/templates/default/app/scripts/shared/functions.sh
|
351
398
|
- lib/templates/default/app/user_data/bootstrap.sh.tt
|
352
399
|
- lib/templates/default/app/user_data/layouts/default.sh.tt
|
353
|
-
- lib/templates/default/config/development.yml.tt
|
354
400
|
- lib/templates/default/config/settings.yml.tt
|
401
|
+
- lib/templates/default/config/variables/development.yml.tt
|
355
402
|
- lib/templates/default/profiles/default.yml.tt
|
356
403
|
- spec/fixtures/demo_project/.env.test
|
357
404
|
- spec/fixtures/demo_project/app/user_data/bootstrap.sh
|
358
405
|
- spec/fixtures/demo_project/config/settings.yml
|
359
|
-
- spec/fixtures/demo_project/config/test.
|
406
|
+
- spec/fixtures/demo_project/config/variables/test.rb
|
360
407
|
- spec/fixtures/demo_project/profiles/default.yml
|
361
408
|
- spec/lib/cli_spec.rb
|
362
409
|
- spec/lib/core_helper_spec.rb
|
@@ -381,16 +428,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
381
428
|
- !ruby/object:Gem::Version
|
382
429
|
version: '0'
|
383
430
|
requirements: []
|
384
|
-
|
385
|
-
rubygems_version: 2.7.6
|
431
|
+
rubygems_version: 3.0.6
|
386
432
|
signing_key:
|
387
433
|
specification_version: 4
|
388
|
-
summary:
|
434
|
+
summary: Create EC2 Instances with preconfigured settings
|
389
435
|
test_files:
|
390
436
|
- spec/fixtures/demo_project/.env.test
|
391
437
|
- spec/fixtures/demo_project/app/user_data/bootstrap.sh
|
392
438
|
- spec/fixtures/demo_project/config/settings.yml
|
393
|
-
- spec/fixtures/demo_project/config/test.
|
439
|
+
- spec/fixtures/demo_project/config/variables/test.rb
|
394
440
|
- spec/fixtures/demo_project/profiles/default.yml
|
395
441
|
- spec/lib/cli_spec.rb
|
396
442
|
- spec/lib/core_helper_spec.rb
|
data/lib/forger/aws_service.rb
DELETED
data/lib/forger/config.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
require 'yaml'
|
2
|
-
require 'render_me_pretty'
|
3
|
-
|
4
|
-
module Forger
|
5
|
-
class Config < Base
|
6
|
-
include Forger::Template
|
7
|
-
|
8
|
-
def initialize(options={})
|
9
|
-
super
|
10
|
-
@path = options[:path] || "#{Forger.root}/config/#{Forger.env}.yml"
|
11
|
-
end
|
12
|
-
|
13
|
-
@@data = nil
|
14
|
-
def data
|
15
|
-
return @@data if @@data
|
16
|
-
|
17
|
-
text = RenderMePretty.result(@path, context: context)
|
18
|
-
@@data = YAML.load(text)
|
19
|
-
rescue Errno::ENOENT => e
|
20
|
-
puts e.message
|
21
|
-
puts "The #{@path} does not exist. Please double check that it exists."
|
22
|
-
exit
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|