clusterlb 0.1.6 → 0.1.7
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/.ruby-version +1 -0
- data/Gemfile.lock +761 -1
- data/build.sh +4 -0
- data/clusterlb.gemspec +3 -0
- data/exe/clusterlb-stectrl +3 -2
- data/lib/clusterlb/version.rb +1 -1
- data/lib/clusterlb.rb +108 -5
- data/omnibus/.gitignore +10 -0
- data/omnibus/.kitchen.yml +41 -0
- data/omnibus/.ruby-version +1 -0
- data/omnibus/Berksfile +12 -0
- data/omnibus/Gemfile +21 -0
- data/omnibus/Gemfile.lock +284 -0
- data/omnibus/README.md +120 -0
- data/omnibus/build.sh +3 -0
- data/omnibus/config/patches/eventmachine/disable-extensions.patch +11 -0
- data/omnibus/config/patches/libffi/libffi-3.2.1-disable-multi-os-directory.patch +83 -0
- data/omnibus/config/patches/libffi/libffi-3.2.1-makefiles-sparc.patch +24 -0
- data/omnibus/config/patches/libiconv/config.guess_2015-09-14.patch +2390 -0
- data/omnibus/config/patches/libiconv/libiconv-1.14_srclib_stdio.in.h-remove-gets-declarations.patch +29 -0
- data/omnibus/config/patches/libyaml/v0.1.6.windows-configure.patch +26 -0
- data/omnibus/config/patches/ncurses/config_guess_2015-09-24.patch +857 -0
- data/omnibus/config/patches/ncurses/ncurses-5.9-gcc-5.patch +46 -0
- data/omnibus/config/patches/openssl/openssl-1.0.1f-do-not-build-docs.patch +28 -0
- data/omnibus/config/patches/openssl/openssl-1.0.1q-fix-compiler-flags-table-for-msys.patch +20 -0
- data/omnibus/config/patches/openssl/openssl-1.0.2k-no-bang.patch +17 -0
- data/omnibus/config/patches/openssl/solaris-do-not-define-xopen-source.patch +24 -0
- data/omnibus/config/patches/pkg-config-lite/pkg-config-lite-0.28-1.config.guess.patch +992 -0
- data/omnibus/config/patches/ruby/ruby-2_1_3-no-mkmf.patch +22 -0
- data/omnibus/config/patches/ruby/ruby-aix-atomic.patch +11 -0
- data/omnibus/config/patches/ruby/ruby-aix-configure-all-source.patch +11 -0
- data/omnibus/config/patches/ruby/ruby-aix-configure-use-bash.patch +8 -0
- data/omnibus/config/patches/ruby/ruby-aix-configure.patch +20 -0
- data/omnibus/config/patches/ruby/ruby-aix-vm-core.patch +14 -0
- data/omnibus/config/patches/ruby/ruby-mkmf.patch +29 -0
- data/omnibus/config/patches/ruby/ruby-no-m32-cflag.patch +38 -0
- data/omnibus/config/patches/ruby/ruby-no-stack-protector.patch +13 -0
- data/omnibus/config/patches/ruby/ruby-remove-headc.patch +10 -0
- data/omnibus/config/patches/ruby/ruby-solaris-linux-socket-compat.patch +42 -0
- data/omnibus/config/patches/ruby/ruby-take-windres-rcflags.patch +11 -0
- data/omnibus/config/patches/ruby/ruby_aix_2_1_3_ssl_EAGAIN.patch +19 -0
- data/omnibus/config/patches/ruby/ruby_aix_openssl.patch +10 -0
- data/omnibus/config/patches/ruby/ruby_nano.patch +68 -0
- data/omnibus/config/patches/zlib/zlib-windows-relocate.patch +20 -0
- data/omnibus/config/projects/clusterlb.rb +38 -0
- data/omnibus/config/software/acme.sh.rb +18 -0
- data/omnibus/config/software/cacerts.rb +89 -0
- data/omnibus/config/software/clusterlb-gem.rb +25 -0
- data/omnibus/config/software/clusterlb-zlib.rb +55 -0
- data/omnibus/config/software/config_guess.rb +36 -0
- data/omnibus/config/software/libffi.rb +70 -0
- data/omnibus/config/software/libiconv.rb +62 -0
- data/omnibus/config/software/libtool.rb +55 -0
- data/omnibus/config/software/libyaml.rb +46 -0
- data/omnibus/config/software/makedepend.rb +43 -0
- data/omnibus/config/software/ncurses.rb +154 -0
- data/omnibus/config/software/oggcert-gem.rb +24 -0
- data/omnibus/config/software/openssl.rb +166 -0
- data/omnibus/config/software/pkg-config-lite.rb +45 -0
- data/omnibus/config/software/preparation.rb +30 -0
- data/omnibus/config/software/ruby.rb +238 -0
- data/omnibus/config/software/rubygems.rb +89 -0
- data/omnibus/config/software/util-macros.rb +43 -0
- data/omnibus/config/software/xproto.rb +43 -0
- data/omnibus/config/software/zlib.rb +84 -0
- data/omnibus/omnibus.rb +54 -0
- data/omnibus/package-scripts/clusterlb/postinst +17 -0
- data/omnibus/package-scripts/clusterlb/postrm +9 -0
- data/omnibus/package-scripts/clusterlb/preinst +7 -0
- data/omnibus/package-scripts/clusterlb/prerm +15 -0
- data/omnibus/resources/clusterlb/deb/conffiles.erb +3 -0
- data/omnibus/resources/clusterlb/deb/control.erb +25 -0
- data/omnibus/resources/clusterlb/deb/md5sums.erb +3 -0
- metadata +124 -2
data/build.sh
ADDED
data/clusterlb.gemspec
CHANGED
|
@@ -35,4 +35,7 @@ Gem::Specification.new do |spec|
|
|
|
35
35
|
spec.add_dependency 'console_table', '~> 0.3.0'
|
|
36
36
|
spec.add_dependency 'fileutils', '= 0.7.2'
|
|
37
37
|
spec.add_dependency 'json', '~> 2.2', '>= 2.2.0'
|
|
38
|
+
spec.add_dependency 'inifile', '~> 3.0', '>= 3.0.0'
|
|
39
|
+
spec.add_dependency 'aws-sdk', '~> 3.0', '>= 3.0.1'
|
|
40
|
+
spec.add_dependency 'net-ssh', '~> 5.2'
|
|
38
41
|
end
|
data/exe/clusterlb-stectrl
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
+
$LOAD_PATH << 'lib'
|
|
2
3
|
require 'clusterlb'
|
|
3
4
|
require 'colorize'
|
|
4
5
|
require 'getoptlong'
|
|
6
|
+
require 'net/ssh'
|
|
5
7
|
|
|
6
|
-
include Clusterlb
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
include Clusterlb
|
|
9
10
|
|
|
10
11
|
def display_help
|
|
11
12
|
puts
|
data/lib/clusterlb/version.rb
CHANGED
data/lib/clusterlb.rb
CHANGED
|
@@ -2,6 +2,10 @@ require "clusterlb/version"
|
|
|
2
2
|
require 'json'
|
|
3
3
|
require 'console_table'
|
|
4
4
|
require 'colorize'
|
|
5
|
+
require 'inifile'
|
|
6
|
+
require 'aws-sdk'
|
|
7
|
+
require 'fileutils'
|
|
8
|
+
|
|
5
9
|
|
|
6
10
|
module Clusterlb
|
|
7
11
|
|
|
@@ -14,7 +18,7 @@ module Clusterlb
|
|
|
14
18
|
self.config_file = "#{self.config_dir}/clusterlb.json"
|
|
15
19
|
|
|
16
20
|
def list_lbs
|
|
17
|
-
|
|
21
|
+
ensure_dir_exitsts
|
|
18
22
|
config["clusterlb"]["lb_nodes"]
|
|
19
23
|
end
|
|
20
24
|
|
|
@@ -29,8 +33,86 @@ module Clusterlb
|
|
|
29
33
|
end
|
|
30
34
|
end
|
|
31
35
|
|
|
32
|
-
def enable_site(site,node)
|
|
33
36
|
|
|
37
|
+
|
|
38
|
+
def cmd_nginx(cmd,node) # test | reload | restart | stop | start , lb01 or "all"
|
|
39
|
+
allowed_commands=["test","reload","restart","stop","start"]
|
|
40
|
+
hosts=[]
|
|
41
|
+
if !allowed_commands.include? cmd
|
|
42
|
+
puts "command not in the allowed list: #{allowed_commands.join(',')}".colorize(:red)
|
|
43
|
+
exit 1
|
|
44
|
+
end
|
|
45
|
+
if node == "all"
|
|
46
|
+
list_lbs.each do |h|
|
|
47
|
+
hosts.push "#{h}.#{config["clusterlb"]["lb_nodes_dns_postfix"]}"
|
|
48
|
+
end
|
|
49
|
+
else
|
|
50
|
+
hosts.push "#{node}.#{config["clusterlb"]["lb_nodes_dns_postfix"]}"
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
hosts.each do |h|
|
|
54
|
+
puts "h:".colorize(:light_blue)
|
|
55
|
+
go_ssh(h,"sudo /etc/init.d/nginx #{cmd}",ENV['USER'])
|
|
56
|
+
puts "--\n".colorize(:light_blue)
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def aws_config
|
|
61
|
+
aws_config_file="#{ENV["HOME"]}/.aws/credentials"
|
|
62
|
+
if !File.exists? aws_config_file
|
|
63
|
+
puts "Please configure your AWS credentials in #{ENV["HOME"]}/.aws/credentials, and setup profile with the name of #{config["aws"]["profile"]}"
|
|
64
|
+
exit 1
|
|
65
|
+
end
|
|
66
|
+
awsconfig = IniFile.load(aws_config_file)[config["aws"]["profile"]]
|
|
67
|
+
if awsconfig.empty?
|
|
68
|
+
puts "It looks like you're #{ENV["HOME"]}/.aws/credentials file has no section configured for #{config["aws"]["profile"]} profile. Please Fix this."
|
|
69
|
+
exit 1
|
|
70
|
+
end
|
|
71
|
+
Aws.config.update({
|
|
72
|
+
region: config["aws"]["region"],
|
|
73
|
+
credentials: Aws::Credentials.new(awsconfig['aws_access_key_id'], awsconfig['aws_secret_access_key'])
|
|
74
|
+
})
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def get_s3_cert(fqdn)
|
|
78
|
+
|
|
79
|
+
ensure_dir_exitsts
|
|
80
|
+
aws_config
|
|
81
|
+
certs_dir="#{ENV["CLUSTERLB_HOME"]}/#{config["clusterlb"]["certificates_dir"]}"
|
|
82
|
+
Dir.chdir certs_dir
|
|
83
|
+
|
|
84
|
+
s3 = Aws::S3::Client.new
|
|
85
|
+
resp = s3.list_objects_v2({
|
|
86
|
+
bucket: config["aws"]["ssl_cert_bucket"],
|
|
87
|
+
prefix: fqdn
|
|
88
|
+
})
|
|
89
|
+
date_list=[]
|
|
90
|
+
|
|
91
|
+
if resp["contents"].length <= 0
|
|
92
|
+
puts "Sorry, i found no Certificates with that prefix #{fqdn}"
|
|
93
|
+
exit 1
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
resp["contents"].each do |k|
|
|
97
|
+
date_list.push(DateTime.strptime(k["key"].match('\d{1,2}-\d{1,2}-\d{4}').to_s, "%m-%d-%Y"))
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
file_extensions=["full.pem","key","pem","ca.pem"]
|
|
101
|
+
newest_cert_date_string = date_list.sort.reverse.first.strftime("%-m-%-d-%Y")
|
|
102
|
+
|
|
103
|
+
file_extensions.each do |ext|
|
|
104
|
+
filename="#{fqdn}.#{newest_cert_date_string}.#{ext}"
|
|
105
|
+
puts "Getting: #{filename} "
|
|
106
|
+
sourceObj = Aws::S3::Object.new(config["aws"]["ssl_cert_bucket"], "#{filename}")
|
|
107
|
+
sourceObj.get(response_target: "#{certs_dir}/#{filename}") if !File.exists? "#{certs_dir}/#{filename}"
|
|
108
|
+
FileUtils.ln_s filename, "#{fqdn}.#{ext}", force: true
|
|
109
|
+
FileUtils.chown(nil,config["clusterlb"]["nginx_unix_group"],filename)
|
|
110
|
+
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
def enable_site(site,node)
|
|
34
116
|
Dir.chdir ENV["CLUSTERLB_HOME"]
|
|
35
117
|
link_to_dir="#{config["clusterlb"]["sites_enabled"]}/#{node}"
|
|
36
118
|
|
|
@@ -76,10 +158,17 @@ module Clusterlb
|
|
|
76
158
|
|
|
77
159
|
private
|
|
78
160
|
|
|
79
|
-
def
|
|
161
|
+
def go_ssh(hostname,cmd,username)
|
|
162
|
+
Net::SSH.start(hostname, username, :keys_only => true ) do |ssh|
|
|
163
|
+
puts ssh.exec!(cmd)
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
def ensure_dir_exitsts
|
|
80
168
|
[
|
|
81
169
|
"#{ENV["CLUSTERLB_HOME"]}/#{config["clusterlb"]["sites_enabled"]}",
|
|
82
|
-
"#{ENV["CLUSTERLB_HOME"]}/#{config["clusterlb"]["sites"]}"
|
|
170
|
+
"#{ENV["CLUSTERLB_HOME"]}/#{config["clusterlb"]["sites"]}",
|
|
171
|
+
"#{ENV["CLUSTERLB_HOME"]}/#{config["clusterlb"]["certificates_dir"]}"
|
|
83
172
|
].each do |dir_path|
|
|
84
173
|
FileUtils.mkdir dir_path if !File.directory?(dir_path)
|
|
85
174
|
end
|
|
@@ -103,7 +192,20 @@ module Clusterlb
|
|
|
103
192
|
:sites => "sites",
|
|
104
193
|
:sites_enabled => "sites-enabled",
|
|
105
194
|
:lb_nodes => ["lb01","lb02","lb03"],
|
|
106
|
-
:
|
|
195
|
+
:lb_nodes_dns_postfix => "service_domain.internal.vpc",
|
|
196
|
+
:certificates_dir => "certs",
|
|
197
|
+
:nginx_unix_group => "nginx"
|
|
198
|
+
},
|
|
199
|
+
:aws => {
|
|
200
|
+
:profile => "yourprofile",
|
|
201
|
+
:region => "us-west-2",
|
|
202
|
+
:ssl_cert_bucket => "s3-bucket-name"
|
|
203
|
+
},
|
|
204
|
+
:LetsEncrypt => {
|
|
205
|
+
:sites_enabled => [],
|
|
206
|
+
:challange_dir => "LetsEncrypt/challage",
|
|
207
|
+
:certificates_dir => "LetsEncrypt/certs",
|
|
208
|
+
:acme_home_dir => "LetsEncrypt/.acme.sh"
|
|
107
209
|
}
|
|
108
210
|
}
|
|
109
211
|
File.open(path,"w") do |f|
|
|
@@ -113,4 +215,5 @@ module Clusterlb
|
|
|
113
215
|
|
|
114
216
|
|
|
115
217
|
|
|
218
|
+
|
|
116
219
|
end
|
data/omnibus/.gitignore
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
driver:
|
|
2
|
+
name: vagrant
|
|
3
|
+
forward_agent: yes
|
|
4
|
+
customize:
|
|
5
|
+
cpus: 2
|
|
6
|
+
memory: 2048
|
|
7
|
+
synced_folders:
|
|
8
|
+
- ['.', '/home/vagrant/clusterlb']
|
|
9
|
+
|
|
10
|
+
provisioner:
|
|
11
|
+
name: chef_zero
|
|
12
|
+
|
|
13
|
+
platforms:
|
|
14
|
+
- name: centos-6
|
|
15
|
+
run_list: yum-epel::default
|
|
16
|
+
- name: centos-7
|
|
17
|
+
run_list: yum-epel::default
|
|
18
|
+
- name: debian-8
|
|
19
|
+
run_list: apt::default
|
|
20
|
+
- name: debian-9
|
|
21
|
+
run_list: apt::default
|
|
22
|
+
- name: freebsd-10
|
|
23
|
+
run_list: freebsd::portsnap
|
|
24
|
+
- name: freebsd-11
|
|
25
|
+
run_list: freebsd::portsnap
|
|
26
|
+
- name: ubuntu-14.04
|
|
27
|
+
run_list: apt::default
|
|
28
|
+
- name: ubuntu-16.04
|
|
29
|
+
run_list: apt::default
|
|
30
|
+
- name: ubuntu-18.04
|
|
31
|
+
run_list: apt::default
|
|
32
|
+
|
|
33
|
+
suites:
|
|
34
|
+
- name: default
|
|
35
|
+
run_list: omnibus::default
|
|
36
|
+
attributes:
|
|
37
|
+
omnibus:
|
|
38
|
+
build_user: vagrant
|
|
39
|
+
build_user_group: vagrant
|
|
40
|
+
build_user_password: vagrant
|
|
41
|
+
install_dir: /opt/clusterlb
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.6.0
|
data/omnibus/Berksfile
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
source 'https://supermarket.chef.io'
|
|
2
|
+
|
|
3
|
+
cookbook 'omnibus'
|
|
4
|
+
|
|
5
|
+
# Uncomment to use the latest version of the Omnibus cookbook from GitHub
|
|
6
|
+
# cookbook 'omnibus', github: 'chef-cookbooks/omnibus'
|
|
7
|
+
|
|
8
|
+
group :integration do
|
|
9
|
+
cookbook 'apt', '~> 2.8'
|
|
10
|
+
cookbook 'freebsd', '~> 0.3'
|
|
11
|
+
cookbook 'yum-epel', '~> 0.6'
|
|
12
|
+
end
|
data/omnibus/Gemfile
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
|
+
|
|
3
|
+
# Install omnibus
|
|
4
|
+
gem 'omnibus', '~> 6.0'
|
|
5
|
+
|
|
6
|
+
# Use Chef's software definitions. It is recommended that you write your own
|
|
7
|
+
# software definitions, but you can clone/fork Chef's to get you started.
|
|
8
|
+
# gem 'omnibus-software', github: 'chef/omnibus-software'
|
|
9
|
+
|
|
10
|
+
# This development group is installed by default when you run `bundle install`,
|
|
11
|
+
# but if you are using Omnibus in a CI-based infrastructure, you do not need
|
|
12
|
+
# the Test Kitchen-based build lab. You can skip these unnecessary dependencies
|
|
13
|
+
# by running `bundle install --without development` to speed up build times.
|
|
14
|
+
group :development do
|
|
15
|
+
# Use Berkshelf for resolving cookbook dependencies
|
|
16
|
+
gem 'berkshelf'
|
|
17
|
+
|
|
18
|
+
# Use Test Kitchen with Vagrant for converging the build environment
|
|
19
|
+
gem 'test-kitchen'
|
|
20
|
+
gem 'kitchen-vagrant'
|
|
21
|
+
end
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
GEM
|
|
2
|
+
remote: https://rubygems.org/
|
|
3
|
+
specs:
|
|
4
|
+
addressable (2.6.0)
|
|
5
|
+
public_suffix (>= 2.0.2, < 4.0)
|
|
6
|
+
awesome_print (1.8.0)
|
|
7
|
+
aws-eventstream (1.0.3)
|
|
8
|
+
aws-partitions (1.176.0)
|
|
9
|
+
aws-sdk-core (3.56.0)
|
|
10
|
+
aws-eventstream (~> 1.0, >= 1.0.2)
|
|
11
|
+
aws-partitions (~> 1.0)
|
|
12
|
+
aws-sigv4 (~> 1.1)
|
|
13
|
+
jmespath (~> 1.0)
|
|
14
|
+
aws-sdk-kms (1.22.0)
|
|
15
|
+
aws-sdk-core (~> 3, >= 3.56.0)
|
|
16
|
+
aws-sigv4 (~> 1.1)
|
|
17
|
+
aws-sdk-s3 (1.43.0)
|
|
18
|
+
aws-sdk-core (~> 3, >= 3.56.0)
|
|
19
|
+
aws-sdk-kms (~> 1)
|
|
20
|
+
aws-sigv4 (~> 1.1)
|
|
21
|
+
aws-sigv4 (1.1.0)
|
|
22
|
+
aws-eventstream (~> 1.0, >= 1.0.2)
|
|
23
|
+
bcrypt_pbkdf (1.0.1)
|
|
24
|
+
berkshelf (7.0.8)
|
|
25
|
+
chef (>= 13.6.52)
|
|
26
|
+
chef-config
|
|
27
|
+
cleanroom (~> 1.0)
|
|
28
|
+
concurrent-ruby (~> 1.0)
|
|
29
|
+
minitar (>= 0.6)
|
|
30
|
+
mixlib-archive (>= 0.4, < 2.0)
|
|
31
|
+
mixlib-config (>= 2.2.5)
|
|
32
|
+
mixlib-shellout (>= 2.0, < 4.0)
|
|
33
|
+
octokit (~> 4.0)
|
|
34
|
+
retryable (>= 2.0, < 4.0)
|
|
35
|
+
solve (~> 4.0)
|
|
36
|
+
thor (>= 0.20)
|
|
37
|
+
builder (3.2.3)
|
|
38
|
+
chef (15.0.300)
|
|
39
|
+
addressable
|
|
40
|
+
bcrypt_pbkdf (~> 1.0)
|
|
41
|
+
bundler (>= 1.10)
|
|
42
|
+
chef-config (= 15.0.300)
|
|
43
|
+
chef-zero (>= 14.0.11)
|
|
44
|
+
diff-lcs (~> 1.2, >= 1.2.4)
|
|
45
|
+
ed25519 (~> 1.2)
|
|
46
|
+
erubis (~> 2.7)
|
|
47
|
+
ffi (~> 1.9, >= 1.9.25)
|
|
48
|
+
ffi-libarchive
|
|
49
|
+
ffi-yajl (~> 2.2)
|
|
50
|
+
highline (>= 1.6.9, < 2)
|
|
51
|
+
iniparse (~> 1.4)
|
|
52
|
+
license-acceptance (~> 1.0, >= 1.0.5)
|
|
53
|
+
mixlib-archive (>= 0.4, < 2.0)
|
|
54
|
+
mixlib-authentication (~> 2.1)
|
|
55
|
+
mixlib-cli (>= 1.7, < 3.0)
|
|
56
|
+
mixlib-log (>= 2.0.3, < 4.0)
|
|
57
|
+
mixlib-shellout (>= 2.4, < 4.0)
|
|
58
|
+
net-sftp (~> 2.1, >= 2.1.2)
|
|
59
|
+
net-ssh (>= 4.2, < 6)
|
|
60
|
+
net-ssh-multi (~> 1.2, >= 1.2.1)
|
|
61
|
+
ohai (~> 15.0)
|
|
62
|
+
plist (~> 3.2)
|
|
63
|
+
proxifier (~> 1.0)
|
|
64
|
+
syslog-logger (~> 1.6)
|
|
65
|
+
train-core (~> 2.0, >= 2.0.12)
|
|
66
|
+
tty-screen (~> 0.6)
|
|
67
|
+
uuidtools (~> 2.1.5)
|
|
68
|
+
chef-config (15.0.300)
|
|
69
|
+
addressable
|
|
70
|
+
fuzzyurl
|
|
71
|
+
mixlib-config (>= 2.2.12, < 4.0)
|
|
72
|
+
mixlib-shellout (>= 2.0, < 4.0)
|
|
73
|
+
tomlrb (~> 1.2)
|
|
74
|
+
chef-sugar (5.0.1)
|
|
75
|
+
chef-zero (14.0.12)
|
|
76
|
+
ffi-yajl (~> 2.2)
|
|
77
|
+
hashie (>= 2.0, < 4.0)
|
|
78
|
+
mixlib-log (>= 2.0, < 4.0)
|
|
79
|
+
rack (~> 2.0, >= 2.0.6)
|
|
80
|
+
uuidtools (~> 2.1)
|
|
81
|
+
citrus (3.0.2)
|
|
82
|
+
cleanroom (1.0.0)
|
|
83
|
+
concurrent-ruby (1.1.5)
|
|
84
|
+
diff-lcs (1.3)
|
|
85
|
+
ed25519 (1.2.4)
|
|
86
|
+
equatable (0.6.0)
|
|
87
|
+
erubis (2.7.0)
|
|
88
|
+
faraday (0.15.4)
|
|
89
|
+
multipart-post (>= 1.2, < 3)
|
|
90
|
+
ffi (1.11.1)
|
|
91
|
+
ffi-libarchive (0.4.6)
|
|
92
|
+
ffi (~> 1.0)
|
|
93
|
+
ffi-yajl (2.3.1)
|
|
94
|
+
libyajl2 (~> 1.2)
|
|
95
|
+
fuzzyurl (0.9.0)
|
|
96
|
+
gssapi (1.3.0)
|
|
97
|
+
ffi (>= 1.0.1)
|
|
98
|
+
gyoku (1.3.1)
|
|
99
|
+
builder (>= 2.1.2)
|
|
100
|
+
hashie (3.6.0)
|
|
101
|
+
highline (1.7.10)
|
|
102
|
+
httpclient (2.8.3)
|
|
103
|
+
iniparse (1.4.4)
|
|
104
|
+
iostruct (0.0.4)
|
|
105
|
+
ipaddress (0.8.3)
|
|
106
|
+
jmespath (1.4.0)
|
|
107
|
+
json (2.2.0)
|
|
108
|
+
kitchen-vagrant (1.5.2)
|
|
109
|
+
test-kitchen (>= 1.4, < 3)
|
|
110
|
+
libyajl2 (1.2.0)
|
|
111
|
+
license-acceptance (1.0.13)
|
|
112
|
+
pastel (~> 0.7)
|
|
113
|
+
tomlrb (~> 1.2)
|
|
114
|
+
tty-box (~> 0.3)
|
|
115
|
+
tty-prompt (~> 0.18)
|
|
116
|
+
license_scout (1.0.24)
|
|
117
|
+
ffi-yajl (~> 2.2)
|
|
118
|
+
mixlib-shellout (~> 2.2)
|
|
119
|
+
toml-rb (~> 1.0)
|
|
120
|
+
little-plugger (1.1.4)
|
|
121
|
+
logging (2.2.2)
|
|
122
|
+
little-plugger (~> 1.1)
|
|
123
|
+
multi_json (~> 1.10)
|
|
124
|
+
minitar (0.8)
|
|
125
|
+
mixlib-archive (1.0.1)
|
|
126
|
+
mixlib-log
|
|
127
|
+
mixlib-authentication (2.1.1)
|
|
128
|
+
mixlib-cli (2.1.1)
|
|
129
|
+
mixlib-config (3.0.1)
|
|
130
|
+
tomlrb
|
|
131
|
+
mixlib-install (3.11.18)
|
|
132
|
+
mixlib-shellout
|
|
133
|
+
mixlib-versioning
|
|
134
|
+
thor
|
|
135
|
+
mixlib-log (3.0.1)
|
|
136
|
+
mixlib-shellout (2.4.4)
|
|
137
|
+
mixlib-versioning (1.2.7)
|
|
138
|
+
molinillo (0.6.6)
|
|
139
|
+
multi_json (1.13.1)
|
|
140
|
+
multipart-post (2.0.0)
|
|
141
|
+
necromancer (0.5.0)
|
|
142
|
+
net-scp (2.0.0)
|
|
143
|
+
net-ssh (>= 2.6.5, < 6.0.0)
|
|
144
|
+
net-sftp (2.1.2)
|
|
145
|
+
net-ssh (>= 2.6.5)
|
|
146
|
+
net-ssh (5.2.0)
|
|
147
|
+
net-ssh-gateway (2.0.0)
|
|
148
|
+
net-ssh (>= 4.0.0)
|
|
149
|
+
net-ssh-multi (1.2.1)
|
|
150
|
+
net-ssh (>= 2.6.5)
|
|
151
|
+
net-ssh-gateway (>= 1.2.0)
|
|
152
|
+
nori (2.6.0)
|
|
153
|
+
octokit (4.14.0)
|
|
154
|
+
sawyer (~> 0.8.0, >= 0.5.3)
|
|
155
|
+
ohai (15.1.3)
|
|
156
|
+
chef-config (>= 12.8, < 16)
|
|
157
|
+
ffi (~> 1.9)
|
|
158
|
+
ffi-yajl (~> 2.2)
|
|
159
|
+
ipaddress
|
|
160
|
+
mixlib-cli (>= 1.7.0)
|
|
161
|
+
mixlib-config (>= 2.0, < 4.0)
|
|
162
|
+
mixlib-log (>= 2.0.1, < 4.0)
|
|
163
|
+
mixlib-shellout (>= 2.0, < 4.0)
|
|
164
|
+
plist (~> 3.1)
|
|
165
|
+
systemu (~> 2.6.4)
|
|
166
|
+
wmi-lite (~> 1.0)
|
|
167
|
+
omnibus (6.0.30)
|
|
168
|
+
aws-sdk-s3 (~> 1)
|
|
169
|
+
chef-sugar (>= 3.3)
|
|
170
|
+
cleanroom (~> 1.0)
|
|
171
|
+
ffi-yajl (~> 2.2)
|
|
172
|
+
license_scout (~> 1.0)
|
|
173
|
+
mixlib-shellout (>= 2.0, < 4.0)
|
|
174
|
+
mixlib-versioning
|
|
175
|
+
ohai (>= 13, < 16)
|
|
176
|
+
pedump
|
|
177
|
+
ruby-progressbar (~> 1.7)
|
|
178
|
+
thor (~> 0.18)
|
|
179
|
+
pastel (0.7.3)
|
|
180
|
+
equatable (~> 0.6)
|
|
181
|
+
tty-color (~> 0.5)
|
|
182
|
+
pedump (0.5.2)
|
|
183
|
+
awesome_print
|
|
184
|
+
iostruct (>= 0.0.4)
|
|
185
|
+
multipart-post (~> 2.0.0)
|
|
186
|
+
progressbar
|
|
187
|
+
zhexdump (>= 0.0.2)
|
|
188
|
+
plist (3.5.0)
|
|
189
|
+
progressbar (1.10.1)
|
|
190
|
+
proxifier (1.0.3)
|
|
191
|
+
public_suffix (3.1.0)
|
|
192
|
+
rack (2.0.7)
|
|
193
|
+
retryable (3.0.4)
|
|
194
|
+
ruby-progressbar (1.10.1)
|
|
195
|
+
rubyntlm (0.6.2)
|
|
196
|
+
rubyzip (1.2.3)
|
|
197
|
+
sawyer (0.8.2)
|
|
198
|
+
addressable (>= 2.3.5)
|
|
199
|
+
faraday (> 0.8, < 2.0)
|
|
200
|
+
semverse (3.0.0)
|
|
201
|
+
solve (4.0.2)
|
|
202
|
+
molinillo (~> 0.6)
|
|
203
|
+
semverse (>= 1.1, < 4.0)
|
|
204
|
+
strings (0.1.5)
|
|
205
|
+
strings-ansi (~> 0.1)
|
|
206
|
+
unicode-display_width (~> 1.5)
|
|
207
|
+
unicode_utils (~> 1.4)
|
|
208
|
+
strings-ansi (0.1.0)
|
|
209
|
+
syslog-logger (1.6.8)
|
|
210
|
+
systemu (2.6.5)
|
|
211
|
+
test-kitchen (2.2.5)
|
|
212
|
+
bcrypt_pbkdf (~> 1.0)
|
|
213
|
+
ed25519 (~> 1.2)
|
|
214
|
+
license-acceptance (~> 1.0, >= 1.0.11)
|
|
215
|
+
mixlib-install (~> 3.6)
|
|
216
|
+
mixlib-shellout (>= 1.2, < 3.0)
|
|
217
|
+
net-scp (>= 1.1, < 3.0)
|
|
218
|
+
net-ssh (>= 2.9, < 6.0)
|
|
219
|
+
net-ssh-gateway (>= 1.2, < 3.0)
|
|
220
|
+
thor (~> 0.19)
|
|
221
|
+
winrm (~> 2.0)
|
|
222
|
+
winrm-elevated (~> 1.0)
|
|
223
|
+
winrm-fs (~> 1.1)
|
|
224
|
+
thor (0.20.3)
|
|
225
|
+
toml-rb (1.1.2)
|
|
226
|
+
citrus (~> 3.0, > 3.0)
|
|
227
|
+
tomlrb (1.2.8)
|
|
228
|
+
train-core (2.1.7)
|
|
229
|
+
json (>= 1.8, < 3.0)
|
|
230
|
+
mixlib-shellout (>= 2.0, < 4.0)
|
|
231
|
+
net-scp (>= 1.2, < 3.0)
|
|
232
|
+
net-ssh (>= 2.9, < 6.0)
|
|
233
|
+
winrm (~> 2.0)
|
|
234
|
+
winrm-fs (~> 1.0)
|
|
235
|
+
tty-box (0.4.0)
|
|
236
|
+
pastel (~> 0.7.2)
|
|
237
|
+
strings (~> 0.1.5)
|
|
238
|
+
tty-cursor (~> 0.7)
|
|
239
|
+
tty-color (0.5.0)
|
|
240
|
+
tty-cursor (0.7.0)
|
|
241
|
+
tty-prompt (0.19.0)
|
|
242
|
+
necromancer (~> 0.5.0)
|
|
243
|
+
pastel (~> 0.7.0)
|
|
244
|
+
tty-reader (~> 0.6.0)
|
|
245
|
+
tty-reader (0.6.0)
|
|
246
|
+
tty-cursor (~> 0.7)
|
|
247
|
+
tty-screen (~> 0.7)
|
|
248
|
+
wisper (~> 2.0.0)
|
|
249
|
+
tty-screen (0.7.0)
|
|
250
|
+
unicode-display_width (1.6.0)
|
|
251
|
+
unicode_utils (1.4.0)
|
|
252
|
+
uuidtools (2.1.5)
|
|
253
|
+
winrm (2.3.2)
|
|
254
|
+
builder (>= 2.1.2)
|
|
255
|
+
erubis (~> 2.7)
|
|
256
|
+
gssapi (~> 1.2)
|
|
257
|
+
gyoku (~> 1.0)
|
|
258
|
+
httpclient (~> 2.2, >= 2.2.0.2)
|
|
259
|
+
logging (>= 1.6.1, < 3.0)
|
|
260
|
+
nori (~> 2.0)
|
|
261
|
+
rubyntlm (~> 0.6.0, >= 0.6.1)
|
|
262
|
+
winrm-elevated (1.1.1)
|
|
263
|
+
winrm (~> 2.0)
|
|
264
|
+
winrm-fs (~> 1.0)
|
|
265
|
+
winrm-fs (1.3.2)
|
|
266
|
+
erubis (~> 2.7)
|
|
267
|
+
logging (>= 1.6.1, < 3.0)
|
|
268
|
+
rubyzip (~> 1.1)
|
|
269
|
+
winrm (~> 2.0)
|
|
270
|
+
wisper (2.0.0)
|
|
271
|
+
wmi-lite (1.0.2)
|
|
272
|
+
zhexdump (0.0.2)
|
|
273
|
+
|
|
274
|
+
PLATFORMS
|
|
275
|
+
ruby
|
|
276
|
+
|
|
277
|
+
DEPENDENCIES
|
|
278
|
+
berkshelf
|
|
279
|
+
kitchen-vagrant
|
|
280
|
+
omnibus (~> 6.0)
|
|
281
|
+
test-kitchen
|
|
282
|
+
|
|
283
|
+
BUNDLED WITH
|
|
284
|
+
1.17.2
|
data/omnibus/README.md
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
clusterlb Omnibus project
|
|
2
|
+
=========================
|
|
3
|
+
This project creates full-stack platform-specific packages for
|
|
4
|
+
`clusterlb`!
|
|
5
|
+
|
|
6
|
+
Installation
|
|
7
|
+
------------
|
|
8
|
+
You must have a sane Ruby 2.0.0+ environment with Bundler installed. Ensure all
|
|
9
|
+
the required gems are installed:
|
|
10
|
+
|
|
11
|
+
```shell
|
|
12
|
+
$ bundle install --binstubs
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Usage
|
|
16
|
+
-----
|
|
17
|
+
### Build
|
|
18
|
+
|
|
19
|
+
You create a platform-specific package using the `build project` command:
|
|
20
|
+
|
|
21
|
+
```shell
|
|
22
|
+
$ bin/omnibus build clusterlb
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
The platform/architecture type of the package created will match the platform
|
|
26
|
+
where the `build project` command is invoked. For example, running this command
|
|
27
|
+
on a MacBook Pro will generate a Mac OS X package. After the build completes
|
|
28
|
+
packages will be available in the `pkg/` folder.
|
|
29
|
+
|
|
30
|
+
### Clean
|
|
31
|
+
|
|
32
|
+
You can clean up all temporary files generated during the build process with
|
|
33
|
+
the `clean` command:
|
|
34
|
+
|
|
35
|
+
```shell
|
|
36
|
+
$ bin/omnibus clean clusterlb
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Adding the `--purge` purge option removes __ALL__ files generated during the
|
|
40
|
+
build including the project install directory (`/opt/clusterlb`) and
|
|
41
|
+
the package cache directory (`/var/cache/omnibus/pkg`):
|
|
42
|
+
|
|
43
|
+
```shell
|
|
44
|
+
$ bin/omnibus clean clusterlb --purge
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Publish
|
|
48
|
+
|
|
49
|
+
Omnibus has a built-in mechanism for releasing to a variety of "backends", such
|
|
50
|
+
as Amazon S3. You must set the proper credentials in your `omnibus.rb` config
|
|
51
|
+
file or specify them via the command line.
|
|
52
|
+
|
|
53
|
+
```shell
|
|
54
|
+
$ bin/omnibus publish path/to/*.deb --backend s3
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Help
|
|
58
|
+
|
|
59
|
+
Full help for the Omnibus command line interface can be accessed with the
|
|
60
|
+
`help` command:
|
|
61
|
+
|
|
62
|
+
```shell
|
|
63
|
+
$ bin/omnibus help
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Version Manifest
|
|
67
|
+
----------------
|
|
68
|
+
|
|
69
|
+
Git-based software definitions may specify branches as their
|
|
70
|
+
default_version. In this case, the exact git revision to use will be
|
|
71
|
+
determined at build-time unless a project override (see below) or
|
|
72
|
+
external version manifest is used. To generate a version manifest use
|
|
73
|
+
the `omnibus manifest` command:
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
omnibus manifest PROJECT -l warn
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
This will output a JSON-formatted manifest containing the resolved
|
|
80
|
+
version of every software definition.
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
Kitchen-based Build Environment
|
|
84
|
+
-------------------------------
|
|
85
|
+
Every Omnibus project ships will a project-specific
|
|
86
|
+
[Berksfile](https://docs.chef.io/berkshelf.html) that will allow you to build your omnibus projects on all of the projects listed
|
|
87
|
+
in the `.kitchen.yml`. You can add/remove additional platforms as needed by
|
|
88
|
+
changing the list found in the `.kitchen.yml` `platforms` YAML stanza.
|
|
89
|
+
|
|
90
|
+
This build environment is designed to get you up-and-running quickly. However,
|
|
91
|
+
there is nothing that restricts you to building on other platforms. Simply use
|
|
92
|
+
the [omnibus cookbook](https://github.com/chef-cookbooks/omnibus) to setup
|
|
93
|
+
your desired platform and execute the build steps listed above.
|
|
94
|
+
|
|
95
|
+
The default build environment requires Test Kitchen and VirtualBox for local
|
|
96
|
+
development. Test Kitchen also exposes the ability to provision instances using
|
|
97
|
+
various cloud providers like AWS, DigitalOcean, or OpenStack. For more
|
|
98
|
+
information, please see the [Test Kitchen documentation](https://kitchen.ci/).
|
|
99
|
+
|
|
100
|
+
Once you have tweaked your `.kitchen.yml` (or `.kitchen.local.yml`) to your
|
|
101
|
+
liking, you can bring up an individual build environment using the `kitchen`
|
|
102
|
+
command.
|
|
103
|
+
|
|
104
|
+
```shell
|
|
105
|
+
$ bin/kitchen converge ubuntu-1204
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Then login to the instance and build the project as described in the Usage
|
|
109
|
+
section:
|
|
110
|
+
|
|
111
|
+
```shell
|
|
112
|
+
$ bundle exec kitchen login ubuntu-1204
|
|
113
|
+
[vagrant@ubuntu...] $ cd clusterlb
|
|
114
|
+
[vagrant@ubuntu...] $ bundle install
|
|
115
|
+
[vagrant@ubuntu...] $ ...
|
|
116
|
+
[vagrant@ubuntu...] $ bin/omnibus build clusterlb
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
For a complete list of all commands and platforms, run `kitchen list` or
|
|
120
|
+
`kitchen help`.
|
data/omnibus/build.sh
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
--- eventmachine/eventmachine.gemspec.orig 2016-04-18 09:36:16.825799412 -0700
|
|
2
|
+
+++ eventmachine/eventmachine.gemspec 2016-04-18 09:36:26.878713044 -0700
|
|
3
|
+
@@ -12,7 +12,7 @@
|
|
4
|
+
s.files = `git ls-files README.md CHANGELOG.md GNU LICENSE rakelib ext java lib docs`.split
|
|
5
|
+
s.test_files = `git ls-files tests examples`.split
|
|
6
|
+
|
|
7
|
+
- s.extensions = ["ext/extconf.rb", "ext/fastfilereader/extconf.rb"]
|
|
8
|
+
+ #s.extensions = ["ext/extconf.rb", "ext/fastfilereader/extconf.rb"]
|
|
9
|
+
|
|
10
|
+
s.add_development_dependency 'test-unit', '~> 2.0'
|
|
11
|
+
s.add_development_dependency 'rake-compiler', '~> 0.9.5'
|