opskeleton 0.4.9 → 0.5.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 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