chake 0.11 → 0.12
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/.gitlab-ci.yml +10 -0
- data/ChangeLog.md +7 -0
- data/README.md +20 -18
- data/Rakefile +3 -1
- data/chake.gemspec +1 -0
- data/lib/chake.rb +3 -2
- data/lib/chake/bootstrap/00_set_hostname.sh +5 -0
- data/lib/chake/version.rb +1 -1
- data/man/Rakefile +9 -4
- data/man/readme2man.sed +2 -0
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd36fdb7ba1e6821df011b23e5124f0a1a333666
|
4
|
+
data.tar.gz: c8a209c44c58782d0faf734faa5aa782c5fd64f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d62c682ea5e0bad45b623a3aa20fc4eb07c7d05f2a823710ce40c34065c474396c03d0dc2a4af71b48a0eadfdfcaaad50116369347791001aeef392aeabfdf77
|
7
|
+
data.tar.gz: e4709a62cbaa6e046be70f8252e49b1ba5a34842f48f17d85a30eb659250ab43d14e78172a041f4791ae1af80f6e89837e1ffae04366fe641c505f0c25244ad4
|
data/.gitlab-ci.yml
ADDED
data/ChangeLog.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
# 0.12
|
2
|
+
|
3
|
+
* Switch manpage build from ronn to asciidoctor
|
4
|
+
* Add ability to override the Chef configuration file by setting
|
5
|
+
`$CHAKE_CHEF_CONFIG` (default: `config.rb`)
|
6
|
+
* bootstrap: ensure short hostname is in /etc/hosts
|
7
|
+
|
1
8
|
# 0.11
|
2
9
|
|
3
10
|
* bootstrap: make sure FQDN matches hostname
|
data/README.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
|
-
chake(1)
|
2
|
-
|
1
|
+
# chake(1)
|
2
|
+
|
3
|
+
## NAME
|
4
|
+
|
5
|
+
chake - serverless configuration with chef
|
6
|
+
|
7
|
+
## Introduction
|
3
8
|
|
4
9
|
chake is a tool that helps you manage multiple hosts with, without the need for
|
5
10
|
a chef server. Configuration is managed in a local directory, which should
|
@@ -26,14 +31,12 @@ $ chake init
|
|
26
31
|
|
27
32
|
A brief explanation of the created files:
|
28
33
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
| `cookbooks` | directory where you will store your cookbooks. A sample cookbook called "basics" is created, but feel free to remove it and add actual cookbooks. |
|
36
|
-
| `Rakefile` | Contains just the `require 'chake'` line. You can augment it with other tasks specific to your intrastructure. |
|
34
|
+
* `nodes.yaml`: where you will list the hosts you will be managing, and what recipes to apply to each of them.
|
35
|
+
* `nodes.d`: a directory with multiple files in the same format as nodes.yaml. All files matching `*.yaml` in it will be added to the list of nodes.
|
36
|
+
* `config.rb`: contains the chef-solo configuration. You can modify it, but usually you won't need to.
|
37
|
+
* `config/roles`: directory is where you can put your role definitions.
|
38
|
+
* `cookbooks`: directory where you will store your cookbooks. A sample cookbook called "basics" is created, but feel free to remove it and add actual cookbooks.
|
39
|
+
* `Rakefile`: Contains just the `require 'chake'` line. You can augment it with other tasks specific to your intrastructure.
|
37
40
|
|
38
41
|
After the repository is created, you can call either `chake` or `rake`, as they
|
39
42
|
are completely equivalent.
|
@@ -191,14 +194,11 @@ the node URLs:
|
|
191
194
|
[backend://][username@]hostname[:port][/path]
|
192
195
|
```
|
193
196
|
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
| port | port number to connect to | 22 |
|
200
|
-
| /path | where to store the cookbooks at the node | `/var/tmp/chef.$USERNAME` |
|
201
|
-
|
197
|
+
* `backend`: backend to use to connect to the host. `ssh` or `local` (default: `ssh`)
|
198
|
+
* `username`: user name to connect with (default: the username on your local workstation)
|
199
|
+
* `hostname`: the hostname to connect to (default: _none_)
|
200
|
+
* `port`: port number to connect to (default: 22)
|
201
|
+
* `/path`: where to store the cookbooks at the node (default: `/var/tmp/chef.$USERNAME`)
|
202
202
|
|
203
203
|
## Extra features
|
204
204
|
|
@@ -298,6 +298,8 @@ vice-versa.
|
|
298
298
|
Directory containing node definition files servers to be managed. Default: `nodes.d`.
|
299
299
|
* `$CHAKE_TMPDIR`:
|
300
300
|
Directory used to store temporary cache files. Default: `tmp/chake`.
|
301
|
+
* `$CHAKE_CHEF_CONFIG`:
|
302
|
+
Chef configuration file, relative to the root of the repository. Default: `config.rb`.
|
301
303
|
|
302
304
|
## See also
|
303
305
|
|
data/Rakefile
CHANGED
@@ -20,6 +20,8 @@ task 'build:debsrc' => ['build:tarball'] do
|
|
20
20
|
chdir 'pkg' do
|
21
21
|
sh 'gem2deb', '--no-wnpp-check', '-s', '-p', pkg.name, "#{dirname}.tar.gz"
|
22
22
|
chdir dirname do
|
23
|
+
ln 'man/Rakefile', 'debian/dh_ruby.rake'
|
24
|
+
sh "sed -i -e 's/-1/-1~0/ ; s/\*.*/* Development snapshot/' debian/changelog"
|
23
25
|
sh 'dpkg-buildpackage', '-S', '-us', '-uc'
|
24
26
|
end
|
25
27
|
end
|
@@ -30,7 +32,7 @@ task 'deb:install' => 'build:debsrc'do
|
|
30
32
|
chdir "pkg/#{pkg.name}-#{pkg.version}" do
|
31
33
|
sh 'fakeroot debian/rules binary'
|
32
34
|
end
|
33
|
-
sh 'sudo', 'dpkg', '-i', "pkg/#{pkg.name}_#{pkg.version}-
|
35
|
+
sh 'sudo', 'dpkg', '-i', "pkg/#{pkg.name}_#{pkg.version}-1~0_all.deb"
|
34
36
|
end
|
35
37
|
|
36
38
|
desc 'Create source RPM package'
|
data/chake.gemspec
CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.5"
|
22
22
|
spec.add_development_dependency "rspec"
|
23
23
|
spec.add_development_dependency "simplecov"
|
24
|
+
spec.add_development_dependency "asciidoctor", '>= 1.5.3'
|
24
25
|
|
25
26
|
spec.add_dependency "rake"
|
26
27
|
end
|
data/lib/chake.rb
CHANGED
@@ -9,6 +9,7 @@ require 'chake/node'
|
|
9
9
|
require 'chake/readline'
|
10
10
|
require 'chake/tmpdir'
|
11
11
|
|
12
|
+
chef_config = ENV['CHAKE_CHEF_CONFIG'] || 'config.rb'
|
12
13
|
nodes_file = ENV['CHAKE_NODES'] || 'nodes.yaml'
|
13
14
|
nodes_directory = ENV['CHAKE_NODES_D'] || 'nodes.d'
|
14
15
|
node_data = File.exists?(nodes_file) && YAML.load_file(nodes_file) || {}
|
@@ -212,13 +213,13 @@ $nodes.each do |node|
|
|
212
213
|
desc "converge #{hostname}"
|
213
214
|
task "converge:#{hostname}" => converge_dependencies do
|
214
215
|
chef_logging = Rake.application.options.silent && '-l fatal' || ''
|
215
|
-
node.run_as_root "chef-solo -c #{node.path}
|
216
|
+
node.run_as_root "chef-solo -c #{node.path}/#{chef_config} #{chef_logging} -j #{node.path}/#{$chake_tmpdir}/#{hostname}.json"
|
216
217
|
end
|
217
218
|
|
218
219
|
desc 'apply <recipe> on #{hostname}'
|
219
220
|
task "apply:#{hostname}", [:recipe] => [:recipe_input] do |task, args|
|
220
221
|
chef_logging = Rake.application.options.silent && '-l fatal' || ''
|
221
|
-
node.run_as_root "chef-solo -c #{node.path}
|
222
|
+
node.run_as_root "chef-solo -c #{node.path}/#{chef_config} #{chef_logging} -j #{node.path}/#{$chake_tmpdir}/#{hostname}.json --override-runlist recipe[#{$recipe_to_apply}]"
|
222
223
|
end
|
223
224
|
task "apply:#{hostname}" => converge_dependencies
|
224
225
|
|
@@ -5,6 +5,11 @@ hostname --file /etc/hostname
|
|
5
5
|
|
6
6
|
fqdn=$(hostname --fqdn || true)
|
7
7
|
if [ "$fqdn" != "$hostname" ]; then
|
8
|
+
# if hostname is bar.example.com, we also want `bar` to be in /etc/hosts
|
9
|
+
short_hostname=$(echo "$hostname" | cut -d . -f 1)
|
10
|
+
if [ "$short_hostname" != "$hostname" ] && ! grep -q "\s${short_hostname}" /etc/hosts; then
|
11
|
+
hostname="$hostname $short_hostname"
|
12
|
+
fi
|
8
13
|
printf "127.0.1.1\t%s\n" "$hostname" >> /etc/hosts
|
9
14
|
fi
|
10
15
|
|
data/lib/chake/version.rb
CHANGED
data/man/Rakefile
CHANGED
@@ -1,10 +1,15 @@
|
|
1
1
|
task :default => 'man/chake.1'
|
2
2
|
|
3
|
-
file 'man/chake.1' => ['man/chake.
|
4
|
-
|
3
|
+
file 'man/chake.1' => ['man/chake.adoc'] do
|
4
|
+
command = 'asciidoctor --backend manpage --out-file man/chake.1 man/chake.adoc'
|
5
|
+
if ENV['SOURCE_DATE_EPOCH']
|
6
|
+
date = Time.at(ENV['SOURCE_DATE_EPOCH'].to_i)
|
7
|
+
command << " --attribute docdate=#{date.strftime('%Y-%m-%d')}"
|
8
|
+
end
|
9
|
+
sh command
|
5
10
|
end
|
6
11
|
|
7
|
-
file 'man/chake.
|
12
|
+
file 'man/chake.adoc' => ['README.md', 'man/readme2man.sed'] do |t|
|
8
13
|
sh "sed -f man/readme2man.sed README.md > #{t.name} || (rm -f #{t.name}; false)"
|
9
14
|
end
|
10
15
|
|
@@ -18,5 +23,5 @@ end
|
|
18
23
|
|
19
24
|
task :clean do
|
20
25
|
rm_f 'man/chake.1'
|
21
|
-
rm_f 'man/chake.
|
26
|
+
rm_f 'man/chake.adoc'
|
22
27
|
end
|
data/man/readme2man.sed
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chake
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.12'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Antonio Terceiro
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: asciidoctor
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.5.3
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.5.3
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rake
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -79,6 +93,7 @@ extensions: []
|
|
79
93
|
extra_rdoc_files: []
|
80
94
|
files:
|
81
95
|
- ".gitignore"
|
96
|
+
- ".gitlab-ci.yml"
|
82
97
|
- ChangeLog.md
|
83
98
|
- Gemfile
|
84
99
|
- LICENSE.txt
|
@@ -141,3 +156,4 @@ test_files:
|
|
141
156
|
- spec/chake/backend_spec.rb
|
142
157
|
- spec/chake/node_spec.rb
|
143
158
|
- spec/spec_helper.rb
|
159
|
+
has_rdoc:
|