opskeleton 0.9.8 → 0.9.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Gemfile.lock +67 -151
- data/README.md +3 -3
- data/autocomplete/_opsk +11 -0
- data/bin/opsk +3 -3
- data/docs/doc.adoc +27 -135
- data/lib/opskeleton.rb +2 -2
- data/lib/opskeleton/analyze.rb +18 -0
- data/lib/opskeleton/clean.rb +0 -8
- data/lib/opskeleton/package.rb +4 -18
- data/lib/opskeleton/thorable.rb +1 -2
- data/lib/opskeleton/update.rb +27 -0
- data/lib/opskeleton/version.rb +1 -1
- data/opskeleton.gemspec +6 -8
- data/test/test_helper.rb +0 -1
- metadata +20 -61
- data/lib/opskeleton/dockerize.rb +0 -29
- data/lib/opskeleton/generate_chef.rb +0 -85
- data/templates/chef/Cheffile +0 -3
- data/templates/chef/Gemfile.erb +0 -21
- data/templates/chef/Rakefile.erb +0 -76
- data/templates/chef/boot.sh +0 -4
- data/templates/chef/dna.json.erb +0 -5
- data/templates/chef/environments/dev.rb +0 -4
- data/templates/chef/gitignore +0 -5
- data/templates/chef/opsk.yaml +0 -18
- data/templates/chef/roles.erb +0 -2
- data/templates/chef/run.sh +0 -1
- data/templates/chef/solo.rb +0 -6
- data/templates/chef/ubuntu_docker.erb +0 -15
- data/templates/chef/vagrant.erb +0 -28
- data/templates/fig.yml.erb +0 -5
- data/test/chef_package_test.rb +0 -41
data/templates/chef/Cheffile
DELETED
data/templates/chef/Gemfile.erb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
source "https://rubygems.org"
|
2
|
-
|
3
|
-
# base
|
4
|
-
gem 'chef'
|
5
|
-
|
6
|
-
group :testing do
|
7
|
-
gem 'serverspec', '~> 1.14.0'
|
8
|
-
gem 'test-kitchen'
|
9
|
-
end
|
10
|
-
|
11
|
-
group :build do
|
12
|
-
gem 'rake'
|
13
|
-
gem 'foodcritic'
|
14
|
-
gem 'librarian-chef'
|
15
|
-
gem 'opskeleton'
|
16
|
-
end
|
17
|
-
|
18
|
-
<% if(@options[:bench_enable]) %>
|
19
|
-
gem 'gruff', :group => :benchmark
|
20
|
-
<% end %>
|
21
|
-
|
data/templates/chef/Rakefile.erb
DELETED
@@ -1,76 +0,0 @@
|
|
1
|
-
require 'rake'
|
2
|
-
require 'rspec/core/rake_task'
|
3
|
-
|
4
|
-
RSpec::Core::RakeTask.new(:spec) do |t|
|
5
|
-
t.pattern = 'spec/*/*_spec.rb'
|
6
|
-
end
|
7
|
-
|
8
|
-
task :default => :spec
|
9
|
-
|
10
|
-
desc "Run serverspec to all hosts"
|
11
|
-
task :spec => 'serverspec:all'
|
12
|
-
|
13
|
-
class ServerspecTask < RSpec::Core::RakeTask
|
14
|
-
|
15
|
-
attr_accessor :target
|
16
|
-
|
17
|
-
def spec_command
|
18
|
-
cmd = super
|
19
|
-
"env TARGET_HOST=#{target} #{cmd}"
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
namespace :serverspec do
|
25
|
-
|
26
|
-
%w(<%=@name%>).each do |profile|
|
27
|
-
ServerspecTask.new(profile.to_sym) do |t|
|
28
|
-
t.target = profile
|
29
|
-
t.pattern = "spec/#{profile}/*_spec.rb"
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
<% if(@options[:bench_enable]) %>
|
35
|
-
require 'gruff'
|
36
|
-
require 'json'
|
37
|
-
|
38
|
-
PLOTS = 'plots'
|
39
|
-
|
40
|
-
namespace :plot do
|
41
|
-
|
42
|
-
directory PLOTS
|
43
|
-
|
44
|
-
task :hosts => [PLOTS] do
|
45
|
-
hosts = IO.readlines('benchmark.json').map {|b|
|
46
|
-
JSON.parse(b,{:symbolize_names => true })
|
47
|
-
}.group_by {|m|
|
48
|
-
m[:host]
|
49
|
-
}
|
50
|
-
|
51
|
-
g = Gruff::Line.new
|
52
|
-
g.title = 'All Hosts side by side'
|
53
|
-
g.labels = Hash[hosts.keys.each_with_index.map {|i,h| [h , i]}]
|
54
|
-
g.labels.each_pair {|i, l|
|
55
|
-
g.data(l, hosts[l].map {|h| h[:total] })
|
56
|
-
}
|
57
|
-
g.write("#{PLOTS}/all_hosts.png")
|
58
|
-
end
|
59
|
-
|
60
|
-
task :per_host => [PLOTS] do
|
61
|
-
hosts = IO.readlines('benchmark.json').map {|b|
|
62
|
-
JSON.parse(b,{:symbolize_names => true })
|
63
|
-
}.group_by {|m|
|
64
|
-
m[:host]
|
65
|
-
}
|
66
|
-
|
67
|
-
hosts.each_pair {|h,data|
|
68
|
-
g = Gruff::Line.new
|
69
|
-
g.title = h
|
70
|
-
g.labels = {0 => h}
|
71
|
-
g.data(h, data.map {|d| d[:total] })
|
72
|
-
g.write("#{PLOTS}/#{h}.png")
|
73
|
-
}
|
74
|
-
end
|
75
|
-
end
|
76
|
-
<% end %>
|
data/templates/chef/boot.sh
DELETED
data/templates/chef/dna.json.erb
DELETED
data/templates/chef/gitignore
DELETED
data/templates/chef/opsk.yaml
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
---
|
2
|
-
version: '0.0.1'
|
3
|
-
name: <%= name %>
|
4
|
-
includes:
|
5
|
-
- Cheffile
|
6
|
-
- cookbooks
|
7
|
-
- static-cookbooks
|
8
|
-
- dna.json
|
9
|
-
- environments
|
10
|
-
- Gemfile
|
11
|
-
- Gemfile.lock
|
12
|
-
- opsk.yaml
|
13
|
-
- roles
|
14
|
-
- LICENSE-2.0.txt
|
15
|
-
- run.sh
|
16
|
-
- boot.sh
|
17
|
-
- solo.rb
|
18
|
-
|
data/templates/chef/roles.erb
DELETED
data/templates/chef/run.sh
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
chef-solo -c solo.rb -j dna.json -E $1
|
data/templates/chef/solo.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
FROM <%=from%>
|
2
|
-
|
3
|
-
RUN locale-gen en_US en_US.UTF-8
|
4
|
-
|
5
|
-
RUN apt-get -q update
|
6
|
-
RUN apt-mark hold initscripts udev plymouth mountall
|
7
|
-
RUN apt-get -qy --force-yes dist-upgrade
|
8
|
-
RUN apt-get install wget -y
|
9
|
-
RUN wget --no-check-certificate https://gist.githubusercontent.com/narkisr/5e37903f1d1bf386ceb5/raw/4dc04c9d76dc639df2d23ab3cecf3dc1d574c916/chef-preq.sh -P /tmp
|
10
|
-
RUN chmod +x /tmp/chef-preq.sh
|
11
|
-
RUN /bin/bash -x /tmp/chef-preq.sh
|
12
|
-
|
13
|
-
ADD <%=artifact_path%> /tmp
|
14
|
-
RUN chmod +x /tmp/<%=artifact%>/run.sh
|
15
|
-
RUN cd /tmp/<%=artifact%> && ./run.sh dev
|
data/templates/chef/vagrant.erb
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
# -*- mode: ruby -*-
|
2
|
-
# vi: set ft=ruby :
|
3
|
-
Vagrant.configure("2") do |config|
|
4
|
-
config.vm.define :<%=name%> do |node|
|
5
|
-
bridge = ENV['VAGRANT_BRIDGE']
|
6
|
-
bridge ||= 'eth0'
|
7
|
-
env = ENV['CHEF_ENV']
|
8
|
-
env ||= 'dev'
|
9
|
-
|
10
|
-
node.vm.box = '<%=box%>' <%if(options['box_url']) %>
|
11
|
-
<%="node.vm.box_url = '#{options['box_url']}'"%> <%end%>
|
12
|
-
node.vm.network :public_network, :bridge => bridge
|
13
|
-
node.vm.hostname = '<%=name%>.local'
|
14
|
-
|
15
|
-
node.vm.provider :virtualbox do |vb|
|
16
|
-
vb.customize ['modifyvm', :id, '--memory', 2048, '--cpus', 2]
|
17
|
-
end
|
18
|
-
|
19
|
-
node.vm.provision :chef_solo do |chef|
|
20
|
-
chef.cookbooks_path = ['static-cookbooks', 'cookbooks']
|
21
|
-
chef.roles_path = 'roles'
|
22
|
-
chef.add_role('<%=name%>')
|
23
|
-
chef.environment = env
|
24
|
-
chef.environments_path = 'environments'
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|
data/templates/fig.yml.erb
DELETED
data/test/chef_package_test.rb
DELETED
@@ -1,41 +0,0 @@
|
|
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
|
-
Dir.mkdir('foo-sandbox/cookbooks')
|
13
|
-
FileUtils.touch('foo-sandbox/cookbooks/1')
|
14
|
-
FileUtils.touch('foo-sandbox/Gemfile.lock')
|
15
|
-
end
|
16
|
-
|
17
|
-
def teardown
|
18
|
-
rm_rf 'foo-sandbox'
|
19
|
-
end
|
20
|
-
|
21
|
-
def with_cwd(dir)
|
22
|
-
Dir.chdir dir do
|
23
|
-
yield
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_build
|
28
|
-
with_cwd 'foo-sandbox' do
|
29
|
-
Opsk::Root.start ['package']
|
30
|
-
end
|
31
|
-
assert File.exists?('foo-sandbox/pkg/foo-sandbox-0.0.1/Cheffile')
|
32
|
-
assert File.exists?('foo-sandbox/pkg/foo-sandbox-0.0.1/roles/foo.rb')
|
33
|
-
assert File.exists?('foo-sandbox/pkg/foo-sandbox-0.0.1/boot.sh')
|
34
|
-
assert Dir.exists?('foo-sandbox/pkg/foo-sandbox-0.0.1/cookbooks')
|
35
|
-
assert Dir.exists?('foo-sandbox/pkg/foo-sandbox-0.0.1/environments')
|
36
|
-
assert File.exists?('foo-sandbox/pkg/foo-sandbox-0.0.1/dna.json')
|
37
|
-
assert File.exists?('foo-sandbox/pkg/foo-sandbox-0.0.1/environments/dev.rb')
|
38
|
-
assert File.exists?('foo-sandbox/pkg/foo-sandbox-0.0.1.tar.gz')
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|