#/usr/bin/env pythonimport os,sys,time,re,tracebackclass ceph_depoloy(object): def __init__(self): version = 1.0 #Log insert def LOG(self,info): logfile = '/tmp/ceph-deploy.log' files = open(logfile,'a') try: files.write('%s : %s'%(time.ctime(),info)) except IOError: files.close() files.close() #Disk format /dev/sd* def diskFormat(self,disk,count): try: key = os.popen("fdisk %s" %disk,"w") key.write('d \n') key.write('n \n') key.write('p \n') key.write('1 \n') key.write('\n \n') key.write('\n \n') key.write('w') key.flush() time.sleep(1) os.system("""mkdir -p /data%s""" %count) os.system("""mkfs.xfs -f -i size=1024 %s1 """ %disk) print """mkfs.xfs -f -i size=1024 %s1 """ %disk time.sleep(3) fp = open('/etc/fstab','r') for i in fp: if not re.search('sdb',i): cmds = """%s1 /data1 xfs defaults 0 0 """ %disk os.system("echo %s >> /etc/fstab" %cmds) break self.LOG("Disk %s format partion" %disk ) except: self.LOG(traceback.format_exc()) #Get disk tag def disk_tag(self): disk_tags = list() disk_part = list() for ch in xrange(0x42, 0x5B): disk_tags.append("sd%s" %unichr(ch).lower()) disk_part.append("/dev/sd%s1" %unichr(ch).lower()) return disk_tags def work(self): disks = list() disk_tags = self.disk_tag() devs = os.listdir('/dev/') count = 0 for d in disk_tags: if d in devs: count += 1 disk = '/dev/%s' %d self.diskFormat(disk.strip(),count) if __name__ == "__main__": sc = ceph_depoloy() sc.work()