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
<code>#/usr/bin/env python</code>
<code>import os,sys,time,re,traceback</code>
<code>class ceph_depoloy(object):</code>
<code> </code><code>def __init__(self):</code>
<code> </code><code>version = 1.0 </code>
<code> </code><code>#Log insert </code>
<code> </code><code>def LOG(self,info):</code>
<code> </code><code>logfile = </code><code>'/tmp/ceph-deploy.log'</code>
<code> </code><code>files = open(logfile,</code><code>'a'</code><code>)</code>
<code> </code><code>try:</code>
<code> </code><code>files.write(</code><code>'%s : %s'</code><code>%(time.ctime(),info))</code>
<code> </code><code>except IOError:</code>
<code> </code><code>files.close()</code>
<code> </code><code>files.close()</code>
<code> </code>
<code> </code><code>#Disk format /dev/sd*</code>
<code> </code><code>def diskFormat(self,disk,count):</code>
<code> </code><code>key = os.popen(</code><code>"fdisk %s"</code> <code>%disk,</code><code>"w"</code><code>)</code>
<code> </code><code>key.write(</code><code>'d \n'</code><code>)</code>
<code> </code><code>key.write(</code><code>'n \n'</code><code>)</code>
<code> </code><code>key.write(</code><code>'p \n'</code><code>)</code>
<code> </code><code>key.write(</code><code>'1 \n'</code><code>)</code>
<code> </code><code>key.write(</code><code>'\n \n'</code><code>)</code>
<code> </code><code>key.write(</code><code>'w'</code><code>)</code>
<code> </code><code>key.flush()</code>
<code> </code><code>time.sleep(1)</code>
<code> </code><code>os.system(</code><code>"""mkdir -p /data%s""</code><code>" %count)</code>
<code> </code><code>os.system(""</code><code>"mkfs.xfs -f -i size=1024 %s1 ""</code><code>" %disk)</code>
<code> </code><code>print ""</code><code>"mkfs.xfs -f -i size=1024 %s1 ""</code><code>" %disk</code>
<code> </code><code>time.sleep(3)</code>
<code> </code>
<code> </code><code>fp = open('/etc/fstab','r')</code>
<code> </code><code>for i in fp:</code>
<code> </code><code>if not re.search('sdb',i):</code>
<code> </code><code>cmds = ""</code><code>"%s1 /data1 xfs defaults 0 0 ""</code><code>" %disk</code>
<code> </code><code>os.system("</code><code>echo %s >> /etc/fstab</code><code>" %cmds)</code>
<code> </code><code>break</code>
<code> </code><code>self.LOG("</code><code>Disk %s format partion</code><code>" %disk )</code>
<code> </code><code>except:</code>
<code> </code><code>self.LOG(traceback.format_exc())</code>
<code> </code>
<code> </code><code>#Get disk tag </code>
<code> </code><code>def disk_tag(self):</code>
<code> </code><code>disk_tags = list()</code>
<code> </code><code>disk_part = list()</code>
<code> </code><code>for ch in xrange(0x42, 0x5B): </code>
<code> </code><code>disk_tags.append("</code><code>sd</code><code>%</code><code>s</code><code>" %unichr(ch).lower())</code>
<code> </code><code>disk_part.append("</code><code>/dev/sd</code><code>%</code><code>s1</code><code>" %unichr(ch).lower())</code>
<code> </code><code>return disk_tags</code>
<code> </code><code>def work(self):</code>
<code> </code><code>disks = list()</code>
<code> </code><code>disk_tags = self.disk_tag()</code>
<code> </code>
<code> </code><code>devs = os.listdir('/dev/')</code>
<code> </code><code>count = 0 </code>
<code> </code><code>for d in disk_tags:</code>
<code> </code><code>if d in devs:</code>
<code> </code><code>count += 1</code>
<code> </code><code>disk = '/dev/%s' %d </code>
<code> </code><code>self.diskFormat(disk.strip(),count)</code>
<code>if __name__ == "</code><code>__main__":</code>
<code> </code><code>sc = ceph_depoloy()</code>
<code> </code><code>sc.work()</code>
本文轉自 swq499809608 51CTO部落格,原文連結:http://blog.51cto.com/swq499809608/1718984