VladTheEnterprising 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of VladTheEnterprising might be problematic. Click here for more details.

data.tar.gz.sig CHANGED
Binary file
data/Rakefile CHANGED
@@ -5,10 +5,6 @@ require 'hoe'
5
5
  require 'vlad'
6
6
  require 'highline/import'
7
7
  require './lib/vlad/enterprising.rb'
8
- require './lib/vlad/translator.rb'
9
- require './lib/vlad/environmentalist.rb'
10
- require './lib/vlad/dba/mysql.rb'
11
- require './lib/vlad/xen_master.rb'
12
8
  require './lib/nytd/builder'
13
9
  Hoe.new('VladTheEnterprising', VLAD_ENTERPRISING_VERSION) do |p|
14
10
  p.rubyforge_name = 'vlad_the_enterprising'
@@ -3,8 +3,6 @@ require 'time'
3
3
  require 'highline/import'
4
4
  require 'monitor'
5
5
  require 'resolv'
6
- require 'vlad/translator'
7
- require 'vlad/environmentalist'
8
6
  require 'digest/md5'
9
7
 
10
8
 
@@ -21,11 +19,11 @@ namespace :vlad do
21
19
  :install_profile,
22
20
  :revoke_replication,
23
21
  :grant_replication,
24
- :pre_bootstrap,
22
+ :pre_bootstrap_slave,
25
23
  :install_mysql,
26
24
  :configure_slaves,
27
25
  :dump_master,
28
- :sync_slaves,
26
+ :slave_sync,
29
27
  :start_new_slaves,
30
28
  :check_slaves,]
31
29
 
@@ -70,8 +68,8 @@ namespace :vlad do
70
68
  task :assert_new_slaves do
71
69
  if ENV['BOOTSTRAP']
72
70
  host = ENV['BOOTSTRAP']
73
- unless Rake::RemoteTask::hosts_for(:db_slave).include?(host)
74
- raise "Error: '#{host}' not a :db_slave in target subset '#{target_environment}:#{target_subset}'"
71
+ unless Rake::RemoteTask::hosts_for(:new_slave).include?(host)
72
+ raise "Error: '#{host}' not a :new_slave in target subset '#{target_environment}:#{target_subset}'"
75
73
  end
76
74
  role :new_slave, ENV['BOOTSTRAP']
77
75
  end
@@ -86,7 +84,7 @@ namespace :vlad do
86
84
  end
87
85
  end
88
86
 
89
- remote_task :install_profile, :roles => [:db_master, :db_slave, :config_holder, :new_slave, :slave_reset_candidate ] do
87
+ remote_task :install_profile, :roles => [:db_master, :db_slave, :config_holder, :new_slave, ] do
90
88
  if File.exist?("files/mysql/bash_profile")
91
89
  `cat files/mysql/bash_profile | ssh #{target_host} "cat > .bash_profile"`
92
90
  run "if [ -e .bashrc ]; then rm .bashrc; fi; ln -s .bash_profile .bashrc"
@@ -122,7 +120,7 @@ namespace :vlad do
122
120
  slaves = Rake::RemoteTask.hosts_for(:new_slave)
123
121
  slaves.each do |slave|
124
122
  name = slave.gsub(/\..*$/,"").gsub(/-/, "")
125
- mysql_query "REVOKE ALL PRIVILEGES, GRANT OPTION FROM #{name}_repl", "", :u => "root", :p => mysql_root_password, :force => true
123
+ mysql_query "REVOKE replication slave, super, reload FROM #{name}_repl", "", :u => "root", :p => mysql_root_password, :force => true
126
124
  mysql_query "drop user #{name}_repl", "", :u => "root", :p => mysql_root_password, :force => true
127
125
  end
128
126
  end
@@ -168,9 +166,14 @@ namespace :vlad do
168
166
  slaves.each do |hostname|
169
167
  name = hostname.gsub(/\..*$/,"").gsub(/-/, "")
170
168
  destfile = "files/mysql/configs/#{name}.cnf"
171
- template_file = "files/mysql/templates/#{name}.cnf.tmpl"
172
- unless File.exist? template_file
173
- template_file = "files/mysql/templates/db_slave.cnf.tmpl"
169
+ template_dir = "files/mysql/templates/"
170
+ template_file = ""
171
+ ["db_slave.cnf.tmpl",
172
+ "db_slave_#{os}.cnf.tmpl",
173
+ "#{name}.cnf.tmpl",
174
+ ].each do |t|
175
+ tt = "files/mysql/templates/#{t}"
176
+ template_file = tt if File.exist?(tt)
174
177
  end
175
178
  template = File.read(template_file)
176
179
  server_id = Resolv.getaddress(hostname) + "-" + hostname
@@ -190,7 +193,7 @@ namespace :vlad do
190
193
  end
191
194
  end
192
195
 
193
- remote_task :pre_bootstrap, :roles => [:new_slave] do
196
+ remote_task :pre_bootstrap_slave, :roles => [:new_slave] do
194
197
  mysql_slave_pre_bootstrap
195
198
  end
196
199
 
@@ -249,12 +252,13 @@ namespace :vlad do
249
252
  end
250
253
  end
251
254
 
252
- remote_task :sync_slaves, :roles => :new_slave do
255
+ remote_task :slave_sync, :roles => :new_slave do
253
256
  mysql_dumpfile = ENV["DUMPFILE"] if ENV["DUMPFILE"]
254
257
  run "#{mysql_path_bin}/mysql -vvf -u root -e \"slave stop\;\"; exit 0"
255
258
  run "#{mysql_path_bin}/mysql -vvf -u root -e \"change master to master_host='#{mysql_master_host}', master_user='#{shortname}_repl', master_password='#{mysql_replication_password}';\""
256
259
  run "mkdir -p `dirname #{mysql_dumpfile}`"
257
- scp mysql_dumpfile, mysql_dumpfile
260
+ #puts "#{target_host}"
261
+ scp mysql_dumpfile, mysql_dumpfile
258
262
  run "cat #{mysql_dumpfile} | gunzip - | #{mysql_path_bin}/mysql -uroot"
259
263
  run "rm #{mysql_dumpfile}"
260
264
  end
@@ -276,7 +280,7 @@ namespace :vlad do
276
280
  end
277
281
 
278
282
  desc "shows sync status of all slaves"
279
- remote_task :check_slaves, :roles => :db_slave do
283
+ remote_task :check_slaves, :roles => [:db_slave, :new_slave] do
280
284
  begin
281
285
  assert_slave_running
282
286
  rescue Exception => e
@@ -310,12 +314,12 @@ namespace :vlad do
310
314
  end
311
315
 
312
316
  desc "stops replication on all slaves"
313
- remote_task :stop_slaves, :roles => :db_slave do
317
+ remote_task :stop_slaves, :roles => [:db_slave, :new_slave] do
314
318
  mysql_query "slave stop;", "", :u => "root", :p => mysql_root_password
315
319
  end
316
320
 
317
321
  desc "starts replication on all slaves"
318
- remote_task :start_slaves, :roles => :db_slave do
322
+ remote_task :start_slaves, :roles => [:db_slave, :new_slave] do
319
323
  mysql_query "flush privileges; slave start;", "", :u => "root", :p => mysql_root_password
320
324
  end
321
325
  desc "shows available databases"
@@ -325,7 +329,7 @@ namespace :vlad do
325
329
  end
326
330
  task :show_all_databases => [:ask_root_password]
327
331
 
328
- remote_task :install_dot_my_cnf, :roles => :db_slave do
332
+ remote_task :install_dot_my_cnf, :roles => :new_slave do
329
333
  cnf = "[client]\n"
330
334
  cnf << "host = localhost\n"
331
335
  cnf << "user = root\n"
@@ -336,7 +340,7 @@ namespace :vlad do
336
340
  scp "/tmp/my.cnf.#{target_host}", ".my.cnf"
337
341
  end
338
342
 
339
- remote_task :remove_dot_my_cnf, :roles => :db_slave do
343
+ remote_task :remove_dot_my_cnf, :roles => :new_slave do
340
344
  `rm /tmp/my.cnf.#{target_host}; exit 0`
341
345
  run "rm -f .my.cnf; exit 0"
342
346
  end
@@ -2,9 +2,9 @@ require 'vlad'
2
2
  require 'vlad/translator'
3
3
  require 'vlad/environmentalist'
4
4
  require 'vlad/xen_master'
5
- require 'vlad/dba/mysql'
5
+ require 'vlad/dba'
6
6
  require 'vlad/webmaster/apache'
7
- VLAD_ENTERPRISING_VERSION = '0.1.5' unless defined? VLAD_ENTERPRISING_VERSION
7
+ VLAD_ENTERPRISING_VERSION = '0.1.6' unless defined? VLAD_ENTERPRISING_VERSION
8
8
 
9
9
 
10
10
  # rsync the given files to <tt>target_host</tt>.
@@ -10,23 +10,27 @@ namespace :vlad do
10
10
  end
11
11
  end
12
12
 
13
- if target
14
- if target.to_s.match(/([a-z0-9_-]+):([a-z0-9_-]+)/i)
15
- f = File.join( 'config', 'environments', "#{$1}.rb")
16
- set(:target_environment, "#{$1}".to_sym)
17
- Kernel.load f if File.exists? f
18
- f = File.join('config', 'environments', "#{$1}", "#{$2}.rb")
19
- set(:target_subset, "#{$2}".to_sym)
20
- Kernel.load f if File.exists? f
21
- elsif target.to_s.match(/([a-z0-9_-]+)/i)
22
- f = File.join('config', 'environments', "#{$1}.rb")
23
- set(:target_environment, $1.to_sym)
24
- Kernel.load f if File.exists? f
25
- all_files = Dir.glob( File.join( "config", "environments", $1, "*.rb") )
26
- all_files.each do |f|
27
- Kernel.load f
13
+ unless defined? TARGET_PARSED
14
+ if target
15
+ if target.to_s.match(/([a-z0-9_-]+):([a-z0-9_-]+)/i)
16
+ f = File.join( 'config', 'environments', "#{$1}.rb")
17
+ set(:target_environment, "#{$1}".to_sym)
18
+ Kernel.load f if File.exists? f
19
+ f = File.join('config', 'environments', "#{$1}", "#{$2}.rb")
20
+ set(:target_subset, "#{$2}".to_sym)
21
+ Kernel.load f if File.exists? f
22
+ elsif target.to_s.match(/([a-z0-9_-]+)/i)
23
+ f = File.join('config', 'environments', "#{$1}.rb")
24
+ set(:target_environment, $1.to_sym)
25
+ Kernel.load f if File.exists? f
26
+ all_files = Dir.glob( File.join( "config", "environments", $1, "*.rb") )
27
+ all_files.each do |f|
28
+ Kernel.load f
29
+ end
28
30
  end
29
31
  end
32
+ TARGET_PARSED = true
30
33
  end
31
34
 
32
35
 
36
+
metadata CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: VladTheEnterprising
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.1.5
6
+ version: 0.1.6
7
7
  date: 2007-10-17 00:00:00 -04:00
8
8
  summary: Adds 'enterprisey' features to Vlad The Deployer
9
9
  require_paths:
metadata.gz.sig CHANGED
Binary file