python2.7批量创建虚拟机

# -*- coding: cp936 -*-
#jk409 于2014-8-27用python2.7编写的批量复制文件和修改虚拟机配置文件的脚本
import os,os.path,shutil
import re,time
class main:
    def __init__(self,name,drive,sysos):
        self.name     = name
        self.drive    = drive
        self.dst_dir  = self.drive+‘:\\‘+self.name+‘\\‘
        self.dst_file = self.dst_dir+self.name
        self.src_name = sysos
        self.src_dir  = ‘.\\‘+self.src_name+‘\\‘
        self.src_file  = self.src_dir+self.src_name
        #self.dir=os.path.dirname(self.dst_file)
        
    def copy_file(self):
        if (os.path.exists(self.dst_dir) == False):
            os.makedirs(self.dst_dir)
            print ‘开始创建虚拟机,请稍等......‘
            try:
                #shutil.copytree(self.src_dir,self.dst_dir)
                shutil.copyfile(self.src_file+‘-0.vmdk‘,self.dst_file+‘-0.vmdk‘)
                shutil.copyfile(self.src_file+‘.vmdk‘,self.dst_file+‘.vmdk‘)
                shutil.copyfile(self.src_file+‘.vmxf‘,self.dst_file+‘.vmxf‘)
                shutil.copyfile(self.src_file+‘.vmsd‘,self.dst_file+‘.vmsd‘)
                shutil.copyfile(self.src_file+‘.nvram‘,self.dst_file+‘.nvram‘)
            except Exception as err:
                print (err) 
        else:
            print self.dst_dir,‘is Exists !‘

    def mode_file(self):
        #self.dst_file.replace(‘93.101‘,self.name)
        f=file(self.src_file+‘.vmx‘,‘r‘)
        f1=open(self.dst_file+‘.vmx‘,‘w‘)
        for f2 in f.readlines():
            f1.write(f2.replace(self.src_name,self.name))
            #print(f2.replace(‘93.101‘,self.name))
        f1.close()
        f.close()
        print   self.name,‘虚拟机已创建成功!‘
        

while 1:
    print ‘‘‘
            1.创建单个虚拟机 
            2.创建多个虚拟机
            3.退出(quit)
        ‘‘‘
    chioce=raw_input("您的选择[1/2/3]:")
    if chioce == ‘3‘ or chioce == ‘quit‘:
        exit(0)

    if chioce == ‘‘:
        print ‘输入错误,请重新输入......‘
        time.sleep(2)
        continue;
        
    sysos=raw_input(‘请选择你要按照的系统:[windos2003/centos6]:‘)
    if chioce == ‘1‘:
        while 1:
            ip=raw_input(‘请输入虚拟机名称:‘)
            name = ip
            if ip == ‘quit‘: break;
            i=int(ip.split(‘.‘)[1])
            if i%2  == 1: drive=‘E‘;
            if i%2  == 0: drive=‘F‘;
            main(name,drive,sysos).copy_file()
            main(name,drive,sysos).mode_file()
            
    if chioce == ‘2‘:
        ip=raw_input(‘请输入开始IP地址的后2段以及结束IP最后一段[*.*-*]:‘)
        ip00=ip.split(‘-‘)[0]
        ip01=ip00.split(‘.‘)[0]
        ip02=ip00.split(‘.‘)[1]
        print ip02
        ip03=ip.split(‘-‘)[1]
        for i in range(int(ip02),int(ip03),1):
            if i%2  == 1:
                name=ip01+‘.‘+str(i)
                drive=‘E‘
                
            if i%2  == 0:
                name=ip01+‘.‘+str(i)
                drive=‘F‘
            print name
            main(name,drive,sysos).copy_file()
            main(name,drive,sysos).mode_file()
时间: 2025-01-12 17:28:24

python2.7批量创建虚拟机的相关文章

python2.7自动创建虚拟机

python2.7自动创建虚拟机,单台.多台(IP为虚拟机名) [1].[代码] [Python]代码 跳至 [1] ? 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

在centos6.7上安装kvm,批量创建虚拟机

实验环境:dell r710 linux系统使用centos6.7 内存32G,硬盘800G 服务器主机:172.18.204.1 kickstart文件主机:172.18.11.115 ]# modprobe kvm ]# lsmod |grep kvm 显示如下即可继续: 验证:如下文件存在即可 ]# ls /dev/kvm 关闭selinux: ]# vim /etc/sysconfig/selinux selinux=dsabled ]# service NetworkManager s

windows azure使用powershell批量创建虚拟机

这里向大家介绍下如何使用powershell批量创建vm虚拟机,本博文中,我打算用powershell批量创建100台VM. 首先,从官网下载页面,下载并安装Windows Azure PowerShell:http://www.windowsazure.cn/zh-cn/downloads/#cmd-line-tools 安装完毕后以管理员身份运行,右键点击PowerShell图标然后选择以管理员身份运行执行命令Get-AzurePublishSettingsFile-Environment

kvm批量创建虚拟机并自动设定ip和服务器名

1. 说明 kvm比起vmware来说最没有的功能就是用模板部署虚拟机的时候可以自定义ip地址,这对于大量创建vm的场景来说你需要一台台vnc的登录改动ip,显然是很累的,最近我就遇到这种场景(大型的cloudstack和openstack架构不说) 想到了一个方法,就是用一台关了机的虚拟机作为模板,复制它的xml文件可以改mac地址,这样就可以通过mac地址的唯一性而在模板虚拟机中加入一个脚本来根据一个写好在虚拟机中的列表文件来设定相应的ip地址和服务器名.这种方法要求以下步骤 1.模板虚拟机

Hyper-V批量创建虚拟机工具

自己瞎捣腾的小工具,主要是要经常批量创建虚拟机Hyper-V,比较繁琐,就弄了个小工具,自己用...... 下载地址:https://www.lanzous.com/b807706 原文地址:https://blog.51cto.com/1467600/2415538

Vcenter5.5+vmwarePowercli6.5+powershell5批量创建虚拟机

另存为xxx.ps1 ##########################通过模版批量部署虚拟机以下内容需要人工定义变量####################### #Vcenter的IP $vcenterIP ="10.40.24.3" #ESXI的IP $vmhost="10.40.8.2" #该ESXI对应的存储名称 $dataStore="8.2_RAID5" #使用的克隆的模版名字 $vmTemplate="linux-te

openstack 批量创建虚拟机

知识前提: 熟悉openstack 创建vm 的50个步骤 keystone  nova   glance  cinder  neutron 功能需求: 并发   批量创建 100 台 VM VM 初始化 创建结果信息进行check 任务分层: 读取tasK配置 生成taskList 任务列表 并发执行创建任务 任务执行状态的监控 任务执行进度的实时报告 任务执行过程的日志记录 任务执行失败的结果分析 result 结果重新review    实现方案:  ansible cmdb 技术方案:

Azure之批量创建虚拟机(托管磁盘)

一.背景 今天准备整理一个批量创建Azure虚拟机的Json脚本,是基于Stan大神分享的脚本的基础上进行修改编辑,作为学习和自己使用. (源脚本路径:https://github.com/pjshi23/azure-quick-start-china/tree/master/201-2-vms-loadbalancer-lbrules) 环境描述:规划Azure的架构环境时,已经提前规划好虚拟网络,并依照不同的业务创建好了对应的子网,并对子网通过NSG的做访问控制. Azure上的所有虚拟机,

hyper-v中批量创建虚拟机

#虚拟机存放路径 $VHDPath="E:\VHD\" #虚拟机命名规范 $IP="192.168.1." #虚拟机网卡名称 $NetworkName1="NAT" $NetworkName2="NAT" #虚拟机cpu核数 $LogicPrecesserCount=2 #虚拟机内存 $MomeryCount=4GB #模板位置 $MasterDiskPath="D:\mupan\winxp.vhdx" #