Skip to content

Instantly share code, notes, and snippets.

@petems
Last active August 29, 2015 14:05
Show Gist options
  • Save petems/e4271a59d8bae128ceec to your computer and use it in GitHub Desktop.
Save petems/e4271a59d8bae128ceec to your computer and use it in GitHub Desktop.
FOG get IP script
#!/usr/bin/env ruby
require 'rubygems' # required for Ruby 1.8.x
require 'bundler/setup'
require 'fog'
@service = Fog::Compute.new(
provider: 'rackspace',
rackspace_username: Fog.credentials[:rackspace_username],
rackspace_api_key: Fog.credentials[:rackspace_api_key],
version: :v2, # Use Next Gen Cloud Servers
rackspace_auth_url: Fog::Rackspace::UK_AUTH_ENDPOINT,
rackspace_region: :lon # Use London Region
)
my_servers = @service.servers
my_servers.each do | server_check |
puts '==='
puts "Name was: #{server_check.name}"
puts "ipv4_address was: #{server_check.ipv4_address}"
puts "access_ipv4_address was: #{server_check.access_ipv4_address}"
# Put SSH key location here
# server_check.private_key_path = './keys/bootstrap'
begin
result = server_check.ssh ['curl ifconfig.me']
print "Public IP for #{server_check.name} is #{result[0].stdout}"
rescue Timeout::Error => e
puts "SSH timed out...: #{e}"
rescue Net::SSH::AuthenticationFailed => e
puts "Auth error: #{e}"
rescue Errno::ECONNREFUSED => e
puts "Connection Refused: #{e}"
end
puts '==='
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment