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.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -0
  3. data/Gemfile.lock +761 -1
  4. data/build.sh +4 -0
  5. data/clusterlb.gemspec +3 -0
  6. data/exe/clusterlb-stectrl +3 -2
  7. data/lib/clusterlb/version.rb +1 -1
  8. data/lib/clusterlb.rb +108 -5
  9. data/omnibus/.gitignore +10 -0
  10. data/omnibus/.kitchen.yml +41 -0
  11. data/omnibus/.ruby-version +1 -0
  12. data/omnibus/Berksfile +12 -0
  13. data/omnibus/Gemfile +21 -0
  14. data/omnibus/Gemfile.lock +284 -0
  15. data/omnibus/README.md +120 -0
  16. data/omnibus/build.sh +3 -0
  17. data/omnibus/config/patches/eventmachine/disable-extensions.patch +11 -0
  18. data/omnibus/config/patches/libffi/libffi-3.2.1-disable-multi-os-directory.patch +83 -0
  19. data/omnibus/config/patches/libffi/libffi-3.2.1-makefiles-sparc.patch +24 -0
  20. data/omnibus/config/patches/libiconv/config.guess_2015-09-14.patch +2390 -0
  21. data/omnibus/config/patches/libiconv/libiconv-1.14_srclib_stdio.in.h-remove-gets-declarations.patch +29 -0
  22. data/omnibus/config/patches/libyaml/v0.1.6.windows-configure.patch +26 -0
  23. data/omnibus/config/patches/ncurses/config_guess_2015-09-24.patch +857 -0
  24. data/omnibus/config/patches/ncurses/ncurses-5.9-gcc-5.patch +46 -0
  25. data/omnibus/config/patches/openssl/openssl-1.0.1f-do-not-build-docs.patch +28 -0
  26. data/omnibus/config/patches/openssl/openssl-1.0.1q-fix-compiler-flags-table-for-msys.patch +20 -0
  27. data/omnibus/config/patches/openssl/openssl-1.0.2k-no-bang.patch +17 -0
  28. data/omnibus/config/patches/openssl/solaris-do-not-define-xopen-source.patch +24 -0
  29. data/omnibus/config/patches/pkg-config-lite/pkg-config-lite-0.28-1.config.guess.patch +992 -0
  30. data/omnibus/config/patches/ruby/ruby-2_1_3-no-mkmf.patch +22 -0
  31. data/omnibus/config/patches/ruby/ruby-aix-atomic.patch +11 -0
  32. data/omnibus/config/patches/ruby/ruby-aix-configure-all-source.patch +11 -0
  33. data/omnibus/config/patches/ruby/ruby-aix-configure-use-bash.patch +8 -0
  34. data/omnibus/config/patches/ruby/ruby-aix-configure.patch +20 -0
  35. data/omnibus/config/patches/ruby/ruby-aix-vm-core.patch +14 -0
  36. data/omnibus/config/patches/ruby/ruby-mkmf.patch +29 -0
  37. data/omnibus/config/patches/ruby/ruby-no-m32-cflag.patch +38 -0
  38. data/omnibus/config/patches/ruby/ruby-no-stack-protector.patch +13 -0
  39. data/omnibus/config/patches/ruby/ruby-remove-headc.patch +10 -0
  40. data/omnibus/config/patches/ruby/ruby-solaris-linux-socket-compat.patch +42 -0
  41. data/omnibus/config/patches/ruby/ruby-take-windres-rcflags.patch +11 -0
  42. data/omnibus/config/patches/ruby/ruby_aix_2_1_3_ssl_EAGAIN.patch +19 -0
  43. data/omnibus/config/patches/ruby/ruby_aix_openssl.patch +10 -0
  44. data/omnibus/config/patches/ruby/ruby_nano.patch +68 -0
  45. data/omnibus/config/patches/zlib/zlib-windows-relocate.patch +20 -0
  46. data/omnibus/config/projects/clusterlb.rb +38 -0
  47. data/omnibus/config/software/acme.sh.rb +18 -0
  48. data/omnibus/config/software/cacerts.rb +89 -0
  49. data/omnibus/config/software/clusterlb-gem.rb +25 -0
  50. data/omnibus/config/software/clusterlb-zlib.rb +55 -0
  51. data/omnibus/config/software/config_guess.rb +36 -0
  52. data/omnibus/config/software/libffi.rb +70 -0
  53. data/omnibus/config/software/libiconv.rb +62 -0
  54. data/omnibus/config/software/libtool.rb +55 -0
  55. data/omnibus/config/software/libyaml.rb +46 -0
  56. data/omnibus/config/software/makedepend.rb +43 -0
  57. data/omnibus/config/software/ncurses.rb +154 -0
  58. data/omnibus/config/software/oggcert-gem.rb +24 -0
  59. data/omnibus/config/software/openssl.rb +166 -0
  60. data/omnibus/config/software/pkg-config-lite.rb +45 -0
  61. data/omnibus/config/software/preparation.rb +30 -0
  62. data/omnibus/config/software/ruby.rb +238 -0
  63. data/omnibus/config/software/rubygems.rb +89 -0
  64. data/omnibus/config/software/util-macros.rb +43 -0
  65. data/omnibus/config/software/xproto.rb +43 -0
  66. data/omnibus/config/software/zlib.rb +84 -0
  67. data/omnibus/omnibus.rb +54 -0
  68. data/omnibus/package-scripts/clusterlb/postinst +17 -0
  69. data/omnibus/package-scripts/clusterlb/postrm +9 -0
  70. data/omnibus/package-scripts/clusterlb/preinst +7 -0
  71. data/omnibus/package-scripts/clusterlb/prerm +15 -0
  72. data/omnibus/resources/clusterlb/deb/conffiles.erb +3 -0
  73. data/omnibus/resources/clusterlb/deb/control.erb +25 -0
  74. data/omnibus/resources/clusterlb/deb/md5sums.erb +3 -0
  75. metadata +124 -2
data/build.sh ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env bash
2
+ bundle install
3
+ gem build clusterlb.gemspec
4
+ gem push *.gem && rm -vf *.gem
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
@@ -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
- # puts Clusterlb.config["clusterlb"]["sites"]
9
+ include Clusterlb
9
10
 
10
11
  def display_help
11
12
  puts
@@ -1,3 +1,3 @@
1
1
  module Clusterlb
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
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
- ensure_lb_sites_enabled_dir_exitsts
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 ensure_lb_sites_enabled_dir_exitsts
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
- :nfs_mount => "/srv/clusterlb"
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
@@ -0,0 +1,10 @@
1
+ *.gem
2
+ .bundle
3
+ .kitchen/
4
+ .kitchen.local.yml
5
+ vendor/bundle
6
+ pkg/*
7
+ .vagrant
8
+ bin/*
9
+ files/**/cache/
10
+ vendor/cookbooks
@@ -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,3 @@
1
+ #!/usr/bin/env bash
2
+ bundle install --binstubs
3
+ bin/omnibus build clusterlb
@@ -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'