#!/usr/bin/python
# vim: expandtab:tabstop=4:shiftwidth=4
''' script ssh to host and run command '''
# Reason: disable invalid-name because pylint does not like our naming convention
# pylint: disable=invalid-name
import sys
import argparse
from fabric import Connection
def connect_host(hostname, port, username, keyfile, commands):
s = Connection(
host=hostname,
port=port,
user=username,
connect_kwargs={
'key_filename': [keyfile]
}
)
s.run(commands)
s.close()
def main():
parser=argparse.ArgumentParser(description='''use fabric to connect host and run command ''')
parser.add_argument('-i', '--hostname', required=True,
help="IP or hostname you want to login")
parser.add_argument('-p', '--port', default=22,
help="hostPort you want to login")
parser.add_argument('-u', '--username', required=True,
help="username you want to login")
parser.add_argument('-k', '--keyfile', required=True,
help="ssh key you want to use to login")
parser.add_argument('-c', '--commands', required=True,
help="commands you want to run")
args=parser.parse_args()
print(args.keyfile)
connect_host(args.hostname, args.port, args.username, args.keyfile, args.commands)
if __name__ == "__main__":
main()