ansible的动态传入hosts
code:
1 import ansible.runner 2 import ansible.inventory 3 import loggingMod.init_logger 4 import json 5 import sys 6 7 class rootUser(): 8 9 def __init__(self, ipAddress, userName, remoteUser): 10 self.ipAddress = [ ipAddress ] 11 self.userName = userName 12 self.remoteUser = remoteUser 13 14 '''init base info''' 15 self.webInventory = ansible.inventory.Inventory(self.ipAddress) 16 self.remotePort = 22 17 self.timeOut = 10 18 self.priKeyFile = '/home/%s/.ssh/id_rsa' 19 20 def printLog(self, output): 21 for (hostname, result) in output["contacted"].items(): 22 if 'failed' in result: 23 logging.error('there is a error[%s]' % result['msg']) 24 sys.exit(1) 25 elif 'stderr' in result: 26 if result['stderr']: 27 logging.error('there is a error [%s]' % result['stderr']) 28 sys.exit(1) 29 30 def checkUserExist(self): 31 checkrunner = ansible.runner.Runner( 32 module_name='shell', 33 module_args='id -u %s' % self.userName, 34 timeout=self.timeOut, 35 remote_port=self.remotePort, 36 remote_user=self.remoteUser, 37 # private_key_file=self.priKeyFile, 38 become=True, 39 become_user='root', 40 inventory = self.webInventory 41 ) 42 self.output = checkrunner.run() 43 self.printLog(self.output) 44 45 def addRoot(self): 46 self.checkUserExist() 47 runner = ansible.runner.Runner( 48 module_name='user', 49 module_args='name=%s groups=root append=no' % self.userName, 50 timeout=self.timeOut, 51 remote_port=self.remotePort, 52 remote_user=self.remoteUser, 53 private_key_file=self.priKeyFile, 54 become=True, 55 become_user='root', 56 inventory = self.webInventory 57 ) 58 59 self.result = runner.run() 60 self.printLog(self.result) 61 self.info('success') 62 63 def removeRoot(self): 64 rmRunner = ansible.runner.Runner( 65 module_name='shell', 66 module_args='gpasswd -d %s root' % self.userName, 67 timeout=self.timeOut, 68 remote_port=self.remotePort, 69 remote_user=self.remoteUser, 70 private_key_file=self.priKeyFile, 71 become=True, 72 become_user='root', 73 inventory = self.webInventory 74 ) 75 self.rmOutput = rmRunner.run() 76 self.printLog(self.rmOutput) 77 self.info('success remove root privilege') 78 79 80 theUser = rootUser('192.168.35.125', 'mr.right', 'raingolee') 81 theUser.removeRoot()
学习是一种态度,坚持是质变的利器!

浙公网安备 33010602011771号