kvm中windows的img制作和配置
window的制作(略)

下面具体说下
如何对win的机器来批量修改主机名。大家都知道在win中,如果局域网中有相同的主机名,回触发一个警告。而在批量生成的win中,都是采用同一个镜像启动的,重名问题不可避免的出现了。
解决方法:win中有关计算机名称是存在注册表中的,只要能修改注册表,那么就解决了这个问题,采用libguestfs-tools中的virt-win-reg可以实现这一点
1,创建一个注册表文件
#vim xxx。reg
[HKLM\SYSTEM\ControlSet001\Control\ComputerName\ActiveComputerName]
 "ComputerName"="aaa-12345"
 
 [HKLM\SYSTEM\ControlSet001\Control\ComputerName\ComputerName]
 "ComputerName"="aaa-12345"
 
 [HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters]
 "Hostname"="aaa-12345"
 
 [HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters]
 "NV Hostname"="aaa-12345"
2,使用命令修改注册表
#virt-win-reg —merge xxxx.img xxx.reg
3,开启虚拟机
#virsh start xxxx
拓展:可以通过shell或者python或者其他脚本来实现拓展,对虚拟机进行自动化的配置。

   
   
   
   
  1. Import os 
  2. Import random 
  3. vm_name="xxxx" 
  4. reg_txt = '''[HKLM\SYSTEM\ControlSet001\Control\ComputerName\ActiveComputerName] 
  5.  "ComputerName"="%s" 
  6.   
  7.  [HKLM\SYSTEM\ControlSet001\Control\ComputerName\ComputerName] 
  8.  "ComputerName"="%s" 
  9.   
  10.  [HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters] 
  11.  "Hostname"="%s" 
  12.   
  13.  [HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters] 
  14.  "NV Hostname"="%s" 
  15.  ''' 
  16. randomlist = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' 
  17.  computer_name = "aaa-" + ‘’.join(random.choice(randomlist) for x in range(6)) 
  18. reg_file_path ="/tmp/xxx/bbb.reg" 
  19. output = open(reg_file_path,'w') 
  20. output.write(reg_txt % (computer_name,computer_name,computer_name,computer_name)) 
  21. output.close() 
  22.   
  23.  if os.path.exists(reg_file_path): 
  24.        cmd = "/usr/bin/virt-win-reg --merge %s %s" % (p_w_picpath_original,reg_file_path) 
  25.        if commands.getstatusoutput(cmd)[0] == 0: 
  26.             Print "modify ref successful!!!" 
  27.        else: 
  28.             Print "change the windos img's name did not finished!")