chake 0.1.7 → 0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/chake +25 -0
- data/lib/chake.rb +66 -24
- data/lib/chake/backend.rb +16 -1
- data/lib/chake/backend/ssh.rb +21 -1
- data/lib/chake/bootstrap/00_centos7.sh +81 -0
- data/lib/chake/bootstrap/00_debian.sh +7 -0
- data/lib/chake/bootstrap/99_unsupported.sh +11 -0
- data/lib/chake/node.rb +1 -1
- data/lib/chake/version.rb +1 -1
- metadata +8 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4dab95473935a70ac4191737d2f0e5fe7cb81cac
|
4
|
+
data.tar.gz: ab453a86e896472cb44d6f7cdc5ff5035d4925d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c4287d875ac6220db86d879ae7997392918b90fdd830b6d637f296a9901e5006d168a5d62e995def7fb8a5ea5fa6849b0fac13b194d76c011374858e0dc4c82
|
7
|
+
data.tar.gz: 9b4259782db5b68c8c3cb17671893d6bbc1f4d151af6f0345a8f4cb890e1cea07cfda342c6480294ddcefb06198e4dddbde86d34cef63b3480b462a9f44687c5
|
data/bin/chake
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rake'
|
4
|
+
|
5
|
+
rakefiles = %w[rakefile Rakefile rakefile.rb Rakefile.rb]
|
6
|
+
|
7
|
+
if (!rakefiles.any? { |f| File.exist?(f) }) && !ARGV.include?('-f') && !ARGV.include?('--rakefile')
|
8
|
+
require 'tmpdir'
|
9
|
+
require 'fileutils'
|
10
|
+
|
11
|
+
# syntethize a Rakefile
|
12
|
+
tmpdir = Dir.mktmpdir
|
13
|
+
rakefile = File.join(tmpdir, 'Rakefile')
|
14
|
+
File.open(rakefile, 'w') do |f|
|
15
|
+
f.puts 'require "chake"'
|
16
|
+
end
|
17
|
+
ARGV.unshift << '--rakefile' << rakefile
|
18
|
+
|
19
|
+
# clenup after finishing
|
20
|
+
at_exit do
|
21
|
+
FileUtils.rm_rf tmpdir
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
Rake.application.run
|
data/lib/chake.rb
CHANGED
@@ -14,7 +14,9 @@ $nodes = node_data.map { |node,data| Chake::Node.new(node, data) }.reject(&:skip
|
|
14
14
|
|
15
15
|
desc "Initializes current directory with sample structure"
|
16
16
|
task :init do
|
17
|
-
if
|
17
|
+
if File.exists?('nodes.yaml')
|
18
|
+
puts '[exists] nodes.yaml'
|
19
|
+
else
|
18
20
|
File.open('nodes.yaml', 'w') do |f|
|
19
21
|
sample_nodes = <<EOF
|
20
22
|
host1.my.tld:
|
@@ -22,27 +24,46 @@ host1.my.tld:
|
|
22
24
|
- recipe[myhost]
|
23
25
|
EOF
|
24
26
|
f.write(sample_nodes)
|
25
|
-
puts "
|
27
|
+
puts "[create] nodes.yaml"
|
26
28
|
end
|
27
29
|
end
|
28
|
-
if
|
30
|
+
if File.exists?('config.rb')
|
31
|
+
puts '[exists] config.rb'
|
32
|
+
else
|
29
33
|
File.open('config.rb', 'w') do |f|
|
30
34
|
f.puts "root = File.expand_path(File.dirname(__FILE__))"
|
31
35
|
f.puts "file_cache_path root + '/cache'"
|
32
36
|
f.puts "cookbook_path root + '/cookbooks'"
|
33
37
|
f.puts "role_path root + '/config/roles'"
|
34
38
|
end
|
35
|
-
puts "
|
39
|
+
puts "[create] config.rb"
|
40
|
+
end
|
41
|
+
|
42
|
+
if !File.exist?('config/roles')
|
43
|
+
FileUtils.mkdir_p 'config/roles'
|
44
|
+
puts '[ mkdir] config/roles'
|
45
|
+
end
|
46
|
+
if !File.exist?('cookbooks/myhost/recipes')
|
47
|
+
FileUtils.mkdir_p 'cookbooks/myhost/recipes/'
|
48
|
+
puts '[ mkdir] cookbooks/myhost/recipes/'
|
36
49
|
end
|
37
|
-
mkdir_p 'config/roles'
|
38
|
-
mkdir_p 'cookbooks/myhost/recipes/'
|
39
50
|
recipe = 'cookbooks/myhost/recipes/default.rb'
|
40
|
-
if
|
51
|
+
if File.exists?(recipe)
|
52
|
+
puts "[exists] #{recipe}"
|
53
|
+
else
|
41
54
|
File.open(recipe, 'w') do |f|
|
42
55
|
f.puts "package 'openssh-server'"
|
43
56
|
end
|
44
|
-
puts "
|
57
|
+
puts "[create] #{recipe}"
|
58
|
+
end
|
59
|
+
if File.exists?('Rakefile')
|
60
|
+
puts '[exists] Rakefile'
|
61
|
+
else
|
62
|
+
File.open('Rakefile', 'w') do |f|
|
63
|
+
f.puts 'require "chake"'
|
64
|
+
puts '[create] Rakefile'
|
45
65
|
end
|
66
|
+
end
|
46
67
|
end
|
47
68
|
|
48
69
|
desc 'list nodes'
|
@@ -73,31 +94,52 @@ def if_files_changed(node, group_name, files)
|
|
73
94
|
end
|
74
95
|
end
|
75
96
|
|
97
|
+
|
98
|
+
def write_json_file(file, data)
|
99
|
+
File.open(file, 'w') do |f|
|
100
|
+
f.write(JSON.dump(data))
|
101
|
+
f.write("\n")
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
platforms = Dir.glob(File.expand_path('chake/bootstrap/*.sh', File.dirname(__FILE__))).sort
|
106
|
+
bootstrap_script = '.tmp/bootstrap'
|
107
|
+
|
76
108
|
$nodes.each do |node|
|
77
109
|
|
78
110
|
hostname = node.hostname
|
79
111
|
|
112
|
+
file bootstrap_script => platforms do |t|
|
113
|
+
mkdir_p(File.dirname(bootstrap_script))
|
114
|
+
File.open(t.name, 'w') do |f|
|
115
|
+
f.puts '#!/bin/sh'
|
116
|
+
f.puts 'set -eu'
|
117
|
+
platforms.each do |platform|
|
118
|
+
f.puts(File.read(platform))
|
119
|
+
end
|
120
|
+
end
|
121
|
+
chmod 0755, t.name
|
122
|
+
end
|
123
|
+
|
80
124
|
desc "bootstrap #{hostname}"
|
81
|
-
task "bootstrap:#{hostname}" do
|
125
|
+
task "bootstrap:#{hostname}" => bootstrap_script do
|
82
126
|
mkdir_p '.tmp', :verbose => false
|
83
127
|
config = '.tmp/' + hostname + '.json'
|
84
128
|
|
85
|
-
|
129
|
+
if File.exists?(config)
|
130
|
+
# already bootstrapped, just overwrite
|
131
|
+
write_json_file(config, node.data)
|
132
|
+
else
|
133
|
+
# copy bootstrap script over
|
134
|
+
scp = node.scp
|
135
|
+
target = "/tmp/.chake-bootstrap.#{Etc.getpwuid.name}"
|
136
|
+
sh *scp, bootstrap_script, node.scp_dest + target
|
86
137
|
|
87
|
-
|
88
|
-
|
89
|
-
json_data = node.data
|
90
|
-
f.write(JSON.dump(json_data))
|
91
|
-
f.write("\n")
|
92
|
-
end
|
138
|
+
# run bootstrap script
|
139
|
+
node.run_as_root(target)
|
93
140
|
|
94
|
-
|
95
|
-
|
96
|
-
node.run_as_root('apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -q -y install rsync chef && update-rc.d chef-client disable && service chef-client stop')
|
97
|
-
rescue
|
98
|
-
rm_f config
|
99
|
-
raise
|
100
|
-
end
|
141
|
+
# overwrite config with current contents
|
142
|
+
write_json_file(config, node.data)
|
101
143
|
end
|
102
144
|
|
103
145
|
end
|
@@ -107,7 +149,7 @@ $nodes.each do |node|
|
|
107
149
|
encrypted = encrypted_for(hostname)
|
108
150
|
rsync_excludes = (encrypted.values + encrypted.keys).map { |f| ["--exclude", f] }.flatten
|
109
151
|
|
110
|
-
rsync =
|
152
|
+
rsync = node.rsync + ["-avp", "--exclude", ".git/"]
|
111
153
|
rsync_logging = Rake.application.options.silent && '--quiet' || '--verbose'
|
112
154
|
|
113
155
|
files = Dir.glob("**/*").select { |f| !File.directory?(f) } - encrypted.keys - encrypted.values
|
data/lib/chake/backend.rb
CHANGED
@@ -2,6 +2,21 @@ module Chake
|
|
2
2
|
|
3
3
|
class Backend < Struct.new(:node)
|
4
4
|
|
5
|
+
class CommandFailed < Exception
|
6
|
+
end
|
7
|
+
|
8
|
+
def scp
|
9
|
+
['scp']
|
10
|
+
end
|
11
|
+
|
12
|
+
def scp_dest
|
13
|
+
''
|
14
|
+
end
|
15
|
+
|
16
|
+
def rsync
|
17
|
+
['rsync']
|
18
|
+
end
|
19
|
+
|
5
20
|
def rsync_dest
|
6
21
|
node.path + '/'
|
7
22
|
end
|
@@ -16,7 +31,7 @@ module Chake
|
|
16
31
|
if $?
|
17
32
|
status = $?.exitstatus
|
18
33
|
if status != 0
|
19
|
-
|
34
|
+
raise CommandFailed.new([node.hostname, 'FAILED with exit status %d' % status].join(': '))
|
20
35
|
end
|
21
36
|
end
|
22
37
|
end
|
data/lib/chake/backend/ssh.rb
CHANGED
@@ -4,16 +4,36 @@ module Chake
|
|
4
4
|
|
5
5
|
class Ssh < Backend
|
6
6
|
|
7
|
+
def scp
|
8
|
+
['scp', ssh_config].flatten.compact
|
9
|
+
end
|
10
|
+
|
11
|
+
def scp_dest
|
12
|
+
ssh_target + ':'
|
13
|
+
end
|
14
|
+
|
15
|
+
def rsync
|
16
|
+
['rsync', rsync_ssh].flatten.compact
|
17
|
+
end
|
18
|
+
|
7
19
|
def rsync_dest
|
8
20
|
[ssh_target, node.path + '/'].join(':')
|
9
21
|
end
|
10
22
|
|
11
23
|
def command_runner
|
12
|
-
['ssh', ssh_target]
|
24
|
+
['ssh', ssh_config, ssh_target].flatten.compact
|
13
25
|
end
|
14
26
|
|
15
27
|
private
|
16
28
|
|
29
|
+
def rsync_ssh
|
30
|
+
File.exist?('.ssh_config') && ['-e', 'ssh -F .ssh_config'] || []
|
31
|
+
end
|
32
|
+
|
33
|
+
def ssh_config
|
34
|
+
File.exist?('.ssh_config') && ['-F' '.ssh_config'] || []
|
35
|
+
end
|
36
|
+
|
17
37
|
def ssh_target
|
18
38
|
[node.username, node.hostname].compact.join('@')
|
19
39
|
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
if [ -f /etc/centos-release ] && grep -q 'CentOS Linux release 7' /etc/centos-release; then
|
2
|
+
cat > /etc/yum.repos.d/chef.key <<EOF
|
3
|
+
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
4
|
+
Version: GnuPG v1.4.11 (GNU/Linux)
|
5
|
+
|
6
|
+
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
|
64
|
+
sA==
|
65
|
+
=H60S
|
66
|
+
-----END PGP PUBLIC KEY BLOCK-----
|
67
|
+
EOF
|
68
|
+
cat > /etc/yum.repos.d/chef.repo <<EOF
|
69
|
+
[chef_stable]
|
70
|
+
name=chef_stable
|
71
|
+
baseurl=https://packagecloud.io/chef/stable/el/7/\$basearch
|
72
|
+
repo_gpgcheck=1
|
73
|
+
gpgcheck=0
|
74
|
+
enabled=1
|
75
|
+
gpgkey=file:///etc/yum.repos.d/chef.key
|
76
|
+
sslverify=1
|
77
|
+
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
|
78
|
+
EOF
|
79
|
+
yum install -y chef rsync
|
80
|
+
exit
|
81
|
+
fi
|
data/lib/chake/node.rb
CHANGED
data/lib/chake/version.rb
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.2'
|
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: 2015-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -57,7 +57,8 @@ description: chake provides a set of rake tasks that you can use to manage any n
|
|
57
57
|
from where you can SSH into all your hosts.
|
58
58
|
email:
|
59
59
|
- terceiro@softwarelivre.org
|
60
|
-
executables:
|
60
|
+
executables:
|
61
|
+
- chake
|
61
62
|
extensions: []
|
62
63
|
extra_rdoc_files: []
|
63
64
|
files:
|
@@ -66,6 +67,7 @@ files:
|
|
66
67
|
- LICENSE.txt
|
67
68
|
- README.md
|
68
69
|
- Rakefile
|
70
|
+
- bin/chake
|
69
71
|
- chake.gemspec
|
70
72
|
- examples/test/Rakefile
|
71
73
|
- examples/test/config.rb
|
@@ -75,6 +77,9 @@ files:
|
|
75
77
|
- lib/chake/backend.rb
|
76
78
|
- lib/chake/backend/local.rb
|
77
79
|
- lib/chake/backend/ssh.rb
|
80
|
+
- lib/chake/bootstrap/00_centos7.sh
|
81
|
+
- lib/chake/bootstrap/00_debian.sh
|
82
|
+
- lib/chake/bootstrap/99_unsupported.sh
|
78
83
|
- lib/chake/node.rb
|
79
84
|
- lib/chake/version.rb
|
80
85
|
- spec/chake/backend/local_spec.rb
|