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或者其他脚本来实现拓展,对虚拟机进行自动化的配置。
Import os
Import random
vm_name="xxxx"
reg_txt='''[HKLM\SYSTEM\ControlSet001\Control\ComputerName\ActiveComputerName]
"ComputerName"="%s"
[HKLM\SYSTEM\ControlSet001\Control\ComputerName\ComputerName]
"ComputerName"="%s"
[HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters]
"Hostname"="%s"
[HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters]
"NV Hostname"="%s"
'''
randomlist='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
computer_name="aaa-"+ ‘’.join(random.choice(randomlist) for x in range(6))
reg_file_path="/tmp/xxx/bbb.reg"
output=open(reg_file_path,'w')
output.write(reg_txt % (computer_name,computer_name,computer_name,computer_name))
output.close()
if os.path.exists(reg_file_path):
cmd="/usr/bin/virt-win-reg --merge %s %s"% (p_w_picpath_original,reg_file_path)
if commands.getstatusoutput(cmd)[0] == 0:
Print "modify ref successful!!!"
else:
Print "change the windos img's name did not finished!")