opskeleton 0.4.9 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a98118097e8f9673381f953bbb3d69c1e84873de
4
- data.tar.gz: 37266878cf0442b7690d5a640064a8116342e70b
3
+ metadata.gz: 3fa4623b72e3b36881ffec42eae4559298c30752
4
+ data.tar.gz: 2a3acc87e6dbf08893cc6ab979b15fdd77282721
5
5
  SHA512:
6
- metadata.gz: a755d337668e8aa3197838c8ff0633caa6f705b6ac2de50ed86214f756480f1f3dc895a1feb88db354ca0bf8218db9e002faf9efa464f6b69f3bfecae813f492
7
- data.tar.gz: 0f9a8a1283175f192339f6a48089ff88454ba13fa77f7806bc241fd4299ea1dc834707da8e88f5dad92493e793912d4b6ef8452ba6a68c13cf2ffbb82dadd5fe
6
+ metadata.gz: 1d883cd8eb0376787c2fe2410c3e2b12b458fe87487436843e09c4f9da7db840ec3757243d3e67118447b6e3d07cecf53e8f334c0fcbccd7ca9c838ed210d520
7
+ data.tar.gz: 2c949cfabd31d3705a1f5df2604f1d23f8da4286a1dc78bac8ec7af1852f96884ea79276ecbc9a5906fac0b2ec23bce746ffe884993b3c2a5475e4e1348b59bd
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-2.0.0
1
+ ruby-2.1.2
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- opskeleton (0.4.8)
4
+ opskeleton (0.5.0)
5
5
  bintray_deploy
6
6
  thor
7
7
 
@@ -13,19 +13,57 @@ GEM
13
13
  configuration
14
14
  rest-client
15
15
  thor
16
+ chef (11.6.2)
17
+ erubis (~> 2.7)
18
+ highline (~> 1.6, >= 1.6.9)
19
+ json (>= 1.4.4, <= 1.7.7)
20
+ mixlib-authentication (~> 1.3)
21
+ mixlib-cli (~> 1.3)
22
+ mixlib-config (~> 1.1, >= 1.1.2)
23
+ mixlib-log (~> 1.3)
24
+ mixlib-shellout (~> 1.1)
25
+ net-ssh (~> 2.6)
26
+ net-ssh-multi (~> 1.1.0)
27
+ ohai (>= 0.6.0, < 7.0.0)
28
+ rest-client (>= 1.0.4, < 1.7.0)
29
+ yajl-ruby (~> 1.1)
16
30
  coderay (1.1.0)
17
31
  configuration (1.3.4)
18
32
  diff-lcs (1.2.5)
33
+ erubis (2.7.0)
19
34
  facter (2.0.1)
20
35
  CFPropertyList (~> 2.2.6)
21
36
  hiera (1.3.2)
22
37
  json_pure
38
+ highline (1.6.21)
39
+ ipaddress (0.8.0)
40
+ json (1.7.7)
23
41
  json_pure (1.8.1)
24
42
  metaclass (0.0.4)
25
43
  method_source (0.8.2)
26
44
  mime-types (2.2)
45
+ mixlib-authentication (1.3.0)
46
+ mixlib-log
47
+ mixlib-cli (1.5.0)
48
+ mixlib-config (1.1.2)
49
+ mixlib-log (1.6.0)
50
+ mixlib-shellout (1.4.0)
27
51
  mocha (1.0.0)
28
52
  metaclass (~> 0.0.1)
53
+ net-ssh (2.9.1)
54
+ net-ssh-gateway (1.2.0)
55
+ net-ssh (>= 2.6.5)
56
+ net-ssh-multi (1.1)
57
+ net-ssh (>= 2.1.4)
58
+ net-ssh-gateway (>= 0.99.0)
59
+ ohai (6.22.0)
60
+ ipaddress
61
+ mixlib-cli
62
+ mixlib-config
63
+ mixlib-log
64
+ mixlib-shellout
65
+ systemu (~> 2.5.2)
66
+ yajl-ruby
29
67
  pry (0.9.12.6)
30
68
  coderay (~> 1.0)
31
69
  method_source (~> 0.8)
@@ -55,12 +93,15 @@ GEM
55
93
  rspec-puppet (1.0.1)
56
94
  rspec
57
95
  slop (3.5.0)
96
+ systemu (2.5.2)
58
97
  thor (0.19.1)
98
+ yajl-ruby (1.2.1)
59
99
 
60
100
  PLATFORMS
61
101
  ruby
62
102
 
63
103
  DEPENDENCIES
104
+ chef
64
105
  opskeleton!
65
106
  pry
66
107
  puppet
data/README.md CHANGED
@@ -35,7 +35,7 @@ Creating out first sandbox
35
35
  ```bash
36
36
  $ rvm use system
37
37
  # parameters include name vagrant-box
38
- $ opsk generate redis ubuntu-13.10
38
+ $ opsk generate_puppet redis ubuntu-13.10
39
39
  $ cd redis-sandbox
40
40
  $ bundle install
41
41
  $ librarian-puppet install
@@ -91,7 +91,7 @@ $ rake spec
91
91
  Opskelaton fully supports deployment and portable execution of sandboxes on non Vagrant environments:
92
92
 
93
93
  ```bash
94
- $ opsk generate foo ubuntu-13.10
94
+ $ opsk generate_puppet foo ubuntu-13.10
95
95
  $ cd foo-sandbox
96
96
  # The package version file
97
97
  $ cat opsk.yaml
data/bin/opsk CHANGED
@@ -10,7 +10,8 @@ require 'opskeleton'
10
10
  module Opsk
11
11
  class Root < Thor
12
12
 
13
- register Opsk::Generate, 'generate', "generate [name] [box]", 'generates opskelaton project structure'
13
+ register Opsk::GeneratePuppet, 'generate_puppet', "generate_puppet [name] [box]", 'generates a Puppet based project '
14
+ register Opsk::GenerateChef, 'generate_chef', "generate_chef [name] [box]", 'generates a Chef based project '
14
15
  register Opsk::Module, 'module', 'module [name]', 'generate an rspec ready Puppet module'
15
16
  register Opsk::Package, 'package', 'package', 'packages current module for celestial'
16
17
  register Opsk::Clean, 'clean', 'clean', 'cleans up packaging products'
@@ -25,6 +26,7 @@ module Opsk
25
26
  end
26
27
 
27
28
  # not sure that this is the cleanest way
28
- Opsk::Root.tasks['generate'].options = Opsk::Generate.class_options
29
+ Opsk::Root.tasks['generate_puppet'].options = Opsk::GeneratePuppet.class_options
30
+ Opsk::Root.tasks['generate_chef'].options = Opsk::GenerateChef.class_options
29
31
 
30
32
  Opsk::Root.start ARGV
@@ -0,0 +1,77 @@
1
+ module Opsk
2
+ class GenerateChef < Thor::Group
3
+ include Thorable, Thor::Actions
4
+
5
+ argument :name, :type => :string, :desc => 'project name'
6
+ argument :box, :type => :string, :desc => 'Vagrant box type'
7
+ class_option :box_url, :type=> :string, :desc => 'vagrant box url'
8
+ class_option :os_type, :type=> :string, :desc => 'Operating system type (bsd/linux)'
9
+
10
+ desc 'Generate a Vagrant, Chef librarian and fpm project'
11
+
12
+ def path
13
+ "#{name}-sandbox"
14
+ end
15
+
16
+ def create_vagrant_file
17
+ empty_directory(path)
18
+ template('templates/chef/vagrant.erb', "#{path}/Vagrantfile")
19
+ end
20
+
21
+ def create_gemfile
22
+ copy_file('templates/chef/gemfile', "#{path}/Gemfile")
23
+ end
24
+
25
+ def create_rakefile
26
+ copy_file('templates/Rakefile', "#{path}/Rakefile")
27
+ end
28
+
29
+ def create_version
30
+ template('templates/opsk.yml', "#{path}/opsk.yml")
31
+ end
32
+
33
+ def create_rvmrc
34
+ remove_file("#{path}/.rvmrc")
35
+ template('templates/ruby-gemset.erb', "#{path}/.ruby-gemset")
36
+ template('templates/ruby-version.erb', "#{path}/.ruby-version")
37
+ end
38
+
39
+ def create_chef_base
40
+ empty_directory("#{path}/static-cookbooks/")
41
+ copy_file('templates/chef/Cheffile', "#{path}/Cheffile")
42
+ empty_directory("#{path}/roles/")
43
+ template('templates/chef/roles.erb', "#{path}/roles/#{name}.rb")
44
+ template('templates/chef/dna.json.erb', "#{path}/dna.json")
45
+ copy_file('templates/chef/run.sh', "#{path}/run.sh")
46
+ copy_file('templates/chef/solo.rb', "#{path}/solo.rb")
47
+ copy_file('templates/boot.sh', "#{path}/boot.sh")
48
+ chmod("#{path}/run.sh", 0755)
49
+ chmod("#{path}/boot.sh", 0755)
50
+ end
51
+
52
+ def readme
53
+ template('templates/README.erb', "#{path}/README.md")
54
+ copy_file('templates/LICENSE-2.0.txt',"#{path}/LICENSE-2.0.txt")
55
+ end
56
+
57
+ def travis
58
+ template('templates/parent/travis.erb', "#{path}/.travis.yml")
59
+ end
60
+
61
+ def server_spec
62
+ directory('templates/parent/spec', "#{path}/spec")
63
+ end
64
+
65
+ def git
66
+ if(!File.exists?("#{path}/.git"))
67
+ copy_file('templates/gitignore', "#{path}/.gitignore")
68
+ inside(path) do
69
+ run('git init .')
70
+ run('git add -A')
71
+ run("git commit -m 'initial sandbox import'")
72
+ end
73
+ end
74
+ end
75
+
76
+ end
77
+ end
@@ -1,5 +1,5 @@
1
1
  module Opsk
2
- class Generate < Thor::Group
2
+ class GeneratePuppet < Thor::Group
3
3
  include Thorable, Thor::Actions
4
4
 
5
5
  argument :name, :type => :string, :desc => 'project name'
@@ -1,3 +1,3 @@
1
1
  module Opskeleton
2
- VERSION = '0.4.9'
2
+ VERSION = '0.5.0'
3
3
  end
data/lib/opskeleton.rb CHANGED
@@ -7,7 +7,8 @@ require 'opskeleton/thorable'
7
7
  require 'opskeleton/package'
8
8
  require 'opskeleton/clean'
9
9
  require 'opskeleton/bump'
10
- require 'opskeleton/generate'
10
+ require 'opskeleton/generate_puppet'
11
+ require 'opskeleton/generate_chef'
11
12
  require 'opskeleton/deploy'
12
13
  require 'opskeleton/module'
13
14
 
data/opskeleton.gemspec CHANGED
@@ -14,6 +14,7 @@ Gem::Specification.new do |gem|
14
14
  gem.add_dependency('thor')
15
15
  gem.add_dependency('bintray_deploy')
16
16
  gem.add_development_dependency('puppet')
17
+ gem.add_development_dependency('chef')
17
18
  gem.add_development_dependency('rspec-puppet')
18
19
  gem.add_development_dependency('puppetlabs_spec_helper', '>= 0.1.0')
19
20
  gem.add_development_dependency('pry')
@@ -0,0 +1,3 @@
1
+ site 'http://community.opscode.com/api/v1'
2
+
3
+ cookbook 'apt'
@@ -0,0 +1,5 @@
1
+ {
2
+ "run_list": [
3
+ "role[<%=name%>]"
4
+ ]
5
+ }
@@ -0,0 +1,14 @@
1
+ source "https://rubygems.org"
2
+
3
+ # base
4
+ gem 'chef'
5
+
6
+ # testing
7
+ gem 'serverspec'
8
+ gem 'test-kitchen'
9
+
10
+ # build
11
+ gem 'rake'
12
+ gem 'foodcritic'
13
+ gem 'librarian-chef'
14
+ gem 'opskeleton'
@@ -0,0 +1,5 @@
1
+ cookbooks
2
+ .vagrant
3
+ .librarian
4
+ .tmp
5
+ pkg
@@ -0,0 +1,2 @@
1
+
2
+ run_list()
@@ -0,0 +1 @@
1
+ chef-solo -c solo.rb -j dna.json
@@ -0,0 +1,5 @@
1
+ file_cache_path "#{Dir.pwd}/chef"
2
+ cookbook_path ["#{Dir.pwd}/cookbooks","#{Dir.pwd}/static-cookbooks"]
3
+ role_path "#{Dir.pwd}/roles/"
4
+ log_level :info
5
+ log_location STDOUT
@@ -0,0 +1,25 @@
1
+ # -*- mode: ruby -*-
2
+ # vi: set ft=ruby :
3
+ Vagrant.configure("2") do |config|
4
+
5
+ bridge = ENV['VAGRANT_BRIDGE']
6
+ bridge ||= 'eth0'
7
+ env = ENV['PUPPET_ENV']
8
+ env ||= 'dev'
9
+
10
+ config.vm.box = '<%=box%>' <%if(options['box_url']) %>
11
+ <%="config.vm.box_url = '#{options['box_url']}'"%> <%end%>
12
+ config.vm.network :public_network, :bridge => bridge
13
+ config.vm.hostname = '<%=name%>.local'
14
+
15
+ config.vm.provider :virtualbox do |vb|
16
+ vb.customize ['modifyvm', :id, '--memory', 2048, '--cpus', 2]
17
+ end
18
+
19
+ config.vm.provision :chef_solo do |chef|
20
+ chef.cookbooks_path = ['static-cookbooks', 'cookbooks']
21
+ chef.roles_path = 'roles'
22
+ chef.add_role('<%=name%>')
23
+ end
24
+
25
+ end
@@ -0,0 +1,34 @@
1
+ $LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib'
2
+
3
+ require 'minitest/autorun'
4
+ require_relative 'test_helper'
5
+ require 'fileutils'
6
+
7
+ class ChefPackageTest < MiniTest::Unit::TestCase
8
+ include FileUtils
9
+
10
+ def setup
11
+ Opsk::Root.start ['generate_chef', 'foo', 'bar']
12
+ end
13
+
14
+ def teardown
15
+ rm_rf 'foo-sandbox'
16
+ end
17
+
18
+ def with_cwd(dir)
19
+ Dir.chdir dir do
20
+ yield
21
+ end
22
+ end
23
+
24
+ def test_build
25
+ with_cwd 'foo-sandbox' do
26
+ Opsk::Root.start ['package']
27
+ end
28
+ assert File.exists?('foo-sandbox/pkg/foo-sandbox-0.0.1/Cheffile')
29
+ assert File.exists?('foo-sandbox/pkg/foo-sandbox-0.0.1/roles/foo.rb')
30
+ assert File.exists?('foo-sandbox/pkg/foo-sandbox-0.0.1/dna.json')
31
+ assert File.exists?('foo-sandbox/pkg/foo-sandbox-0.0.1.tar.gz')
32
+ end
33
+
34
+ end
@@ -8,7 +8,7 @@ class GenerateTest< MiniTest::Unit::TestCase
8
8
  include FileUtils
9
9
 
10
10
  def setup
11
- Opsk::Root.start ['generate', 'foo', 'bar']
11
+ Opsk::Root.start ['generate_puppet', 'foo', 'bar']
12
12
  end
13
13
 
14
14
  def teardown
@@ -4,18 +4,18 @@ require 'minitest/autorun'
4
4
  require_relative 'test_helper'
5
5
  require 'fileutils'
6
6
 
7
- class PackageTest < MiniTest::Unit::TestCase
7
+ class PuppetPackageTest < MiniTest::Unit::TestCase
8
8
  include FileUtils
9
9
 
10
10
  def setup
11
- Opsk::Root.start ['generate', 'foo', 'bar']
11
+ Opsk::Root.start ['generate_puppet', 'foo', 'bar']
12
12
  end
13
13
 
14
14
  def teardown
15
15
  rm_rf 'foo-sandbox'
16
16
  end
17
17
 
18
- def with_cwd dir
18
+ def with_cwd(dir)
19
19
  Dir.chdir dir do
20
20
  yield
21
21
  end
data/test/test_helper.rb CHANGED
@@ -6,7 +6,8 @@ require 'opskeleton'
6
6
 
7
7
  module Opsk
8
8
  class Root < Thor
9
- register Opsk::Generate, 'generate', 'generate [name] [box]', 'generates opskelaton project structure'
9
+ register Opsk::GeneratePuppet, 'generate_puppet', 'generate_puppet [name] [box]', 'generates opskelaton project structure'
10
+ register Opsk::GenerateChef, 'generate_chef', 'generate_chef [name] [box]', 'generates opskelaton project structure'
10
11
  register Opsk::Package, 'package', 'package', 'packages current module for celestial'
11
12
 
12
13
  end
metadata CHANGED
@@ -1,97 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opskeleton
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.9
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - narkisr
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-28 00:00:00.000000000 Z
11
+ date: 2014-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bintray_deploy
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: puppet
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: chef
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
53
67
  - !ruby/object:Gem::Version
54
68
  version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rspec-puppet
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - '>='
73
+ - - ">="
60
74
  - !ruby/object:Gem::Version
61
75
  version: '0'
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - '>='
80
+ - - ">="
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: puppetlabs_spec_helper
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - '>='
87
+ - - ">="
74
88
  - !ruby/object:Gem::Version
75
89
  version: 0.1.0
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - '>='
94
+ - - ">="
81
95
  - !ruby/object:Gem::Version
82
96
  version: 0.1.0
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: pry
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - '>='
101
+ - - ">="
88
102
  - !ruby/object:Gem::Version
89
103
  version: '0'
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - '>='
108
+ - - ">="
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
97
111
  description: A generator for ops projects that include vagrant puppet and fpm
@@ -102,10 +116,10 @@ executables:
102
116
  extensions: []
103
117
  extra_rdoc_files: []
104
118
  files:
105
- - .gitignore
106
- - .ruby-gemset
107
- - .ruby-version
108
- - .travis.yml
119
+ - ".gitignore"
120
+ - ".ruby-gemset"
121
+ - ".ruby-version"
122
+ - ".travis.yml"
109
123
  - CHANGES.md
110
124
  - Gemfile
111
125
  - Gemfile.lock
@@ -119,7 +133,8 @@ files:
119
133
  - lib/opskeleton/bump.rb
120
134
  - lib/opskeleton/clean.rb
121
135
  - lib/opskeleton/deploy.rb
122
- - lib/opskeleton/generate.rb
136
+ - lib/opskeleton/generate_chef.rb
137
+ - lib/opskeleton/generate_puppet.rb
123
138
  - lib/opskeleton/module.rb
124
139
  - lib/opskeleton/package.rb
125
140
  - lib/opskeleton/thorable.rb
@@ -129,6 +144,14 @@ files:
129
144
  - templates/README.erb
130
145
  - templates/Rakefile
131
146
  - templates/boot.sh
147
+ - templates/chef/Cheffile
148
+ - templates/chef/dna.json.erb
149
+ - templates/chef/gemfile
150
+ - templates/chef/gitignore
151
+ - templates/chef/roles.erb
152
+ - templates/chef/run.sh
153
+ - templates/chef/solo.rb
154
+ - templates/chef/vagrant.erb
132
155
  - templates/clean.yaml
133
156
  - templates/gemfile
134
157
  - templates/gitignore
@@ -151,8 +174,9 @@ files:
151
174
  - templates/spec.erb
152
175
  - templates/vagrant.erb
153
176
  - templates/vagrant_bsd.erb
177
+ - test/chef_package_test.rb
154
178
  - test/generate_test.rb
155
- - test/package_test.rb
179
+ - test/puppet_package_test.rb
156
180
  - test/test_helper.rb
157
181
  homepage: https://github.com/narkisr/opskeleton
158
182
  licenses: []
@@ -163,21 +187,22 @@ require_paths:
163
187
  - lib
164
188
  required_ruby_version: !ruby/object:Gem::Requirement
165
189
  requirements:
166
- - - '>='
190
+ - - ">="
167
191
  - !ruby/object:Gem::Version
168
192
  version: '0'
169
193
  required_rubygems_version: !ruby/object:Gem::Requirement
170
194
  requirements:
171
- - - '>='
195
+ - - ">="
172
196
  - !ruby/object:Gem::Version
173
197
  version: '0'
174
198
  requirements: []
175
199
  rubyforge_project:
176
- rubygems_version: 2.0.14
200
+ rubygems_version: 2.2.2
177
201
  signing_key:
178
202
  specification_version: 4
179
203
  summary: A generator for ops projects that include vagrant puppet and fpm
180
204
  test_files:
205
+ - test/chef_package_test.rb
181
206
  - test/generate_test.rb
182
- - test/package_test.rb
207
+ - test/puppet_package_test.rb
183
208
  - test/test_helper.rb