Class: Sumodev::Commands::Push

Inherits:
Thor::Group
  • Object
show all
Defined in:
lib/sumodev/commands/push.rb

Defined Under Namespace

Classes: AuthorizedKeys

Constant Summary collapse

Jan =
{:groups => ['admin', 'developer', 'root'], :identity => '[email protected]', :key => 'AAAAB3NzaC1kc3MAAACBAP41tq+1L7MqdI2+ugo0wq5IDcLSWpXXxSqHwrDVpqLcNNjpCd1QMnJ0ZY0HaRZ9YVwMFzu/cyDTgD9JZnQjcBjNhKfgOC2GX3IEsJAEM/O2kzmikTK4xFqIeeTdIqqICxlMimrFNqKoXJARueNlPITwGkkEiLy9EydTs9Cj3cHHAAAAFQD7RLZI6BtwVjgRe4XPXZdJBFN2CwAAAIEAvWaJjP0vueLwDYB2FDIm8VT8Wm4glne9Ilo0hylM2HVffdCICqjIIjn+bcYTg3SfzQcXcUYsk1sKQ0nKdICOl+dfiQs3/rTW3NNner1UewDeas9nSJN3e2Y4hyXS1tI9UOXzN76XHJM8GBz7RAhFB4ZHKVeZHsyrG2yXKiQTO8IAAACAUcAms34UNsbBLGZ3MOPJ18A2aYr6ju+N2VPkSd74sC1K6E0DSda/xJPKffZUPCWqmEdjhkXDvnNq73R4YG9x8dvXGCSzdSXMJfr9lYQNt9PT8D18UVUuZHgC8PjKEL7Xw8xbd2yOp58SADMpEZdKSMmhHsgFuW1T2TKGM72Pmd4=', :protocol => 'dss'}
Tijs =
{:groups => ['admin', 'developer', 'root'], :identity => '[email protected]', :key => 'AAAAB3NzaC1yc2EAAAABIwAAAQEAueoZUITVE/YVZVZVi4cngE7FPK5+a3mt0mTtELdFM4JmXg7UmrQ1On2IwIdHw5Cq+VnrutRgWvQkfp+WaC2tzOrlzccpMeMv5lTRH7bRp6qR4FivJ/Aq7YeUrNJpzncUVTwyeHrveuhfCxEQoOIM2gN0Y54NGDTOp01D7GHApsYkObsw/3N7jgQVoL6xKPwRTMI52tFzUlkv+df78vx87X7bYK05dO4Ol8U0yFyKlV17+BEM4UuI/aTXhkNsBVNCqiksaqQwEGDK8IqyrNFYhbRwYDunTXc8zdd6imYfEJUSNdjOzTXUNUc15ssTMBsGpfvF/2bhYRlHuRWZP9BUqw==', :protocol => 'rsa'}
Jens =
{:groups => ['admin', 'root'], :identity => '[email protected]', :key => 'AAAAB3NzaC1yc2EAAAABIwAAAIEAojZQXjhcy3fpHNEBqlj2C3EV+G+vOTSBvcn+U3Sq7eml+NrQqGoasAvC+c6bajJTRB0ZujynsUAWghDM43zY1SIbZl6PC0jdZg7qGjzlpOFdG96b84agiE6Dnz8Mjnb6846tJdslRV2Yyc9Y8iSgW3s3mszmW2hqHpZ4EqbVuPc=', :protocol => 'rsa'}
Niels =
{:groups => ['developer'], :identity => '[email protected]', :key => 'AAAAB3NzaC1yc2EAAAABIwAAAQEA3BAs8M+BuSsYwG0LsrrXmMveVgCd3mZOqvUFjJtWwO5ahzRPEDuT9eJGlwJwmVKk5aV76v/8ZFTJ/zgxYoGJF02j1tXaCyaDTnkRwS3AetFq3ZncIwLFgRDYgd+qI42E9VJg7WVXQKR+2jTusRFTZCfqp7/4sVZSWwKrbA8b5jEPWhgqSb8ZWGsbIQfFAXDQwr6gftkSOR9ABfXt3ULy2aGmtiZKQhxiIL7/0YT2xPtLshpWe7U9Y0nH5CFWOTDHILmzBYnVqvksEiFg+r4dtLPLAeGCwCo5ZSe8ae9JWyNtXELPNKi7Ds06ghtcSKuMrgYhdz9539JZYhy5IWtYNQ==', :protocol => 'rsa'}
Mathias =
{:groups => ['developer'], :identity => '[email protected]', :key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDLBHWXILbcsYfoDYCgJq4B3Q9ElcZq0hRWo8otXWsOP1pYU8Kq2thWbIB+RkuZr8Y7DMI2XtGXSquWJdx0Beddxt+yVoE/eReorVuB74bnEVXYtcZ8+mNHU6paC1T4XHMWjEXSgaEaSPdxnQxPPzQ+YDuJkYWaCrLxDyWe4sqio0R5SA5CasTkei5dHIfIzj8a16JvTj/FlbNrGHzdSwWY04QoSRdN3rpWJ4krzlHz5NIJmBhUxW15d9NgmKPGJYHmUyY1nfXdb82/zUS1vt6A/46hMJzRXhQuxzNVNBFN2q8d/bXhsNW6AZ467auWO3NLBUOfGHMX+Ga6FQiyCdhd', :protocol => 'rsa'}
Jonas =
{:groups => ['developer'], :identity => '[email protected]', :key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDM4PlwtAMTRW78OsIdmeHhWKxeJ6GvYN/06OJsRpdvqcviDkghgHlB5hDz9ceMb96WUuIJQi/UFM6DcED4md4GVKoql8NmV3upaI6J+K6LPVIBfBG5C9S/NCXAInQozBisvfqNU5rRsh06HCsEnAMIOkgyqX/ZSgwat0XqfL/7w7NLT2QC1Zp08HbTJauFMljzGz6RErWlfy3XYTpMJA6Cnj9S2qn2/7wuGavLJrIo5swKqabO2SFV0MERgmTmPjDHYJoCffZjF2r8fG2NjZWVlPNuqesWP0wNlKvkFVRU3XYB7hsNjolCNzxAw3SjaqyuHo3RDvgks6gs2GSh8iev', :protocol => 'rsa'}
Toon =
{:groups => ['developer'], :identity => '[email protected]', :key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDj58FxlLxFS9Ul8qeQU2OU48VLWccVdvtkDcjyg9jtc3yhABu/HfZf7lISonIEHFr7YVifE5d1zHWhKfjq5IETv5dklfac2KUSvgr1f7P8SuLQ8l4ydMasuYr5nbhBihEgic8ulBFFu3lex1ogsfuyB30ach6unP1lSP9qMVJDsjnsFkl6tIXFN5PuqMsEkq7OW7OPMwTKpA3TYBSbbULBfRmJUzdIOUoteSu5GXOoDcI7ztTBfa/ypuZL8Al+G9ihbOShMUkpI7ZFSQ+Wm8Hgst6NqX+TzZ49sF+3wayRsoFQg8O1a76INxM/7PeVHJxyBb5qi0jvGwXuJqrWX9E5', :protocol => 'rsa'}
Jelmer =
{:groups => ['developer'], :identity => '[email protected]', :key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDEPm7EZctIAbdiTYIL/Oelaqiu39JjrSqxD0N80m66w/KLdvQiAEPWRinBKPCzBsmcMKuA0MMoDzykTLgNsVoAnR5hzAOJeL96803vN3FC/LeJw09Mcrh1WXoY6T5KLZFcPuaxwwx4IASWgbTEHetmJVtMey423phs1X1feT6QQaHeh3ryAe3qaMs1Z7ksOEsyifUOC67Aa/G0IbP3QJlYOk1wtLvQ+4+uIoyG3BJ9RM17gMrHMTBH2eUc/Tk4kYv/3LPlajwXb1U0fNNqgrWaOcsDoqsHShh+f0dPj83X1KTBp8FspTcm9ww7KaAjgvWwH6B3XIbsSAwgsQHNaWQj', :protocol => 'rsa'}
Lisette =
{:groups => ['developer'], :identity => '[email protected]', :key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQCv2hn+PeiWFPp+cRUZIM+ic5QvCgaXyeBY/zM6SVlspG7diY2pOOytEfdKAeNQfJKqpWeVSGtbAbahBlLThhDe+J6TUisAhJ9ngi3NyJO3w4FFR5QSMn/gDa09iWFdKY4ctSRe0qWF6Z3SsESDSfCd3Yw2Q1HGw9YGX+y6rh7CPk1kLACsC085jNYX1DIgUV9KJmeoWlAkaaBYq4FlNEObfNrWIhMVv9hzu8R7Ktv8NI4VgaSSTVUjxxKiUxuuipyMXCxVgCNBRdQXxVu2Zwle6r58fcxhO5sMK8Y9S0cF1h2tmQbOYmigmtQv+qQsbeyoYg5ScQWNSJvMgG5uEVwz', :protocol => 'rsa'}

Instance Method Summary collapse

Instance Method Details

#replace_keysObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/sumodev/commands/push.rb', line 22

def replace_keys
  connect do |ssh|
    say "Pushing SSH keys to #{}@#{host}"
    ssh.exec! 'mkdir -p ~/.ssh; touch ~/.ssh/authorized_keys'
    keys_file = ssh.scp.download!('.ssh/authorized_keys')

    authorized_keys = AuthorizedKeys.new(keys_file)

    authorized_users.each do |user|
      say "Adding #{user[:identity]}"
      authorized_keys.add user
    end

    ssh.scp.upload(authorized_keys.to_io, '.ssh/authorized_keys')
  end
rescue Net::SCP::Error
  $stderr.puts
  $stderr.puts "ERROR - There seems to be an error fetching the file from the server."
  $stderr.puts "Make sure you have SSH access and a working shell"
  exit 1
end