rs-api-tools 0.0.1
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.
- data/bin/.DS_Store +0 -0
- data/bin/rs-clone-deployment +58 -0
- data/bin/rs-clone-rightscript +79 -0
- data/bin/rs-clone-server +2 -0
- data/bin/rs-describe-alerts +42 -0
- data/bin/rs-describe-attached-vols +83 -0
- data/bin/rs-describe-deployment +85 -0
- data/bin/rs-describe-deployments +42 -0
- data/bin/rs-describe-ec2-ebs-snapshots +41 -0
- data/bin/rs-describe-ec2-ebs-volumes +42 -0
- data/bin/rs-describe-ec2-security-groups +42 -0
- data/bin/rs-describe-keys +42 -0
- data/bin/rs-describe-multi-cloud-images +42 -0
- data/bin/rs-describe-rightscript +81 -0
- data/bin/rs-describe-rightscripts +42 -0
- data/bin/rs-describe-server +97 -0
- data/bin/rs-describe-server-array +80 -0
- data/bin/rs-describe-server-arrays +42 -0
- data/bin/rs-describe-server-self +67 -0
- data/bin/rs-describe-server-templates +42 -0
- data/bin/rs-describe-servers +42 -0
- data/bin/rs-fetch-rightscripts +126 -0
- data/bin/rs-get-array-instances +64 -0
- data/bin/rs-get-server-input +2 -0
- data/bin/rs-get-server-monitoring +64 -0
- data/bin/rs-get-server-sketchy-data +42 -0
- data/bin/rs-launch-deployment +2 -0
- data/bin/rs-launch-server +2 -0
- data/bin/rs-ping-active-servers +44 -0
- data/bin/rs-reboot-deployment +2 -0
- data/bin/rs-reboot-server +75 -0
- data/bin/rs-relaunch-deployment +2 -0
- data/bin/rs-relaunch-server +74 -0
- data/bin/rs-run-all-boot-executables +94 -0
- data/bin/rs-run-rightscript +98 -0
- data/bin/rs-search-tags +69 -0
- data/bin/rs-start-deployment +2 -0
- data/bin/rs-start-server +75 -0
- data/bin/rs-stop-deployment +2 -0
- data/bin/rs-stop-server +2 -0
- data/bin/rs-terminate-all +2 -0
- data/bin/rs-terminate-deployment +2 -0
- data/bin/rs-terminate-self +70 -0
- data/bin/rs-terminate-server +90 -0
- data/bin/rs-update-input +71 -0
- data/bin/rs-update-inputs +71 -0
- data/bin/rs-update-server-array +63 -0
- metadata +194 -0
@@ -0,0 +1,44 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
# rs-ping-active-servers
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'getoptlong'
|
7
|
+
require 'rest_connection'
|
8
|
+
|
9
|
+
def usage
|
10
|
+
puts("rs-ping-active-servers")
|
11
|
+
exit
|
12
|
+
end
|
13
|
+
|
14
|
+
opts = GetoptLong.new(
|
15
|
+
[ '--private', '-p', GetoptLong::OPTIONAL_ARGUMENT ]
|
16
|
+
)
|
17
|
+
|
18
|
+
private_ip = false
|
19
|
+
|
20
|
+
opts.each do |opt, arg|
|
21
|
+
case opt
|
22
|
+
when '--private'
|
23
|
+
private_ip = true
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
puts 'Finding operational servers...'
|
28
|
+
servers = Server.find(:all) {|server| server.state =~ /operational/ }
|
29
|
+
|
30
|
+
ip_address = String.new
|
31
|
+
private_ip_address = false
|
32
|
+
|
33
|
+
servers.each {|server|
|
34
|
+
server.settings
|
35
|
+
if private_ip
|
36
|
+
ip_address = server.private_ip_address
|
37
|
+
else
|
38
|
+
ip_address = server.ip_address
|
39
|
+
end
|
40
|
+
puts ''
|
41
|
+
puts "-- Server: '#{server.nickname}'; AWS ID: #{server.aws_id}; IP: "+ip_address
|
42
|
+
system("ping -c 3 #{ip_address}")
|
43
|
+
puts ''
|
44
|
+
}
|
@@ -0,0 +1,75 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
# rs-reboot-server
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'getoptlong'
|
7
|
+
|
8
|
+
def usage
|
9
|
+
puts("usage: rs-reboot-server [--name <server_nickname> | --id <server_id>]")
|
10
|
+
puts(" [[--verbose]]")
|
11
|
+
end
|
12
|
+
|
13
|
+
def usage_exit
|
14
|
+
usage; exit
|
15
|
+
end
|
16
|
+
|
17
|
+
def help
|
18
|
+
usage
|
19
|
+
puts ''
|
20
|
+
puts 'Reboots a RightScale server.'
|
21
|
+
puts ''
|
22
|
+
puts "examples: rs-reboot-server --name 'Sandbox'"
|
23
|
+
puts ''
|
24
|
+
exit
|
25
|
+
end
|
26
|
+
|
27
|
+
opts = GetoptLong.new(
|
28
|
+
[ '--name', '-n', GetoptLong::OPTIONAL_ARGUMENT ],
|
29
|
+
[ '--id', '-i', GetoptLong::OPTIONAL_ARGUMENT ],
|
30
|
+
[ '--help', '-h', GetoptLong::OPTIONAL_ARGUMENT ],
|
31
|
+
[ '--verbose', '-v', GetoptLong::OPTIONAL_ARGUMENT ]
|
32
|
+
)
|
33
|
+
|
34
|
+
server_name = false
|
35
|
+
server_id = false
|
36
|
+
show_help = false
|
37
|
+
verbose = false
|
38
|
+
|
39
|
+
opts.each do |opt, arg|
|
40
|
+
case opt
|
41
|
+
when '--name'
|
42
|
+
server_name = arg
|
43
|
+
when '--id'
|
44
|
+
server_id = arg
|
45
|
+
when '--help'
|
46
|
+
show_help = true
|
47
|
+
when '--verbose'
|
48
|
+
verbose = true
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
help if show_help
|
53
|
+
|
54
|
+
require 'json'
|
55
|
+
require 'rest_connection'
|
56
|
+
|
57
|
+
usage_exit if !(server_name || server_id)
|
58
|
+
|
59
|
+
# get server
|
60
|
+
if server_name
|
61
|
+
puts "Finding server: '%#{server_name}%'"
|
62
|
+
server = Server.find(:first) { |s| s.nickname =~ /#{server_name}/ }
|
63
|
+
puts "Found server, '#{server.nickname}'."
|
64
|
+
puts server.to_yaml if verbose
|
65
|
+
elsif server_id
|
66
|
+
server = Server.find(server_id.to_i)
|
67
|
+
else
|
68
|
+
usage_exit
|
69
|
+
end
|
70
|
+
|
71
|
+
# reboot server
|
72
|
+
server.reboot()
|
73
|
+
#puts "Running RightScript, '#{right_script.name}' on server, '#{server.nickname}'."
|
74
|
+
#state = server.run_executable(right_script)
|
75
|
+
#state.wait_for_completed
|
@@ -0,0 +1,74 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
# rs-relaunch-server
|
4
|
+
|
5
|
+
require 'getoptlong'
|
6
|
+
|
7
|
+
def usage
|
8
|
+
puts("usage: rs-relaunch-server [--name <server_nickname> | --id <server_id>]")
|
9
|
+
puts(" [[--verbose]]")
|
10
|
+
end
|
11
|
+
|
12
|
+
def usage_exit
|
13
|
+
usage; exit
|
14
|
+
end
|
15
|
+
|
16
|
+
def help
|
17
|
+
usage
|
18
|
+
puts ''
|
19
|
+
puts 'Relaunches a RightScale server.'
|
20
|
+
puts ''
|
21
|
+
puts "examples: rs-relaunch-server --name 'Sandbox'"
|
22
|
+
puts ''
|
23
|
+
exit
|
24
|
+
end
|
25
|
+
|
26
|
+
opts = GetoptLong.new(
|
27
|
+
[ '--name', '-n', GetoptLong::OPTIONAL_ARGUMENT ],
|
28
|
+
[ '--id', '-i', GetoptLong::OPTIONAL_ARGUMENT ],
|
29
|
+
[ '--help', '-h', GetoptLong::OPTIONAL_ARGUMENT ],
|
30
|
+
[ '--verbose', '-v', GetoptLong::OPTIONAL_ARGUMENT ]
|
31
|
+
)
|
32
|
+
|
33
|
+
require 'rubygems'
|
34
|
+
|
35
|
+
server_name = false
|
36
|
+
server_id = false
|
37
|
+
show_help = false
|
38
|
+
verbose = false
|
39
|
+
|
40
|
+
opts.each do |opt, arg|
|
41
|
+
case opt
|
42
|
+
when '--name'
|
43
|
+
server_name = arg
|
44
|
+
when '--id'
|
45
|
+
server_id = arg
|
46
|
+
when '--help'
|
47
|
+
show_help = true
|
48
|
+
when '--verbose'
|
49
|
+
verbose = true
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
help if show_help
|
54
|
+
|
55
|
+
require 'json'
|
56
|
+
require 'rest_connection'
|
57
|
+
|
58
|
+
usage_exit if !(server_name || server_id)
|
59
|
+
|
60
|
+
# get server
|
61
|
+
if server_name
|
62
|
+
puts "Finding server: '%#{server_name}%'"
|
63
|
+
server = Server.find(:first) { |s| s.nickname =~ /#{server_name}/ }
|
64
|
+
puts "Found server, '#{server.nickname}'."
|
65
|
+
puts server.to_yaml if verbose
|
66
|
+
elsif server_id
|
67
|
+
server = Server.find(server_id.to_i)
|
68
|
+
else
|
69
|
+
usage_exit
|
70
|
+
end
|
71
|
+
|
72
|
+
# reboot server
|
73
|
+
puts "Relaunching server, '#{server.nickname}'."
|
74
|
+
server.relaunch()
|
@@ -0,0 +1,94 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
# rs-run-all-boot-executables
|
4
|
+
|
5
|
+
def usage
|
6
|
+
puts("rs-run-all-boot-executables")
|
7
|
+
puts(" usage: rs-run-all-boot-executables [--id <server_id>] [--api [<api_version>]]")
|
8
|
+
end
|
9
|
+
|
10
|
+
def usage_exit
|
11
|
+
usage; exit
|
12
|
+
end
|
13
|
+
|
14
|
+
def help
|
15
|
+
usage
|
16
|
+
puts ''
|
17
|
+
puts 'Runs all boot scripts (RightScripts/Recipes) on a RightScale server, synchronously.'
|
18
|
+
puts ''
|
19
|
+
puts "examples: rs-run-all-boot-execuables --id 1234 --api 1.5 --verbose"
|
20
|
+
puts ''
|
21
|
+
puts 'Note: Use --api 1.5 for non-EC2 servers.'
|
22
|
+
exit
|
23
|
+
end
|
24
|
+
|
25
|
+
require 'getoptlong'
|
26
|
+
|
27
|
+
server_id = false
|
28
|
+
api_version = false
|
29
|
+
show_help = false
|
30
|
+
verbose = false
|
31
|
+
|
32
|
+
opts = GetoptLong.new(
|
33
|
+
[ '--id', '-i', GetoptLong::REQUIRED_ARGUMENT ],
|
34
|
+
[ '--api', '-a', GetoptLong::OPTIONAL_ARGUMENT ],
|
35
|
+
[ '--xml', '-x', GetoptLong::OPTIONAL_ARGUMENT ],
|
36
|
+
[ '--json', '-j', GetoptLong::OPTIONAL_ARGUMENT ],
|
37
|
+
[ '--help', '-h', GetoptLong::OPTIONAL_ARGUMENT ],
|
38
|
+
[ '--verbose', '-v', GetoptLong::OPTIONAL_ARGUMENT ]
|
39
|
+
)
|
40
|
+
|
41
|
+
opts.each do |opt, arg|
|
42
|
+
case opt
|
43
|
+
when '--id'
|
44
|
+
server_id = arg
|
45
|
+
when '--api'
|
46
|
+
api_version = arg
|
47
|
+
when '--help'
|
48
|
+
show_help = true
|
49
|
+
when '--verbose'
|
50
|
+
verbose = true
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
help if show_help
|
55
|
+
usage_exit unless server_id
|
56
|
+
|
57
|
+
require 'rubygems'
|
58
|
+
require 'json'
|
59
|
+
require 'rest_connection'
|
60
|
+
|
61
|
+
# get server
|
62
|
+
puts "Fetching server with ID, #{server_id}."
|
63
|
+
if api_version.to_s == '1.5'
|
64
|
+
server = McServer.find(server_id.to_i)
|
65
|
+
server_settings = server.settings
|
66
|
+
puts server_settings.to_yaml if verbose
|
67
|
+
template_href = server_settings['current_instance']['links'].select { |link| link['rel'] == 'server_template' }.first['href']
|
68
|
+
puts "ServerTemplate HREF: #{template_href}" if verbose
|
69
|
+
else
|
70
|
+
server = Server.find(server_id.to_i)
|
71
|
+
server_settings = server.settings
|
72
|
+
template_href = server_settings['server_template_href']
|
73
|
+
puts server_settings.to_yaml if verbose
|
74
|
+
end
|
75
|
+
|
76
|
+
# get template
|
77
|
+
template_id = template_href.match("[^/]+$")[0]
|
78
|
+
puts "Fetching ServerTemplate with ID, #{template_id}."
|
79
|
+
template = ServerTemplate.find(template_id.to_i)
|
80
|
+
|
81
|
+
# run executables
|
82
|
+
#puts "Executables found:\n#{template.executables.to_yaml}" if debug (todo)
|
83
|
+
puts 'Running executables.'
|
84
|
+
template.executables.each { |executable|
|
85
|
+
unless executable['apply'] != 'boot'
|
86
|
+
if executable['recipe']
|
87
|
+
puts "#{executable['position']}. #{executable['recipe']}"
|
88
|
+
elsif executable['right_script']
|
89
|
+
puts "#{executable['position']}. #{executable['right_script']['name']}"
|
90
|
+
end
|
91
|
+
server.run_executable(executable)
|
92
|
+
#state.wait_for_completed (todo)
|
93
|
+
end
|
94
|
+
}
|
@@ -0,0 +1,98 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
# rs-run-rightscript
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'getoptlong'
|
7
|
+
|
8
|
+
def usage
|
9
|
+
puts("usage: rs-run-rightscript [--name <right_script_name> | --id <right_script_id>]")
|
10
|
+
puts(" [--server-name <server_name> | --server-id <server_id>]")
|
11
|
+
puts(" [[--verbose]]")
|
12
|
+
end
|
13
|
+
|
14
|
+
def usage_exit
|
15
|
+
usage; exit
|
16
|
+
end
|
17
|
+
|
18
|
+
def help
|
19
|
+
usage
|
20
|
+
puts ''
|
21
|
+
puts 'Run a RightScript on a RightScale server.'
|
22
|
+
puts ''
|
23
|
+
puts "examples: rs-run-rightscript --name 'Hello World' --server-name 'Holly'"
|
24
|
+
puts " rs-run-rightscript --id 1337 --server-id 10111101"
|
25
|
+
puts ''
|
26
|
+
exit
|
27
|
+
end
|
28
|
+
|
29
|
+
opts = GetoptLong.new(
|
30
|
+
[ '--name', '-n', GetoptLong::OPTIONAL_ARGUMENT ],
|
31
|
+
[ '--id', '-i', GetoptLong::OPTIONAL_ARGUMENT ],
|
32
|
+
[ '--server-name', '-s', GetoptLong::OPTIONAL_ARGUMENT ],
|
33
|
+
[ '--server-id', '-S', GetoptLong::OPTIONAL_ARGUMENT ],
|
34
|
+
[ '--xml', '-x', GetoptLong::OPTIONAL_ARGUMENT ],
|
35
|
+
[ '--json', '-j', GetoptLong::OPTIONAL_ARGUMENT ],
|
36
|
+
[ '--help', '-h', GetoptLong::OPTIONAL_ARGUMENT ],
|
37
|
+
[ '--verbose', '-v', GetoptLong::OPTIONAL_ARGUMENT ]
|
38
|
+
)
|
39
|
+
|
40
|
+
script_name = false
|
41
|
+
script_id = false
|
42
|
+
server_name = false
|
43
|
+
server_id = false
|
44
|
+
show_help = false
|
45
|
+
verbose = false
|
46
|
+
|
47
|
+
opts.each do |opt, arg|
|
48
|
+
case opt
|
49
|
+
when '--name'
|
50
|
+
script_name = arg
|
51
|
+
when '--id'
|
52
|
+
script_id = arg
|
53
|
+
when '--server-name'
|
54
|
+
server_name = arg
|
55
|
+
when '--server-id'
|
56
|
+
server_id = arg
|
57
|
+
when '--help'
|
58
|
+
show_help = true
|
59
|
+
when '--verbose'
|
60
|
+
verbose = true
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
help if show_help
|
65
|
+
|
66
|
+
require 'json'
|
67
|
+
require 'rest_connection'
|
68
|
+
|
69
|
+
usage_exit if !(script_name || script_id || server_name || server_id)
|
70
|
+
|
71
|
+
# get script
|
72
|
+
if script_name
|
73
|
+
puts "Finding script: '%#{script_name}%'"
|
74
|
+
right_script = RightScript.find(:first) { |s| s.name =~ /#{script_name}/ }
|
75
|
+
puts "Found script, '#{right_script.name}'."
|
76
|
+
puts right_script.to_yaml if verbose
|
77
|
+
elsif script_id
|
78
|
+
right_script = RightScript.find(script_id.to_i)
|
79
|
+
else
|
80
|
+
usage_exit
|
81
|
+
end
|
82
|
+
|
83
|
+
# get server
|
84
|
+
if server_name
|
85
|
+
puts "Finding server: '%#{server_name}%'"
|
86
|
+
server = Server.find(:first) { |s| s.nickname =~ /#{server_name}/ }
|
87
|
+
puts "Found server, '#{server.nickname}'."
|
88
|
+
puts server.to_yaml if verbose
|
89
|
+
elsif server_id
|
90
|
+
server = Server.find(server_id.to_i)
|
91
|
+
else
|
92
|
+
usage_exit
|
93
|
+
end
|
94
|
+
|
95
|
+
# run script on server
|
96
|
+
puts "Running RightScript, '#{right_script.name}' on server, '#{server.nickname}'."
|
97
|
+
state = server.run_executable(right_script)
|
98
|
+
state.wait_for_completed
|
data/bin/rs-search-tags
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
# rs-search-tags
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'getoptlong'
|
7
|
+
|
8
|
+
def usage
|
9
|
+
puts("usage: rs-search-tags [options] --resource <taggable_resource> <tag>")
|
10
|
+
end
|
11
|
+
|
12
|
+
def usage_exit
|
13
|
+
usage; exit
|
14
|
+
end
|
15
|
+
|
16
|
+
def help
|
17
|
+
usage
|
18
|
+
puts ''
|
19
|
+
puts 'Searches for machine tags.'
|
20
|
+
puts ''
|
21
|
+
puts "examples: rs-search-tags --resource Ec2Instance \"foo:bar=foobar\""
|
22
|
+
puts ''
|
23
|
+
exit
|
24
|
+
end
|
25
|
+
|
26
|
+
json = false
|
27
|
+
xml = false
|
28
|
+
verbose = false
|
29
|
+
resource = false
|
30
|
+
|
31
|
+
opts = GetoptLong.new(
|
32
|
+
[ '--resource', '-r', GetoptLong::REQUIRED_ARGUMENT ],
|
33
|
+
[ '--xml', '-x', GetoptLong::OPTIONAL_ARGUMENT ],
|
34
|
+
[ '--json', '-j', GetoptLong::OPTIONAL_ARGUMENT ],
|
35
|
+
[ '--verbose', '-v', GetoptLong::OPTIONAL_ARGUMENT ]
|
36
|
+
)
|
37
|
+
|
38
|
+
opts.each do |opt, arg|
|
39
|
+
case opt
|
40
|
+
when '--resource'
|
41
|
+
resource = arg
|
42
|
+
when '--json'
|
43
|
+
json = true
|
44
|
+
when '--xml'
|
45
|
+
xml = true
|
46
|
+
when '--verbose'
|
47
|
+
verbose = true
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
tag = ARGV[0] if ARGV[0]
|
52
|
+
usage_exit if !(tag || resource || ARGV[0])
|
53
|
+
|
54
|
+
require 'json'
|
55
|
+
require 'rest_connection'
|
56
|
+
|
57
|
+
tags_search = Array.new
|
58
|
+
tags_search.push(tag)
|
59
|
+
#puts Gem.datadir('rest_connection')
|
60
|
+
|
61
|
+
servers = Tag.search(resource, ["#{tag}"])
|
62
|
+
|
63
|
+
if json
|
64
|
+
puts servers.to_json
|
65
|
+
elsif xml
|
66
|
+
puts JSON.parse(servers.to_json).to_xml(:root => 'servers', :skip_instruct => true)
|
67
|
+
else
|
68
|
+
puts servers.to_yaml
|
69
|
+
end
|