rudy 0.9.8.015 → 0.9.8.016

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,16 +1,25 @@
1
1
  RUDY, CHANGES
2
2
 
3
- * TODO: http://github.com/solutious/rudy/issues/#issue/46
4
- * TODO: http://github.com/solutious/rudy/issues/#issue/43
5
- * TODO: Warning in latest Ruby 1.9.1: httpclient/http.rb:367: warning: variable $KCODE
6
- * rudy create-disks
7
- Executing routine: create-disks
8
- disks:
9
- Timeout (30): execution expired!
10
- Creating volume...
11
- NameError: uninitialized constant Rudy::Metadata::UnknownObject
12
- (S)kip (A)bort:
3
+ #### 0.9.8.016 (2010-10-26) #######################
13
4
 
5
+ NOTE: If you're using Ubuntu you'll need to update your
6
+ configuration to use this release.
7
+
8
+ * ADDED: new config parameter: 'root'. In previous releases
9
+ Rudy used the default user to determine which account to use
10
+ when launching new instances with EC2. With this release,
11
+ you now need to use "root". Either in the defaults config or
12
+ the machines config for you ubuntu instances:
13
+
14
+ defaults do
15
+ root "ubuntu"
16
+ end
17
+
18
+ machines do
19
+ role :ubuntu
20
+ root "ubuntu"
21
+ end
22
+ end
14
23
 
15
24
 
16
25
  #### 0.9.8.015 (2010-10-25) #######################
@@ -482,5 +491,3 @@ NOTE: This is a complete re-write from 0.1
482
491
 
483
492
  * Initial public release
484
493
 
485
-
486
-
data/Rudyfile CHANGED
@@ -72,6 +72,12 @@ machines do
72
72
  #end
73
73
  end
74
74
 
75
+ role :ubuntu do
76
+ ami 'ami-1a837773'
77
+ root 'ubuntu'
78
+ user 'ubuntu'
79
+ end
80
+
75
81
  end
76
82
 
77
83
  end
@@ -181,6 +187,7 @@ defaults do
181
187
  environment :stage
182
188
  role :app
183
189
  color true # Terminal colors? true/false
190
+ #root 'rootuser' # The "root" account (on Ubuntu, set to "ubuntu")
184
191
  #user 'someuser' # The default remote user
185
192
  #localhost 'hostname' # A local hostname instead of localhost
186
193
  #auto true # Skip interactive confirmation?
@@ -44,7 +44,7 @@ module Rudy
44
44
  MAJOR = 0.freeze
45
45
  MINOR = 9.freeze
46
46
  TINY = 8.freeze
47
- PATCH = '015'.freeze
47
+ PATCH = '016'.freeze
48
48
  end
49
49
  def self.to_s; [MAJOR, MINOR, TINY, PATCH].join('.'); end
50
50
  def self.to_f; self.to_s.to_f; end
@@ -153,8 +153,8 @@ module Rudy
153
153
 
154
154
  def update_machines
155
155
  mlist = get_machines
156
- rset = Rye::Set.new(current_group_name, :parallel => @@global.parallel, :user => default_user)
157
- rset.add_key user_keypairpath(default_user)
156
+ rset = Rye::Set.new(current_group_name, :parallel => @@global.parallel, :user => current_machine_root)
157
+ rset.add_key user_keypairpath(current_machine_root)
158
158
  os = current_machine_os
159
159
  mlist.each do |m|
160
160
  li "Updating #{m.name}"
@@ -199,7 +199,7 @@ module Rudy
199
199
  end
200
200
 
201
201
  def ssh
202
-
202
+
203
203
 
204
204
  # TODO: Give this method a good look over
205
205
  pkey = current_user_keypairpath
@@ -275,7 +275,7 @@ module Rudy
275
275
 
276
276
  # Make sure we want to run this command on all instances
277
277
  if !checked && command != :interactive_ssh
278
- execute_check(:low) if rye_opts[:user] == "root"
278
+ execute_check(:low) if current_machine_user == "root"
279
279
  checked = true
280
280
  end
281
281
 
@@ -114,16 +114,16 @@ module Rudy
114
114
  puts "Creating #{Rudy::CONFIG_FILE}"
115
115
  rudy_config = Rudy::Utils.without_indent %Q`
116
116
  accounts { # Account Access Indentifiers
117
- aws { # amazon web services
117
+ aws { # amazon web services
118
118
  name "Rudy Default"
119
119
  accountnum ""
120
120
  accesskey ""
121
121
  secretkey ""
122
- pkey "~/path/2/pk-xxxx.pem"
122
+ pkey "~/path/2/pk-xxxx.pem"
123
123
  cert "~/path/2/cert-xxxx.pem"
124
124
  }
125
125
  }
126
- `
126
+ `
127
127
  Rudy::Utils.write_to_file(Rudy::CONFIG_FILE, rudy_config, 'w', 0600)
128
128
  end
129
129
  end
@@ -1,4 +1,4 @@
1
-
1
+
2
2
 
3
3
 
4
4
  module Rudy
@@ -81,10 +81,23 @@ module Rudy
81
81
  base_dir
82
82
  end
83
83
 
84
+ def default_root
85
+ (@@config.defaults.root || 'root').to_s
86
+ end
87
+
84
88
  def default_user
85
- @@config.defaults.user.to_s || 'root'
89
+ (@@config.defaults.user || current_machine_root).to_s
90
+ end
91
+
92
+ def current_machine_root
93
+ (fetch_machine_param(:root) || default_root).to_s
94
+ end
95
+
96
+ def current_machine_user
97
+ (@@global.user || fetch_machine_param(:user) || default_user || Rudy.sysinfo.user).to_s
86
98
  end
87
99
 
100
+
88
101
  # Returns the name of the current keypair for the given user.
89
102
  # If there's a private key path in the config this will return
90
103
  # the basename (it's assumed the Amazon Keypair has the same
@@ -97,17 +110,22 @@ module Rudy
97
110
  if path
98
111
  Huxtable.keypair_path_to_name(path)
99
112
  else
100
- n = (user.to_s == default_user) ? '' : "-#{user}"
113
+ n = current_user_is_root?(user) ? '' : "-#{user}"
101
114
  "key-%s-%s%s" % [@@global.zone, current_machine_group, n]
102
115
  end
103
116
  end
104
117
  def root_keypairname
105
- user_keypairname :root
118
+ user_keypairname current_machine_root
106
119
  end
107
120
  def current_user_keypairname
108
121
  user_keypairname current_machine_user
109
122
  end
110
123
 
124
+ def current_user_is_root?(user=nil)
125
+ user ||= current_machine_user
126
+ user.to_s == current_machine_root
127
+ end
128
+
111
129
  def user_keypairpath(name=nil)
112
130
  name ||= current_machine_user
113
131
  path = defined_keypairpath name
@@ -123,7 +141,7 @@ module Rudy
123
141
  path
124
142
  end
125
143
  def root_keypairpath
126
- user_keypairpath :root
144
+ user_keypairpath current_machine_root
127
145
  end
128
146
  def current_user_keypairpath
129
147
  user_keypairpath current_machine_user
@@ -197,11 +215,7 @@ module Rudy
197
215
  def current_machine_name
198
216
  [@@global.zone, current_machine_group, @@global.position].join(Rudy::DELIM)
199
217
  end
200
-
201
- def current_machine_user
202
- @@global.user || fetch_machine_param(:user) || default_user || Rudy.sysinfo.user
203
- end
204
-
218
+
205
219
  def current_machine_bucket
206
220
  @@global.bucket || fetch_machine_param(:bucket) || nil
207
221
  end
@@ -95,12 +95,11 @@ module Rudy; module Routines; module Handlers;
95
95
  # NOTE: This will set hostname every time a routine is
96
96
  # run so we may want to make this an explicit action.
97
97
  hntype = current_machine_hostname || :rudy
98
- this_default_user = default_user
99
98
  return if hntype.to_s.to_sym == :default
100
99
  rset.batch do
101
100
  unless self.stash.os == :windows
102
101
  hn = hntype == :rudy ? self.stash.name : hntype
103
- if self.user.to_s == this_default_user
102
+ if self.user.to_s == 'root' # ubuntu has a root user
104
103
  hostname hn
105
104
  else
106
105
  sudo do
@@ -7,7 +7,8 @@ module Rudy; module Routines; module Handlers;
7
7
  ##Rudy::Routines.add_handler :machines, self
8
8
 
9
9
 
10
- def raise_early_exceptions(name=:root)
10
+ def raise_early_exceptions(name=nil)
11
+ name ||= current_machine_root
11
12
  keyname = user_keypairname name
12
13
  kp_file = pkey name
13
14
  if registered? keyname
@@ -20,7 +21,8 @@ module Rudy; module Routines; module Handlers;
20
21
  end
21
22
  end
22
23
 
23
- def create(name=:root)
24
+ def create(name=nil)
25
+ name ||= current_machine_root
24
26
  keyname = user_keypairname name
25
27
  kp_file = pkey name
26
28
 
@@ -53,32 +55,38 @@ module Rudy; module Routines; module Handlers;
53
55
  kp
54
56
  end
55
57
 
56
- def unregister(name=:root)
58
+ def unregister(name=nil)
59
+ name ||= current_machine_root
57
60
  keyname = user_keypairname name
58
61
  raise "Keypair not registered: #{keyname}" unless registered?(name)
59
62
  Rudy::AWS::EC2::Keypairs.destroy keyname
60
63
  end
61
64
 
62
- def delete_pkey(name=:root)
65
+ def delete_pkey(name=nil)
66
+ name ||= current_machine_root
63
67
  kp_file = pkey name
64
68
  raise PrivateKeyNotFound, kp_file unless pkey?(name)
65
69
  File.unlink kp_file
66
70
  end
67
71
 
68
- def exists?(name=:root)
72
+ def exists?(name=nil)
73
+ name ||= current_machine_root
69
74
  registered?(name) && pkey?(name)
70
75
  end
71
76
 
72
- def registered?(name=:root)
77
+ def registered?(name=nil)
78
+ name ||= current_machine_root
73
79
  keyname = user_keypairname name
74
80
  Rudy::AWS::EC2::Keypairs.exists?(keyname)
75
81
  end
76
82
 
77
- def pkey(name=:root)
83
+ def pkey(name=nil)
84
+ name ||= current_machine_root
78
85
  user_keypairpath name
79
86
  end
80
87
 
81
- def pkey?(name=:root)
88
+ def pkey?(name=nil)
89
+ name ||= current_machine_root
82
90
  File.exists? pkey(name)
83
91
  end
84
92
 
@@ -17,7 +17,8 @@ module Rudy::Routines::Handlers;
17
17
  :user => current_machine_user,
18
18
  :ostype => current_machine_os || :unix,
19
19
  :impltype => :linux,
20
- :info => STDOUT
20
+ :info => STDOUT,
21
+ :paranoid => false # doesn't get passed through (Rye bug?)
21
22
  }.merge opts
22
23
 
23
24
  nickname = hostname
@@ -80,7 +81,7 @@ module Rudy::Routines::Handlers;
80
81
  :quiet => Rudy.quiet?
81
82
  }.merge(opts)
82
83
  set = ::Rye::Set.new current_machine_group, opts
83
-
84
+
84
85
  opts.delete(:parallel) # Not used by Rye::Box.new
85
86
 
86
87
  hostnames.each do |m|
@@ -83,7 +83,7 @@ module Rudy; module Routines;
83
83
  ## it prevents shutting down.
84
84
  # Check private key after machine group, otherwise we could get an error
85
85
  # about there being no key which doesn't make sense if the group isn't running.
86
- ##raise Rudy::PrivateKeyNotFound, root_keypairpath unless has_keypair?(:root)
86
+ ##raise Rudy::PrivateKeyNotFound, root_keypairpath unless has_keypair?(current_machine_root)
87
87
  if @routine
88
88
  bad = @routine.keys - @@allowed_actions
89
89
  raise UnsupportedActions.new(@name, bad) unless bad.empty?
@@ -1,7 +1,7 @@
1
1
  @spec = Gem::Specification.new do |s|
2
2
  s.name = "rudy"
3
3
  s.rubyforge_project = 'rudy'
4
- s.version = "0.9.8.015"
4
+ s.version = "0.9.8.016"
5
5
  s.summary = "Rudy: Not your grandparents' EC2 deployment tool."
6
6
  s.description = s.summary
7
7
  s.author = "Delano Mandelbaum"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rudy
3
3
  version: !ruby/object:Gem::Version
4
- hash: 57
4
+ hash: 7
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
9
  - 8
10
- - 15
11
- version: 0.9.8.015
10
+ - 16
11
+ version: 0.9.8.016
12
12
  platform: ruby
13
13
  authors:
14
14
  - Delano Mandelbaum
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-10-25 00:00:00 -04:00
19
+ date: 2010-10-27 00:00:00 -04:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency