kitchenplan 2.1.1 → 2.1.2
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/README.md +9 -10
- data/lib/kitchenplan/cli.rb +26 -15
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5ebb0db12e3ed09eb671248d12d8edf97a2334fb
|
4
|
+
data.tar.gz: 9b03987338deb36560b0c6fc6ea656961a5b1fd9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 401779d5cdf43c7ae19ac9e63e45fa406bfe4fc457cd4b71907074af5412e062ca705d66464bbc5b750a204aee5c8aea6f734486908e96386c31fad13f7badab
|
7
|
+
data.tar.gz: 5fd4f56c63ec48107a220e62036dd566a27a79967dc11735fdc25625222ae3b135248d1495e3af00b2f664cae4daadb85d47c1aea0edfb497d503ae1fb61c124
|
data/README.md
CHANGED
@@ -2,16 +2,9 @@
|
|
2
2
|
|
3
3
|
Kitchenplan is a small tool to fully automate the installation and configuration of an OSX workstation (or server for that matter) using Chef. But while doing so manually is not a trivial undertaking, Kitchenplan has abstracted away all the hard parts.
|
4
4
|
|
5
|
-
##
|
5
|
+
## History
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
## To Do
|
10
|
-
|
11
|
-
* debug options
|
12
|
-
* installing a manual list of recipes
|
13
|
-
* --no-chef
|
14
|
-
* only update cookbooks if we run with -c
|
7
|
+
This is a brand new implementation of Kitchenplan. If you have issues with this new versions, please use [version2](https://github.com/kitchenplan/kitchenplan/blob/version2/README.md) for now.
|
15
8
|
|
16
9
|
## Using kitchenplan
|
17
10
|
|
@@ -122,8 +115,14 @@ Running Kitchenplan is as easy as running `kitchenplan provision`
|
|
122
115
|
run sudo vendor/bin/chef-solo -c tmp/solo.rb -j tmp/kitchenplan-attributes.json -o applications::create_var_chef_cache,homebrewalt::default,nodejs::default,... from "/opt/kitchenplan"
|
123
116
|
```
|
124
117
|
|
125
|
-
At this point Chef will start installing everything you configured. Depending on your install list, this might take a while.
|
118
|
+
At this point Chef will start installing everything you configured. Depending on your install list, this might take a while. It will hopefully go smooth and end with
|
126
119
|
|
120
|
+
```
|
121
|
+
-> Cleanup parsed configuration files
|
122
|
+
run rm -f kitchenplan-attributes.json from "/opt/kitchenplan"
|
123
|
+
run rm -f solo.rb from "/opt/kitchenplan"
|
124
|
+
=> Installation complete!
|
125
|
+
```
|
127
126
|
|
128
127
|
## Some blogposts about Kitchenplan
|
129
128
|
|
data/lib/kitchenplan/cli.rb
CHANGED
@@ -7,7 +7,7 @@ module Kitchenplan
|
|
7
7
|
desc 'setup [<GITREPO>] [<TARGET DIRECTORY>]', 'setup Kitchenplan'
|
8
8
|
def setup(gitrepo=nil, targetdir='/opt')
|
9
9
|
logo
|
10
|
-
install_clt
|
10
|
+
install_clt unless File.exists?("/usr/bin/cc")
|
11
11
|
if gitrepo
|
12
12
|
fetch(gitrepo, targetdir)
|
13
13
|
else
|
@@ -21,43 +21,49 @@ module Kitchenplan
|
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
-
|
24
|
+
option :debug, :type => :boolean
|
25
|
+
option :recipes, :type => :array
|
26
|
+
desc 'provision [<TARGET DIRECTORY>] [--debug] [--recipes=x y z]', 'run Kitchenplan, using debug will show more command output'
|
25
27
|
def provision(targetdir='/opt')
|
26
28
|
logo
|
27
29
|
prepare_folders(targetdir)
|
28
30
|
install_bundler(targetdir)
|
29
31
|
send_ping
|
30
32
|
recipes = parse_config(targetdir)
|
31
|
-
fetch_cookbooks(targetdir)
|
32
|
-
run_chef(targetdir, recipes)
|
33
|
-
cleanup(targetdir)
|
33
|
+
fetch_cookbooks(targetdir, options[:debug])
|
34
|
+
run_chef(targetdir, (options[:recipes] ? options[:recipes] : recipes), options[:debug])
|
35
|
+
cleanup(targetdir, options[:debug])
|
34
36
|
print_notice('Installation complete!')
|
35
37
|
end
|
36
38
|
|
37
39
|
no_commands do
|
38
40
|
|
39
|
-
def run_chef(targetdir, recipes)
|
41
|
+
def run_chef(targetdir, recipes, debug=false)
|
40
42
|
inside("#{targetdir}/kitchenplan") do
|
41
|
-
dorun "sudo vendor/bin/chef-solo -c tmp/solo.rb -j tmp/kitchenplan-attributes.json -o #{recipes.join(',')}"
|
43
|
+
dorun "sudo vendor/bin/chef-solo #{( debug ? ' --log_level debug' : ' ' )} -c tmp/solo.rb -j tmp/kitchenplan-attributes.json -o #{recipes.join(',')}"
|
42
44
|
end
|
43
45
|
end
|
44
46
|
|
45
|
-
def fetch_cookbooks(targetdir)
|
47
|
+
def fetch_cookbooks(targetdir,debug=false)
|
46
48
|
print_step('Fetch the chef cookbooks')
|
47
49
|
inside("#{targetdir}/kitchenplan") do
|
48
50
|
if File.exists?('vendor/cookbooks')
|
49
|
-
dorun
|
51
|
+
dorun "vendor/bin/librarian-chef update #{( debug ? ' ' : '2>&1 > /dev/null' )}"
|
50
52
|
else
|
51
|
-
dorun
|
53
|
+
dorun "vendor/bin/librarian-chef install --clean #{( debug ? ' ' : '--quiet' )} --path=vendor/cookbooks"
|
52
54
|
end
|
53
55
|
end
|
54
56
|
end
|
55
57
|
|
56
|
-
def cleanup(targetdir)
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
58
|
+
def cleanup(targetdir,debug=false)
|
59
|
+
unless debug
|
60
|
+
print_step('Cleanup parsed configuration files')
|
61
|
+
inside("#{targetdir}/kitchenplan") do
|
62
|
+
dorun('rm -f kitchenplan-attributes.json')
|
63
|
+
dorun('rm -f solo.rb')
|
64
|
+
end
|
65
|
+
else
|
66
|
+
print_step('Skipping cleanup parsed configuration files')
|
61
67
|
end
|
62
68
|
end
|
63
69
|
|
@@ -90,11 +96,16 @@ module Kitchenplan
|
|
90
96
|
print_step "#{targetdir}/kitchenplan already exists, updating from git."
|
91
97
|
inside("#{targetdir}/kitchenplan") do
|
92
98
|
dorun('git pull -q')
|
99
|
+
dorun('git submodule update')
|
93
100
|
end
|
94
101
|
else
|
95
102
|
print_step "Fetching #{gitrepo} to #{targetdir}/kitchenplan."
|
96
103
|
inside("#{targetdir}") do
|
97
104
|
dorun("git clone -q #{gitrepo} kitchenplan")
|
105
|
+
inside("#{targetdir}/kitchenplan") do
|
106
|
+
dorun('git submodule init')
|
107
|
+
dorun('git submodule update')
|
108
|
+
end
|
98
109
|
end
|
99
110
|
end
|
100
111
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kitchenplan
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roderik van der Veer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|