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