chef-tlc-workflow 0.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.
- data/.gitignore +18 -0
- data/Gemfile +7 -0
- data/LICENSE.txt +22 -0
- data/README.md +93 -0
- data/Rakefile +110 -0
- data/Vagrantfile +33 -0
- data/chef-tlc-workflow.gemspec +52 -0
- data/docs/ApplicationVsLibraryVsForkedCookbooks.md +20 -0
- data/docs/TmpLibrarianHelpers.md +21 -0
- data/docs/TmpWorkflowTasks.md +80 -0
- data/lib/chef-tlc-workflow.rb +5 -0
- data/lib/chef-tlc-workflow/helpers.rb +126 -0
- data/lib/chef-tlc-workflow/version.rb +3 -0
- data/lib/chef-workflow/tasks/tlc.rb +4 -0
- data/lib/chef-workflow/tasks/tlc/deps.rb +100 -0
- data/lib/chef-workflow/tasks/tlc/test.rb +15 -0
- data/test/Gemfile +7 -0
- data/test/ec2-bootstrap/.chef/bootstrap/omnibus-chef.sh +34 -0
- data/test/ec2-bootstrap/.gitignore +3 -0
- data/test/ec2-bootstrap/Mccloudfile +60 -0
- data/test/ec2-bootstrap/Rakefile +57 -0
- data/test/ec2-bootstrap/app_cookbooks.yml +12 -0
- data/test/esx-bootstrap/.chef/knife.rb +7 -0
- data/test/esx-bootstrap/.gitignore +4 -0
- data/test/esx-bootstrap/Rakefile +64 -0
- data/test/esx-bootstrap/app_cookbooks.yml +12 -0
- data/test/esx-bootstrap/nodes/33.33.77.10.json +6 -0
- data/test/local-bootstrap/.gitignore +4 -0
- data/test/local-bootstrap/Rakefile +50 -0
- data/test/local-bootstrap/Vagrantfile +31 -0
- data/test/local-bootstrap/app_cookbooks.yml +12 -0
- data/test/sample-app/CHANGELOG.md +12 -0
- data/test/sample-app/Cheffile +15 -0
- data/test/sample-app/README.md +20 -0
- data/test/sample-app/attributes/default.rb +2 -0
- data/test/sample-app/metadata.rb +10 -0
- data/test/sample-app/recipes/default.rb +27 -0
- data/test/sample-app/templates/default/sample.html.erb +10 -0
- metadata +331 -0
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'bundler/setup'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'chef-workflow/tasks/tlc/deps'
|
4
|
+
require 'chef-tlc-workflow/helpers'
|
5
|
+
|
6
|
+
desc "resolve application cookbook with all its dependencies"
|
7
|
+
task :resolve_deps, [:app_cookbook] do |t, args|
|
8
|
+
Rake::Task["tlc:deps:resolve_app_cookbook"].invoke(args[:app_cookbook])
|
9
|
+
end
|
10
|
+
|
11
|
+
desc "bootstrap a server with Chef, does not provision (will ask for password if no key provided)"
|
12
|
+
task :bootstrap, [:host, :user, :ssh_key] do |t, args|
|
13
|
+
host, user = get_required_args(args, :host, :user)
|
14
|
+
sh "knife solo prepare #{user}@#{host} #{ssh_key_cmdline(args)} --bootstrap-version 10.18.2-1 --no-librarian -V"
|
15
|
+
end
|
16
|
+
|
17
|
+
desc "provision a server with data from `nodes/<host>.json` (will ask for password if no key provided)"
|
18
|
+
task :provision, [:app_cookbook, :host, :user, :ssh_key] do |t, args|
|
19
|
+
app_cookbook, host, user = get_required_args(args, :app_cookbook, :host, :user)
|
20
|
+
name, version = ChefTLCWorkflow::Helpers::parse_name_and_version(args[:app_cookbook])
|
21
|
+
with_app "#{name}-#{version}" do
|
22
|
+
sh "knife solo cook #{user}@#{host} #{ssh_key_cmdline(args)} --no-chef-check --no-librarian -V"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
desc "remove Chef-solo cookbook traces from the server (will ask for password if no key provided)"
|
27
|
+
task :cleanup, [:host, :user, :ssh_key] do |t, args|
|
28
|
+
host, user = get_required_args(args, :host, :user)
|
29
|
+
sh "knife solo clean #{user}@#{host} #{ssh_key_cmdline(args)} -V"
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
#
|
34
|
+
# helper methods below
|
35
|
+
#
|
36
|
+
def get_required_args(args, *param_keys)
|
37
|
+
param_values = Array.new
|
38
|
+
param_keys.each do |param_key|
|
39
|
+
fail "parameter #{param_key.to_sym} is required" unless args[param_key.to_sym]
|
40
|
+
param_values << args[param_key.to_sym]
|
41
|
+
end
|
42
|
+
param_values
|
43
|
+
end
|
44
|
+
|
45
|
+
def ssh_key_cmdline(args)
|
46
|
+
args[:ssh_key] ? "-i #{args[:ssh_key]}" : ""
|
47
|
+
end
|
48
|
+
|
49
|
+
#
|
50
|
+
# rewrites solo.rb with the cookbook_path adapted
|
51
|
+
# for the given app cookbook while the block executes
|
52
|
+
#
|
53
|
+
def with_app(app_cookbook)
|
54
|
+
File.open("solo.rb", 'w') {|f| f.write(<<-EOF) }
|
55
|
+
base = File.expand_path('..', __FILE__)
|
56
|
+
data_bag_path base + '/data_bags'
|
57
|
+
encrypted_data_bag_secret base + '/data_bag_key'
|
58
|
+
role_path base + '/roles'
|
59
|
+
cookbook_path base + '/cookbooks/#{app_cookbook}'
|
60
|
+
EOF
|
61
|
+
yield
|
62
|
+
ensure
|
63
|
+
FileUtils.rm_rf "solo.rb"
|
64
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
|
2
|
+
- name: "sample-app"
|
3
|
+
version: "0.1.0"
|
4
|
+
path: "../sample-app"
|
5
|
+
# git: "https://github.com/tknerr/sample-app-tlc.git"
|
6
|
+
# ref: "v0.1.0"
|
7
|
+
|
8
|
+
- name: "sample-app"
|
9
|
+
version: "0.2.0"
|
10
|
+
path: "../sample-app"
|
11
|
+
# git: "https://github.com/tknerr/sample-app-tlc.git"
|
12
|
+
# ref: "v0.2.0"
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'bundler/setup'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'chef-workflow/tasks/tlc/deps'
|
4
|
+
|
5
|
+
desc "resolve application cookbook with all its dependencies"
|
6
|
+
task :resolve_deps, [:app_cookbook] do |t, args|
|
7
|
+
Rake::Task["tlc:deps:resolve_app_cookbook"].invoke(args[:app_cookbook])
|
8
|
+
end
|
9
|
+
|
10
|
+
desc "bring up the vagrant \"VM\" as configured in the Vagrantfile"
|
11
|
+
task :up, [:vm_name] do |t, args|
|
12
|
+
vm_name = get_required_args(args, :vm_name)
|
13
|
+
sh "vagrant up #{vm_name}"
|
14
|
+
end
|
15
|
+
|
16
|
+
desc "provision the vagrant \"VM\" with the provisioners as defined in the Vagrantfile"
|
17
|
+
task :provision, [:vm_name] do |t, args|
|
18
|
+
vm_name = get_required_args(args, :vm_name)
|
19
|
+
sh "vagrant provision #{vm_name}"
|
20
|
+
end
|
21
|
+
|
22
|
+
desc "destroy the vagrant \"VM\" with the given name"
|
23
|
+
task :destroy, [:vm_name] do |t, args|
|
24
|
+
vm_name = get_required_args(args, :vm_name)
|
25
|
+
sh "vagrant destroy #{vm_name} -f"
|
26
|
+
end
|
27
|
+
|
28
|
+
desc "ssh into the vagrant \"VM\" with the given name"
|
29
|
+
task :ssh, [:vm_name] do |t, args|
|
30
|
+
vm_name = get_required_args(args, :vm_name)
|
31
|
+
sh "vagrant ssh #{vm_name}"
|
32
|
+
end
|
33
|
+
|
34
|
+
desc "show status of all vagrant \"VMs\" defined in the Vagrantfile"
|
35
|
+
task :status do
|
36
|
+
sh "vagrant status"
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
#
|
41
|
+
# helper methods below
|
42
|
+
#
|
43
|
+
def get_required_args(args, *param_keys)
|
44
|
+
param_values = Array.new
|
45
|
+
param_keys.each do |param_key|
|
46
|
+
fail "parameter #{param_key.to_sym} is required" unless args[param_key.to_sym]
|
47
|
+
param_values << args[param_key.to_sym]
|
48
|
+
end
|
49
|
+
param_values.size == 1 ? param_values[0] : param_values
|
50
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
#
|
2
|
+
# Vagrantfile for testing
|
3
|
+
#
|
4
|
+
Vagrant::Config.run do |config|
|
5
|
+
|
6
|
+
# default base box for all VMs
|
7
|
+
config.vm.box = "opscode-ubuntu-12.04"
|
8
|
+
config.vm.box_url = "https://opscode-vm.s3.amazonaws.com/vagrant/opscode_ubuntu-12.04_chef-10.18.2.box"
|
9
|
+
|
10
|
+
# sample-app
|
11
|
+
config.vm.define :'sample-app' do | sample_app_config |
|
12
|
+
sample_app_config.vm.customize ["modifyvm", :id,
|
13
|
+
"--memory", "384",
|
14
|
+
"--name", "sample-app.local"
|
15
|
+
]
|
16
|
+
sample_app_config.vm.host_name = "sample-app.local"
|
17
|
+
sample_app_config.vm.network :hostonly, "33.33.40.10"
|
18
|
+
|
19
|
+
sample_app_config.vm.provision :chef_solo do |chef|
|
20
|
+
chef.cookbooks_path = [ './cookbooks/sample-app-0.1.0' ]
|
21
|
+
chef.add_recipe "sample-app"
|
22
|
+
chef.json = {
|
23
|
+
:sample_app => {
|
24
|
+
:words_of_wisdom => 'AWESOMENESS - When i feel sad, i stop being sad and be awesome instead.'
|
25
|
+
}
|
26
|
+
}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
@@ -0,0 +1,12 @@
|
|
1
|
+
|
2
|
+
- name: "sample-app"
|
3
|
+
version: "0.1.0"
|
4
|
+
path: "../sample-app"
|
5
|
+
# git: "https://github.com/tknerr/sample-app-tlc.git"
|
6
|
+
# ref: "v0.1.0"
|
7
|
+
|
8
|
+
- name: "sample-app"
|
9
|
+
version: "0.2.0"
|
10
|
+
path: "../sample-app"
|
11
|
+
# git: "https://github.com/tknerr/sample-app-tlc.git"
|
12
|
+
# ref: "v0.2.0"
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# CHANGELOG for sample-app
|
2
|
+
|
3
|
+
This file is used to list changes made in each version of sample-app.
|
4
|
+
|
5
|
+
## 0.1.0:
|
6
|
+
|
7
|
+
* Initial release of sample-app
|
8
|
+
|
9
|
+
- - -
|
10
|
+
Check the [Markdown Syntax Guide](http://daringfireball.net/projects/markdown/syntax) for help with Markdown.
|
11
|
+
|
12
|
+
The [Github Flavored Markdown page](http://github.github.com/github-flavored-markdown/) describes the differences between markdown on github and standard markdown.
|
@@ -0,0 +1,15 @@
|
|
1
|
+
site "http://community.opscode.com/api/v1"
|
2
|
+
|
3
|
+
require 'chef-tlc-workflow/helpers'
|
4
|
+
|
5
|
+
#
|
6
|
+
# read dependencies from metadata
|
7
|
+
#
|
8
|
+
ChefTLCWorkflow::Helpers::from_metadata.each do |cb_name, cb_version|
|
9
|
+
cookbook cb_name, cb_version
|
10
|
+
end
|
11
|
+
|
12
|
+
#
|
13
|
+
# resolve self for testing with vagrant
|
14
|
+
#
|
15
|
+
cookbook "sample-app", :path => '.'
|
@@ -0,0 +1,20 @@
|
|
1
|
+
Description
|
2
|
+
===========
|
3
|
+
|
4
|
+
A minimal sample application cookbook for testing.
|
5
|
+
|
6
|
+
"Features" of an application cookbook:
|
7
|
+
|
8
|
+
* strict dependency management - *all* dependency versions must be locked down in metadata.rb
|
9
|
+
* Cheffile must exist and is *not* in .gitignore - we need it when resolving its dependencies
|
10
|
+
|
11
|
+
|
12
|
+
Requirements
|
13
|
+
============
|
14
|
+
|
15
|
+
Attributes
|
16
|
+
==========
|
17
|
+
|
18
|
+
Usage
|
19
|
+
=====
|
20
|
+
|
@@ -0,0 +1,10 @@
|
|
1
|
+
name "sample-app"
|
2
|
+
maintainer "tkn"
|
3
|
+
maintainer_email "tkn@zuehlke.com"
|
4
|
+
license "All rights reserved"
|
5
|
+
description "A minimal sample application cookbook"
|
6
|
+
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
|
7
|
+
version "0.1.0"
|
8
|
+
|
9
|
+
depends "apache2", "1.5.0"
|
10
|
+
depends "apt", "1.3.2"
|
@@ -0,0 +1,27 @@
|
|
1
|
+
#
|
2
|
+
# Cookbook Name:: sample-app
|
3
|
+
# Recipe:: default
|
4
|
+
#
|
5
|
+
# Copyright 2013, YOUR_COMPANY_NAME
|
6
|
+
#
|
7
|
+
# All rights reserved - Do Not Redistribute
|
8
|
+
#
|
9
|
+
|
10
|
+
# refresh apt cache
|
11
|
+
include_recipe "apt"
|
12
|
+
|
13
|
+
# ensure default site is enabled and install apache
|
14
|
+
node.set['apache']['default_site_enabled'] = true
|
15
|
+
include_recipe "apache2"
|
16
|
+
|
17
|
+
# deploy sample html page
|
18
|
+
template "/var/www/sample.html" do
|
19
|
+
source "sample.html.erb"
|
20
|
+
owner node['apache']['user']
|
21
|
+
group node['apache']['group']
|
22
|
+
mode 00644
|
23
|
+
variables(
|
24
|
+
:words_of_wisdom => node['sample_app']['words_of_wisdom']
|
25
|
+
)
|
26
|
+
end
|
27
|
+
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<html>
|
2
|
+
<head>
|
3
|
+
<title>Sample App</title>
|
4
|
+
</head>
|
5
|
+
<body>
|
6
|
+
<p>Hey man, the super sample app seems to work if you can see this!</p>
|
7
|
+
<p>This is what a wise man once said:<blockquote><%= @words_of_wisdom %></blockquote></p>
|
8
|
+
<p>Cheers!</p>
|
9
|
+
</body>
|
10
|
+
</html>
|
metadata
ADDED
@@ -0,0 +1,331 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: chef-tlc-workflow
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Torben Knerr
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-05-28 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: chef-workflow-tasklib
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - '='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.2.2
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - '='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.2.2
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: chef
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - '='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 10.18.2
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - '='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 10.18.2
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: librarian
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - '='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.0.26.2
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.0.26.2
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: vagrant
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - '='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 1.0.5.1
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - '='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.0.5.1
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: knife-solo
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - '='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: 0.3.0.pre2
|
86
|
+
type: :runtime
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - '='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 0.3.0.pre2
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: mccloud
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - '='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 0.0.18
|
102
|
+
type: :runtime
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - '='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 0.0.18
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: foodcritic
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - '='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 1.7.0
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - '='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 1.7.0
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: chefspec
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - '='
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: 0.9.0
|
134
|
+
type: :runtime
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - '='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: 0.9.0
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: fauxhai
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - '='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: 0.1.1
|
150
|
+
type: :runtime
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - '='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: 0.1.1
|
158
|
+
- !ruby/object:Gem::Dependency
|
159
|
+
name: rake
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
162
|
+
requirements:
|
163
|
+
- - '='
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: 0.9.6
|
166
|
+
type: :runtime
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - '='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 0.9.6
|
174
|
+
- !ruby/object:Gem::Dependency
|
175
|
+
name: sahara
|
176
|
+
requirement: !ruby/object:Gem::Requirement
|
177
|
+
none: false
|
178
|
+
requirements:
|
179
|
+
- - '='
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: 0.0.13
|
182
|
+
type: :runtime
|
183
|
+
prerelease: false
|
184
|
+
version_requirements: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
186
|
+
requirements:
|
187
|
+
- - '='
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: 0.0.13
|
190
|
+
- !ruby/object:Gem::Dependency
|
191
|
+
name: knife-solo_data_bag
|
192
|
+
requirement: !ruby/object:Gem::Requirement
|
193
|
+
none: false
|
194
|
+
requirements:
|
195
|
+
- - '='
|
196
|
+
- !ruby/object:Gem::Version
|
197
|
+
version: 0.3.1
|
198
|
+
type: :runtime
|
199
|
+
prerelease: false
|
200
|
+
version_requirements: !ruby/object:Gem::Requirement
|
201
|
+
none: false
|
202
|
+
requirements:
|
203
|
+
- - '='
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
version: 0.3.1
|
206
|
+
- !ruby/object:Gem::Dependency
|
207
|
+
name: ruby-wmi
|
208
|
+
requirement: !ruby/object:Gem::Requirement
|
209
|
+
none: false
|
210
|
+
requirements:
|
211
|
+
- - '='
|
212
|
+
- !ruby/object:Gem::Version
|
213
|
+
version: 0.4.0
|
214
|
+
type: :runtime
|
215
|
+
prerelease: false
|
216
|
+
version_requirements: !ruby/object:Gem::Requirement
|
217
|
+
none: false
|
218
|
+
requirements:
|
219
|
+
- - '='
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: 0.4.0
|
222
|
+
- !ruby/object:Gem::Dependency
|
223
|
+
name: win32-service
|
224
|
+
requirement: !ruby/object:Gem::Requirement
|
225
|
+
none: false
|
226
|
+
requirements:
|
227
|
+
- - '='
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: 0.7.2
|
230
|
+
type: :runtime
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
none: false
|
234
|
+
requirements:
|
235
|
+
- - '='
|
236
|
+
- !ruby/object:Gem::Version
|
237
|
+
version: 0.7.2
|
238
|
+
description: makes our workflow for developing with Chef explict by adding a set of
|
239
|
+
Rake tasks embodying the workflow
|
240
|
+
email:
|
241
|
+
- tkn@zuehlke.com
|
242
|
+
executables: []
|
243
|
+
extensions: []
|
244
|
+
extra_rdoc_files: []
|
245
|
+
files:
|
246
|
+
- .gitignore
|
247
|
+
- Gemfile
|
248
|
+
- LICENSE.txt
|
249
|
+
- README.md
|
250
|
+
- Rakefile
|
251
|
+
- Vagrantfile
|
252
|
+
- chef-tlc-workflow.gemspec
|
253
|
+
- docs/ApplicationVsLibraryVsForkedCookbooks.md
|
254
|
+
- docs/TmpLibrarianHelpers.md
|
255
|
+
- docs/TmpWorkflowTasks.md
|
256
|
+
- lib/chef-tlc-workflow.rb
|
257
|
+
- lib/chef-tlc-workflow/helpers.rb
|
258
|
+
- lib/chef-tlc-workflow/version.rb
|
259
|
+
- lib/chef-workflow/tasks/tlc.rb
|
260
|
+
- lib/chef-workflow/tasks/tlc/deps.rb
|
261
|
+
- lib/chef-workflow/tasks/tlc/test.rb
|
262
|
+
- test/Gemfile
|
263
|
+
- test/ec2-bootstrap/.chef/bootstrap/omnibus-chef.sh
|
264
|
+
- test/ec2-bootstrap/.gitignore
|
265
|
+
- test/ec2-bootstrap/Mccloudfile
|
266
|
+
- test/ec2-bootstrap/Rakefile
|
267
|
+
- test/ec2-bootstrap/app_cookbooks.yml
|
268
|
+
- test/esx-bootstrap/.chef/knife.rb
|
269
|
+
- test/esx-bootstrap/.gitignore
|
270
|
+
- test/esx-bootstrap/Rakefile
|
271
|
+
- test/esx-bootstrap/app_cookbooks.yml
|
272
|
+
- test/esx-bootstrap/nodes/33.33.77.10.json
|
273
|
+
- test/local-bootstrap/.gitignore
|
274
|
+
- test/local-bootstrap/Rakefile
|
275
|
+
- test/local-bootstrap/Vagrantfile
|
276
|
+
- test/local-bootstrap/app_cookbooks.yml
|
277
|
+
- test/sample-app/CHANGELOG.md
|
278
|
+
- test/sample-app/Cheffile
|
279
|
+
- test/sample-app/README.md
|
280
|
+
- test/sample-app/attributes/default.rb
|
281
|
+
- test/sample-app/metadata.rb
|
282
|
+
- test/sample-app/recipes/default.rb
|
283
|
+
- test/sample-app/templates/default/sample.html.erb
|
284
|
+
homepage: ''
|
285
|
+
licenses: []
|
286
|
+
post_install_message:
|
287
|
+
rdoc_options: []
|
288
|
+
require_paths:
|
289
|
+
- lib
|
290
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
291
|
+
none: false
|
292
|
+
requirements:
|
293
|
+
- - ! '>='
|
294
|
+
- !ruby/object:Gem::Version
|
295
|
+
version: '0'
|
296
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
297
|
+
none: false
|
298
|
+
requirements:
|
299
|
+
- - ! '>='
|
300
|
+
- !ruby/object:Gem::Version
|
301
|
+
version: '0'
|
302
|
+
requirements: []
|
303
|
+
rubyforge_project:
|
304
|
+
rubygems_version: 1.8.24
|
305
|
+
signing_key:
|
306
|
+
specification_version: 3
|
307
|
+
summary: makes our workflow for developing with Chef explict by adding a set of Rake
|
308
|
+
tasks embodying the workflow
|
309
|
+
test_files:
|
310
|
+
- test/Gemfile
|
311
|
+
- test/ec2-bootstrap/.chef/bootstrap/omnibus-chef.sh
|
312
|
+
- test/ec2-bootstrap/.gitignore
|
313
|
+
- test/ec2-bootstrap/Mccloudfile
|
314
|
+
- test/ec2-bootstrap/Rakefile
|
315
|
+
- test/ec2-bootstrap/app_cookbooks.yml
|
316
|
+
- test/esx-bootstrap/.chef/knife.rb
|
317
|
+
- test/esx-bootstrap/.gitignore
|
318
|
+
- test/esx-bootstrap/Rakefile
|
319
|
+
- test/esx-bootstrap/app_cookbooks.yml
|
320
|
+
- test/esx-bootstrap/nodes/33.33.77.10.json
|
321
|
+
- test/local-bootstrap/.gitignore
|
322
|
+
- test/local-bootstrap/Rakefile
|
323
|
+
- test/local-bootstrap/Vagrantfile
|
324
|
+
- test/local-bootstrap/app_cookbooks.yml
|
325
|
+
- test/sample-app/CHANGELOG.md
|
326
|
+
- test/sample-app/Cheffile
|
327
|
+
- test/sample-app/README.md
|
328
|
+
- test/sample-app/attributes/default.rb
|
329
|
+
- test/sample-app/metadata.rb
|
330
|
+
- test/sample-app/recipes/default.rb
|
331
|
+
- test/sample-app/templates/default/sample.html.erb
|