1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#/usr/bin/env python
 
import os,sys,time,re,traceback
 
 
class 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()

本文转自 swq499809608 51CTO博客,原文链接:http://blog.51cto.com/swq499809608/1718984