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

DEV_TEAM =
{
  :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'},
  :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 => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQCtGlJ6rNof3BcHTh7mPELGfVOThfP9LnRZOXHYnzahok1XjWxhQlafdJYblFyhnC0qpo0IqHO6dqNzYXq3JAXDRT2b3Cuq7M1v9f91Fk3EVtP53k+Q8FdFSgjdGZj/JhrP3Y7yctXKXaUCpqBBTaVd+Wy2KEIPHBAmspCAKHcbrBmOUzuWhREI5+ZU3SQ85c8fkTFifln2Tlrc15StfgwQ/epAMZYuYzWZLwfamBLqQCGTIfUNMF4JdFiuQuDLr5enH3d5gM8GjQr/Z17K8MLZhNmKhqrlTOJfX8egD82TL/SYNpkHgnmyYfj4MF85zu5JuaR2Ab18gAYVyoCJfAzR', :protocol => 'rsa'},
  :Jelmer => {:groups => ['developer'], :identity => '[email protected]', :key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDEPm7EZctIAbdiTYIL/Oelaqiu39JjrSqxD0N80m66w/KLdvQiAEPWRinBKPCzBsmcMKuA0MMoDzykTLgNsVoAnR5hzAOJeL96803vN3FC/LeJw09Mcrh1WXoY6T5KLZFcPuaxwwx4IASWgbTEHetmJVtMey423phs1X1feT6QQaHeh3ryAe3qaMs1Z7ksOEsyifUOC67Aa/G0IbP3QJlYOk1wtLvQ+4+uIoyG3BJ9RM17gMrHMTBH2eUc/Tk4kYv/3LPlajwXb1U0fNNqgrWaOcsDoqsHShh+f0dPj83X1KTBp8FspTcm9ww7KaAjgvWwH6B3XIbsSAwgsQHNaWQj', :protocol => 'rsa'},
  :Wouter => {:groups => ['developer'], :identity => '[email protected]', :key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDPMmfnXWFuuT9h/CRY+S4apJLbBfMpM6wZ1dcqtIk4O5P0rSmnXIZZpZP9XGxU5dP2+y6KGj+Egr4YZClKTHTgTcVEukW3n73c2ObCg5bCW+wJxvk3ns6G046rWACLIkX+Ben3YhBa09mXnPk0CRtzHUIrnMsExaxnaU/cJ7miF9gJq5pm8gwH0f0Ek7hWHtGVralEJX97wwey4rB/0js7YQqKjYtwtUncnVjRntyrLkIZ/gXnY9FZEqH+GGXho6yhqAT2+VkWdax+cyIZxvimfNcA7mCTStv/1pMSrrygMnONZ6TLDdJm+2THh9tRZ3UoWGQUlWJ1QnV5Ox2cVWvj', :protocol => 'rsa'},
  :Stijn => {:groups => ['developer'], :identity => '[email protected]', :key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQD6OcLSJGrR8PQ4hCnPVrnyXbhiCQSeB2l8JitV1NcrbwxwZ15wh4xDNKhhUlIlxGnXWLLadOePEhJ2ESUjEm2x5FJ1p06Bj6rsEDGvKBtUjUq5PXFvKY8qoyc6jV1vjz6FXuZBHk7k9X5JIZhORAs1LcwCpOEQwsfjnJ1KGBanvcFbAIpRej4qlzAKcfDtykC8XTODlSgj6GSqLz65LY+SrdTDe2XZ4qHyntVXbnLjX9fRaVWInU8fkoKUkLogUTRXszAKUfqrJBI7em3FQqOu40gRrdzevS4vTbeNu+fe9rodVmlBKEFdbKELhppke7a/kN04vcATazXJOKoGh/v/', :protocol => 'rsa'},
  :Katrien => {:groups => ['developer'], :identity => '[email protected]', :key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQCnIup0Q/3Ja/YQWrpg20yhWARfS3kdL2obssWvwlVOZv08vsxiH4S5KrYLQW5Fn5ethBsuKDb0yuZzFfsVkbv1uXMYRRqmEW+HnlF+tchsRqpVqUKNTWigtw3zeuDHDsk3GJzQHCpUI8ha/1CBZRre0oxYJCHYH8wslji33ZAn3HxbUH9Y+E3XnWjfrgK05oY5SVgbQ6bf0Fn1UZ3uai7+xh1kNPsUM3Rx91vdhhhQi4SesFwaslYB4gnG010fgp0Hn9DTV7P6Vk7AFVWRw12Zvmhi97BC9IglKP9qHYVf60gObbuuoXK5zBlIrRnbytm7ZXt/kVNT5OL+P5H9OLkt', :protocol => 'rsa'},
  :Dylan => {:groups => ['developer'], :identity => '[email protected]', :key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQCmAqNeSwxGcr4xDyR4PvgeoE3d1m5Neqn/PqtQD3+VNLRAdhUmi91+qmN4s1y5wNGbEeAXiKMB/zYBl1+rXYOJlRCerZWjqzakkjzMCLO/d8pjzP4fUng2/SEuLodQ421dUfXlD7W3mSi5Ojtw6MCfmkiRgcCv83aS2H8qaUr+jPZn0HS7+cV8MRb86dq2UPAafrXgDjItTIRJa3guyx4cCfH2eHgBcgyJVlM+01KVWnlHEkHRcbNHHq89/lTPvGiwhEmU2LuJK509SFcfcE9R+qQ+1rUmDkEkKwrIQemRYl1h6Y52OPYH8+T/s5fo9IzMqGFjt0hbrOBLeQmX0LaF', :protocol => 'rsa'},
  :Bjorn => {:groups => ['developer'], :identity => '[email protected]', :key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQCxsXOhEr9xHB6wEcNfSTkKGgppDXbgVrkKLVot8NgF18We+GWVJVDUfCqAn3Eix123JVpFiZm/u3qnymUSQ//r4FNLCwqtUlWbi3bz5O4AMOlMCx+oTBSEiS0fqTyvg/3oZz1Z3tH1wdL/qM9uygxG2adxcIW5AJ1F+sXZCczYGYFhXkImz/1HaozdkWcTSuvuWZcW5dTgcPTpkUlVo/uYKQSlS8z8iSh1xsI94y4SbYj9j3G5aEugjP0w7AjPBqfY0e4WVA2EkTn878dBN9lvI2RkOeb0cHimnjAgko5a2W17ECMZ7eQpAto0tsN8XiohyGZPGOHvcHPBbIvbCjRD', :protocol => 'rsa'}
}

Instance Method Summary collapse

Instance Method Details

#replace_keysObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/sumodev/commands/push.rb', line 25

def replace_keys
  connect do |ssh|
    say "Pushing SSH keys to #{}@#{host}"
    ssh.exec! 'mkdir -p ~/.ssh; touch ~/.ssh/authorized_keys'
    say "Checking authorized_keys file"
    keys_file = ssh.scp.download!('.ssh/authorized_keys', nil, :verbose => true) do |ch, name, sent, total|
      say "#{name}: #{sent}/#{total}"
    end

    authorized_keys = AuthorizedKeys.new(keys_file)

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

    say 'Uploading updated authorized_keys file'
    ssh.scp.upload!(authorized_keys.to_io, '.ssh/authorized_keys', :verbose => true) do |ch, name, sent, total|
      say "#{name}: #{sent}/#{total}"
    end
  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