ops_build 1.0.6 → 1.1.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/.gitignore +3 -0
- data/Gemfile +3 -4
- data/Rakefile +1 -2
- data/TODO +1 -0
- data/bin/opsbuild +2 -4
- data/lib/ops_build/aws.rb +1 -1
- data/lib/ops_build/berkshelf.rb +15 -24
- data/lib/ops_build/chefspec.rb +1 -1
- data/lib/ops_build/commands/build.rb +69 -0
- data/lib/ops_build/commands/kitchen.rb +23 -0
- data/lib/ops_build/commands/validate.rb +11 -0
- data/lib/ops_build/kitchen.rb +1 -1
- data/lib/ops_build/packer.rb +20 -63
- data/lib/ops_build/runner.rb +14 -0
- data/lib/ops_build/utils.rb +18 -0
- data/lib/ops_build/vagrant.rb +1 -1
- data/lib/ops_build/validations.rb +11 -0
- data/lib/ops_build/version.rb +1 -1
- data/lib/ops_build.rb +22 -79
- data/ops_build.gemspec +6 -6
- metadata +13 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75752053b417d9c74d7d2ab6bd2072f2847d403a
|
4
|
+
data.tar.gz: 68b39a5adbc7ba53c8e548ab18449db28eecf9b5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c174cf62071c344e2feab44acc79dbb8ce9972caefc6df2007a9fbde4cc03f981d050d58ca3d7a2d294056cd8c8038d9a33bcfebe147cc22f72d64b0fc1f555d
|
7
|
+
data.tar.gz: 86cbdcf58832e01d8a2d9beb17cf5f1f1a7a2e94af87c35bbc5e76aa8490bfb1e06e30666ad651e801944b7291261daf8c50089d45a05867a266ea7bc99e32d9
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -1,2 +1 @@
|
|
1
|
-
require
|
2
|
-
|
1
|
+
require 'bundler/gem_tasks'
|
data/TODO
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
- process manager? (when opsbuild is interrupted, packer build process continues ... )
|
data/bin/opsbuild
CHANGED
data/lib/ops_build/aws.rb
CHANGED
data/lib/ops_build/berkshelf.rb
CHANGED
@@ -2,45 +2,36 @@
|
|
2
2
|
# Berkshelf management class
|
3
3
|
#
|
4
4
|
module OpsBuild
|
5
|
-
class
|
6
|
-
|
5
|
+
class Berkshelf
|
6
|
+
attr_reader :dir, :opts
|
7
7
|
|
8
|
-
def initialize(
|
9
|
-
|
10
|
-
puts(">>> Berks not installed !")
|
11
|
-
exit(1)
|
12
|
-
end
|
8
|
+
def initialize(dir: nil, silent: true)
|
9
|
+
Validations::check_binary!('berks')
|
13
10
|
|
14
|
-
|
15
|
-
|
16
|
-
@berkshelf_dir = Dir::tmpdir+"/"+Dir::Tmpname.make_tmpname('berks', nil)
|
17
|
-
else
|
18
|
-
@berkshelf_dir = berks_dir
|
19
|
-
end
|
11
|
+
@dir = dir || Dir.mktmpdir('berks')
|
12
|
+
@opts = ''
|
20
13
|
|
21
|
-
if silent
|
22
|
-
@berkshelf_opts = '-q'
|
23
|
-
else
|
24
|
-
@berkshelf_opts = ''
|
25
|
-
end
|
14
|
+
@opts << '-q' if silent
|
26
15
|
end
|
27
16
|
|
28
17
|
#
|
29
18
|
# Run berks vendor
|
30
|
-
def
|
31
|
-
|
19
|
+
def vendor
|
20
|
+
OpsBuild.logger.info("Vendoring cookbooks with berks to #{@dir}")
|
21
|
+
Utils::execute("berks vendor #{@opts} #{@dir}", log_prefix: 'berks:')
|
32
22
|
end
|
33
23
|
|
34
24
|
#
|
35
25
|
# Run berks install
|
36
|
-
def
|
37
|
-
|
26
|
+
def install
|
27
|
+
OpsBuild.logger.info('Installing cookbooks with berks')
|
28
|
+
Utils::execute("berks install #{@opts}", log_prefix: 'berks:')
|
38
29
|
end
|
39
30
|
|
40
31
|
#
|
41
32
|
# Cleanup Berks directory
|
42
|
-
def
|
43
|
-
FileUtils.rm_rf(@
|
33
|
+
def cleanup
|
34
|
+
FileUtils.rm_rf(@dir)
|
44
35
|
end
|
45
36
|
end
|
46
37
|
end
|
data/lib/ops_build/chefspec.rb
CHANGED
@@ -0,0 +1,69 @@
|
|
1
|
+
module OpsBuild
|
2
|
+
module Commands
|
3
|
+
class Build < Thor
|
4
|
+
def self.shared_options
|
5
|
+
option :ec2_region, type: :string, aliases: '-R', desc: 'AWS EC2 region', default: 'us-east-1'
|
6
|
+
option :aws_access, type: :string, aliases: '-A', desc: 'AWS Access key'
|
7
|
+
option :aws_secret, type: :string, aliases: '-S', desc: 'AWS Secret key'
|
8
|
+
end
|
9
|
+
|
10
|
+
desc 'packer TEMPLATE', 'build packer template'
|
11
|
+
shared_options
|
12
|
+
option :berk_dir, type: :string, aliases: '-b', desc: 'Berkshelf cookbook directory path'
|
13
|
+
def packer(template)
|
14
|
+
packer = Packer.new
|
15
|
+
berkshelf = Berkshelf.new(dir: options[:berk_dir], silent: false)
|
16
|
+
# aws = Aws.new
|
17
|
+
|
18
|
+
OpsBuild.logger.info("Building VM using packer from template #{template}")
|
19
|
+
|
20
|
+
# aws_access_key = options[:aws_access] || aws.aws_get_access_key
|
21
|
+
# aws_secret_key = options[:aws_secret] || aws.aws_get_secret_key
|
22
|
+
# aws_region = options[:ec2_region] || aws.aws_get_ec2_region
|
23
|
+
|
24
|
+
aws_access_key = options[:aws_access] || ENV['AWS_ACCESS_KEY']
|
25
|
+
aws_secret_key = options[:aws_secret] || ENV['AWS_SECRET_KEY']
|
26
|
+
aws_region = options[:ec2_region] || ENV['AWS_EC2_REGION']
|
27
|
+
|
28
|
+
# Validations::not_empty!(aws_access_key, :aws_access)
|
29
|
+
# Validations::not_empty!(aws_secret_key, :aws_secret)
|
30
|
+
# Validations::not_empty!(aws_region, :ec2_region)
|
31
|
+
|
32
|
+
# Add some config variables
|
33
|
+
packer.add_user_variable(:aws_access_key, aws_access_key) if aws_access_key
|
34
|
+
packer.add_user_variable(:aws_secret_key, aws_secret_key) if aws_secret_key
|
35
|
+
packer.add_user_variable(:aws_region, aws_region) if aws_region
|
36
|
+
packer.add_user_variable(:cookbook_path, berkshelf.dir)
|
37
|
+
|
38
|
+
begin
|
39
|
+
# Install missing cookbooks
|
40
|
+
berkshelf.install
|
41
|
+
|
42
|
+
# Load cookbooks to correct dir.
|
43
|
+
berkshelf.vendor
|
44
|
+
|
45
|
+
# Validate packer template
|
46
|
+
packer.validate(template)
|
47
|
+
|
48
|
+
# Run packer
|
49
|
+
packer.build(template)
|
50
|
+
|
51
|
+
packer.get_ami_id
|
52
|
+
rescue => e
|
53
|
+
OpsBuild.logger.error(e.message)
|
54
|
+
exit(1)
|
55
|
+
ensure
|
56
|
+
OpsBuild.logger.info("Cleaning up cookbooks/packer files from system.")
|
57
|
+
berkshelf.cleanup
|
58
|
+
packer.cleanup
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
desc 'vagrant TEMPLATE', 'build vagrant box'
|
63
|
+
shared_options
|
64
|
+
def vagrant(template)
|
65
|
+
# TODO
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module OpsBuild
|
2
|
+
module Commands
|
3
|
+
class Kitchen < Thor
|
4
|
+
desc 'coverage SUITE', 'Run kitchen converge for given suite'
|
5
|
+
def converge_kitchen(suite)
|
6
|
+
kitchen = OpsBuild::Kitchen.new
|
7
|
+
kitchen.kitchen_converge(suite)
|
8
|
+
end
|
9
|
+
|
10
|
+
desc 'verify SUITE', 'Run kitchen verify for given suite'
|
11
|
+
def verify_kitchen(suite)
|
12
|
+
kitchen = OpsBuild::Kitchen.new
|
13
|
+
kitchen.kitchen_verify(suite)
|
14
|
+
end
|
15
|
+
|
16
|
+
desc 'test SUITE', 'Run kitchen test for given platform'
|
17
|
+
def test_kitchen(suite)
|
18
|
+
kitchen = OpsBuild::Kitchen.new
|
19
|
+
kitchen.kitchen_test(suite)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/ops_build/kitchen.rb
CHANGED
data/lib/ops_build/packer.rb
CHANGED
@@ -2,24 +2,17 @@
|
|
2
2
|
# Packer management class
|
3
3
|
#
|
4
4
|
module OpsBuild
|
5
|
-
|
6
|
-
|
5
|
+
class Packer
|
6
|
+
attr_accessor :user_vars, :user_var_file
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
def initialize()
|
8
|
+
def initialize
|
9
|
+
Validations::check_binary!('packer')
|
12
10
|
@user_vars = {}
|
13
|
-
|
14
|
-
unless system("packer version 1>/dev/null")
|
15
|
-
puts(">>> Packer not installed !")
|
16
|
-
exit(1)
|
17
|
-
end
|
18
11
|
end
|
19
12
|
|
20
13
|
#
|
21
14
|
# Add name/value pair to users_vars hash which is going to be used later for packer var-file
|
22
|
-
def
|
15
|
+
def add_user_variable(name, value)
|
23
16
|
unless name.nil? and value.nil?
|
24
17
|
@user_vars[name] = value
|
25
18
|
end
|
@@ -27,81 +20,45 @@ module OpsBuild
|
|
27
20
|
|
28
21
|
#
|
29
22
|
# Run packer build
|
30
|
-
def
|
31
|
-
|
23
|
+
def build(config)
|
24
|
+
options = ''
|
32
25
|
|
33
|
-
|
26
|
+
create_var_file
|
34
27
|
|
35
28
|
unless @user_var_file.nil?
|
36
|
-
|
37
|
-
|
38
|
-
end
|
39
|
-
|
40
|
-
if @packer_log.nil?
|
41
|
-
packer_create_log_file()
|
42
|
-
puts(">>>> Using file #{@packer_log.path} as log file.")
|
43
|
-
end
|
44
|
-
|
45
|
-
unless system("packer build #{packer_options} #{packer_config} | tee -a #{@packer_log.path}")
|
46
|
-
puts(">>>> Packer build failed.")
|
47
|
-
raise
|
29
|
+
OpsBuild.logger.info("Changing packer build with variables file from: #{@user_var_file.path}")
|
30
|
+
options = " -var-file #{@user_var_file.path}"
|
48
31
|
end
|
49
|
-
puts(">>>>> packer run exit $?")
|
50
|
-
end
|
51
32
|
|
52
|
-
|
53
|
-
# Get AMI id by greping log for given string and then getting last value
|
54
|
-
ami = File.foreach(@packer_log.path).grep(/amazon-ebs,artifact.*,id/).first
|
55
|
-
|
56
|
-
if ami.nil?
|
57
|
-
puts(">>>> Packer build failed.")
|
58
|
-
exit(1)
|
59
|
-
else
|
60
|
-
puts(">>>> Packer built ami: #{ami}")
|
61
|
-
ami.chomp.split(':').last
|
62
|
-
end
|
33
|
+
Utils::execute("packer build -color=false -machine-readable #{options} #{config}")
|
63
34
|
end
|
64
35
|
|
65
36
|
#
|
66
37
|
# Validate packer template
|
67
|
-
def
|
68
|
-
|
38
|
+
def validate(config)
|
39
|
+
options = ''
|
69
40
|
|
70
|
-
|
41
|
+
create_var_file
|
71
42
|
|
72
43
|
unless @user_var_file.nil?
|
73
|
-
|
74
|
-
|
44
|
+
OpsBuild.logger.info("Customizing packer build with variable file from: #{@user_var_file.path}")
|
45
|
+
options = "-var-file #{@user_var_file.path}"
|
75
46
|
end
|
76
47
|
|
77
|
-
|
78
|
-
puts(">>> Packer template validation failed !")
|
79
|
-
raise
|
80
|
-
end
|
48
|
+
Utils::execute("packer validate #{options} #{config}")
|
81
49
|
end
|
82
50
|
|
83
51
|
#
|
84
|
-
# Clean user_var-file/
|
85
|
-
def
|
52
|
+
# Clean user_var-file/log from system
|
53
|
+
def cleanup
|
86
54
|
unless @user_var_file.nil?
|
87
55
|
@user_var_file.unlink
|
88
56
|
@user_var_file.close
|
89
57
|
end
|
90
|
-
|
91
|
-
unless @packer_log.nil?
|
92
|
-
@packer_log.unlink
|
93
|
-
@packer_log.close
|
94
|
-
end
|
95
58
|
end
|
96
59
|
|
97
60
|
private
|
98
|
-
def
|
99
|
-
if @packer_log.nil?
|
100
|
-
@packer_log = Tempfile.new('packer-log-file')
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
def packer_create_var_file()
|
61
|
+
def create_var_file
|
105
62
|
if @user_var_file.nil?
|
106
63
|
@user_var_file = Tempfile.new('packer-var-file')
|
107
64
|
@user_var_file.write(@user_vars.to_json)
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module OpsBuild
|
2
|
+
class Runner < Thor
|
3
|
+
class_option :verbose, :type => :boolean
|
4
|
+
|
5
|
+
desc 'build SUBCOMMAND ...ARGS', 'build'
|
6
|
+
subcommand 'build', Commands::Build
|
7
|
+
|
8
|
+
desc 'validate SUBCOMMAND ...ARGS', 'validate'
|
9
|
+
subcommand 'validate', Commands::Validate
|
10
|
+
|
11
|
+
desc 'kitchen SUBCOMMAND ...ARGS', 'kitchen'
|
12
|
+
subcommand 'kitchen', Commands::Kitchen
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module OpsBuild
|
2
|
+
class Utils
|
3
|
+
def self.execute(cmd, log_level: :debug, log_prefix: '', raise_on_failure: true)
|
4
|
+
OpsBuild.logger.debug("Running command '#{cmd}'")
|
5
|
+
_, out, wait_thr = Open3.popen2e(cmd)
|
6
|
+
|
7
|
+
while line = out.gets
|
8
|
+
OpsBuild.logger.__send__(log_level, "#{log_prefix} #{line}")
|
9
|
+
end
|
10
|
+
|
11
|
+
code = wait_thr.value.exitstatus # #value is blocking call
|
12
|
+
raise "Error executing '#{cmd}'. Exit code: #{code}" if code != 0 && raise_on_failure
|
13
|
+
out.close
|
14
|
+
|
15
|
+
code
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/ops_build/vagrant.rb
CHANGED
@@ -0,0 +1,11 @@
|
|
1
|
+
module OpsBuild
|
2
|
+
class Validations
|
3
|
+
def self.not_empty!(val, var_name)
|
4
|
+
raise "'#{var_name}' cannot be empty!" if val.nil? || val.empty?
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.check_binary!(bin)
|
8
|
+
raise "Binary '#{bin}' not found!" if `command -v #{bin}`.empty?
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
data/lib/ops_build/version.rb
CHANGED
data/lib/ops_build.rb
CHANGED
@@ -3,95 +3,38 @@ require 'rubygems'
|
|
3
3
|
require 'fileutils'
|
4
4
|
require 'json'
|
5
5
|
require 'rbconfig'
|
6
|
-
require '
|
6
|
+
require 'tmpdir'
|
7
7
|
require 'thor'
|
8
|
+
require 'open3'
|
8
9
|
require 'yaml'
|
10
|
+
require 'logger'
|
9
11
|
|
10
|
-
|
12
|
+
lib = File.expand_path('..', __FILE__)
|
13
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
14
|
+
|
15
|
+
require 'ops_build/commands/build'
|
16
|
+
require 'ops_build/commands/kitchen'
|
17
|
+
require 'ops_build/commands/validate'
|
18
|
+
require 'ops_build/runner'
|
19
|
+
require 'ops_build/version'
|
11
20
|
require 'ops_build/aws'
|
12
21
|
require 'ops_build/berkshelf'
|
13
22
|
require 'ops_build/chefspec'
|
14
23
|
require 'ops_build/kitchen'
|
15
24
|
require 'ops_build/packer'
|
16
25
|
require 'ops_build/vagrant'
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
packer.packer_validate(template)
|
28
|
-
end
|
29
|
-
|
30
|
-
desc 'build template', 'build packer template'
|
31
|
-
option :ec2_region, :type => :string, :aliases => 'R', :desc => 'AWS EC2 region'
|
32
|
-
option :aws_access, :type => :string, :aliases => 'A', :desc => 'AWS Access key'
|
33
|
-
option :aws_secret, :type => :string, :aliases => 'S', :desc => 'AWS Secret key'
|
34
|
-
option :berk_dir, :type => :string, :aliases => 'b', :desc => 'Berkshelf cookbook directory path'
|
35
|
-
def build_packer(template)
|
36
|
-
packer = OpsBuild::PackerSupport.new
|
37
|
-
berkshelf = OpsBuild::BerkshelfSupport.new
|
38
|
-
aws = OpsBuild::AwsSupport.new
|
39
|
-
|
40
|
-
puts ">> Building VM using packer from template #{template}"
|
41
|
-
|
42
|
-
# Add some config variables
|
43
|
-
packer.packer_add_user_variable(:aws_access_key, options[:aws_access].nil? ? aws.aws_get_access_key : options[:aws_access])
|
44
|
-
packer.packer_add_user_variable(:aws_secret_key, options[:aws_secret].nil? ? aws.aws_get_secret_key : options[:aws_secret])
|
45
|
-
packer.packer_add_user_variable(:aws_region, options[:ec2_region].nil? ? aws.aws_get_ec2_region : options[:ec2_region])
|
46
|
-
packer.packer_add_user_variable(:cookbook_path, berkshelf.berkshelf_dir)
|
47
|
-
|
48
|
-
# Install missing cookbooks
|
49
|
-
berkshelf.berks_install()
|
50
|
-
|
51
|
-
# Load cookbooks to correct dir.
|
52
|
-
berkshelf.berks_vendor()
|
53
|
-
|
54
|
-
begin
|
55
|
-
# Validate packer template
|
56
|
-
packer.packer_validate(template)
|
57
|
-
rescue
|
58
|
-
berkshelf.berks_cleanup()
|
59
|
-
packer.packer_cleanup()
|
60
|
-
exit(1)
|
61
|
-
end
|
62
|
-
puts ">>>> Vendoring cookbooks with berks to #{berkshelf.berkshelf_dir}"
|
63
|
-
|
64
|
-
begin
|
65
|
-
# Run packer
|
66
|
-
packer.packer_build(template)
|
67
|
-
rescue
|
68
|
-
berkshelf.berks_cleanup()
|
69
|
-
packer.packer_cleanup()
|
70
|
-
exit(1)
|
26
|
+
require 'ops_build/validations'
|
27
|
+
require 'ops_build/utils'
|
28
|
+
|
29
|
+
module OpsBuild
|
30
|
+
def self.logger
|
31
|
+
if @logger.nil?
|
32
|
+
@logger = Logger.new(STDOUT)
|
33
|
+
@logger.formatter = proc do |severity, datetime, progname, msg|
|
34
|
+
"[#{severity}] [#{datetime.strftime('%Y-%m-%d %H:%M:%S')}] #{msg.strip}\n"
|
35
|
+
end
|
71
36
|
end
|
72
37
|
|
73
|
-
|
74
|
-
|
75
|
-
puts ">>>> Cleaning up cookbooks/packer files from system."
|
76
|
-
berkshelf.berks_cleanup()
|
77
|
-
packer.packer_cleanup()
|
78
|
-
end
|
79
|
-
|
80
|
-
desc 'cnv suite', 'Run kitchen converge for given suite'
|
81
|
-
def converge_kitchen(suite)
|
82
|
-
kitchen = OpsBuild::KitchenSupport.new
|
83
|
-
kitchen.kitchen_converge(suite)
|
84
|
-
end
|
85
|
-
|
86
|
-
desc 'vrf suite', 'Run kitchen verify for given suite'
|
87
|
-
def verify_kitchen(suite)
|
88
|
-
kitchen = OpsBuild::KitchenSupport.new
|
89
|
-
kitchen.kitchen_verify(suite)
|
90
|
-
end
|
91
|
-
|
92
|
-
desc 'tst suite', 'Run kitchen test for given platform'
|
93
|
-
def test_kitchen(suite)
|
94
|
-
kitchen = OpsBuild::KitchenSupport.new
|
95
|
-
kitchen.kitchen_test(suite)
|
38
|
+
@logger
|
96
39
|
end
|
97
40
|
end
|
data/ops_build.gemspec
CHANGED
@@ -8,9 +8,9 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = OpsBuild::VERSION
|
9
9
|
spec.authors = ['HAMSIK Adam']
|
10
10
|
spec.email = ['adh@rsd.com']
|
11
|
-
spec.summary = %q
|
12
|
-
spec.description = %q
|
13
|
-
spec.homepage =
|
11
|
+
spec.summary = %q(RSD Devops related build tool to run packer, berkshelf)
|
12
|
+
spec.description = %q(RSD Devops related build tool to run packer, berkshelf)
|
13
|
+
spec.homepage = 'http://www.rsd.com'
|
14
14
|
spec.license = 'BSD'
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -20,11 +20,11 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.require_path = 'lib'
|
21
21
|
#spec.require_paths = ['lib']
|
22
22
|
|
23
|
-
spec.add_development_dependency
|
23
|
+
spec.add_development_dependency 'bundler', '~> 1.6'
|
24
24
|
#spec.add_development_dependency "rake"
|
25
25
|
#spec.add_development_dependency "thor"
|
26
26
|
#spec.add_development_dependency "pry"
|
27
27
|
|
28
|
-
spec.add_runtime_dependency 'thor'
|
29
|
-
spec.add_runtime_dependency 'net-scp'
|
28
|
+
spec.add_runtime_dependency 'thor', '~> 0.19.1'
|
29
|
+
#spec.add_runtime_dependency 'net-scp'
|
30
30
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ops_build
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- HAMSIK Adam
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -28,30 +28,16 @@ dependencies:
|
|
28
28
|
name: thor
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
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'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: net-scp
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
31
|
+
- - "~>"
|
46
32
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
33
|
+
version: 0.19.1
|
48
34
|
type: :runtime
|
49
35
|
prerelease: false
|
50
36
|
version_requirements: !ruby/object:Gem::Requirement
|
51
37
|
requirements:
|
52
|
-
- - "
|
38
|
+
- - "~>"
|
53
39
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
40
|
+
version: 0.19.1
|
55
41
|
description: RSD Devops related build tool to run packer, berkshelf
|
56
42
|
email:
|
57
43
|
- adh@rsd.com
|
@@ -65,14 +51,21 @@ files:
|
|
65
51
|
- LICENSE
|
66
52
|
- README.md
|
67
53
|
- Rakefile
|
54
|
+
- TODO
|
68
55
|
- bin/opsbuild
|
69
56
|
- lib/ops_build.rb
|
70
57
|
- lib/ops_build/aws.rb
|
71
58
|
- lib/ops_build/berkshelf.rb
|
72
59
|
- lib/ops_build/chefspec.rb
|
60
|
+
- lib/ops_build/commands/build.rb
|
61
|
+
- lib/ops_build/commands/kitchen.rb
|
62
|
+
- lib/ops_build/commands/validate.rb
|
73
63
|
- lib/ops_build/kitchen.rb
|
74
64
|
- lib/ops_build/packer.rb
|
65
|
+
- lib/ops_build/runner.rb
|
66
|
+
- lib/ops_build/utils.rb
|
75
67
|
- lib/ops_build/vagrant.rb
|
68
|
+
- lib/ops_build/validations.rb
|
76
69
|
- lib/ops_build/version.rb
|
77
70
|
- ops_build.gemspec
|
78
71
|
homepage: http://www.rsd.com
|