公司一批PC机需要安装多个虚拟机跑任务,搞来搞去决定用centos7安装KVM来跑。于是先折腾了一下午,利用早先搭建好的cobbler给PC机安装OS。然后fabric批量部署。

环境:centos7  gnom桌面   关闭了SELINUX,FIREWALLD.

工具:fabric

虚拟机:nat模式  安装xp

技术有限,所以在cobbler装完OS后又手动给PC一个个固定了IP。

安装fabric过程不再赘述

vim fabfile.py #-*- encoding:utf-8 -*- from fabric.api import * env.user = "root" env.password = "root" env.hosts = ['192.168.0.62','192.168.0.63','192.168.0.64','192.168.0.65','192.168.0.66','192.168.0.67','192.168.0.68','192.168.0.69','192.168.0.70','192.168.0.71','192.168.0.72','192.168.0.73','192.168.0.74','192.168.0.75','192.168.0.76','192.168.0.77','192.168.0.78','192.168.0.79','192.168.0.202','192.168.0.203','192.168.0.204','192.168.0.205','192.168.0.206','192.168.0.207','192.168.0.208','192.168.0.209','192.168.0.211','192.168.0.212'] #更换yum源,添加epel源 def change_yum(): run('mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup') run('wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo') run('yum -y install epel-release') #yum安装kvm def install_kvm(): run('yum -y install qemu-kvm qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer bridge-utils')
#开机自启动
def enable_kvm():
  run('systemctl start libvirtd')
  run('systemctl enabled libvirtd')
  run('systemctl enabled libvirt-guests.service') 保持文件退出。 使用fab -l查看当前可用方法。 使用fab change_yum等方法批量部署。 如此KVM便安装完成。 进入图形界面。傻瓜式安装xp虚拟机。将XP中所需环境部署好后,克隆及分发虚拟机。 #使用命令克隆虚拟机,预先关闭虚拟机。  virt-clone -o winxp1 -n winxp2 -f /home/xp_spool/winxp2.qcow2 #-o 指定要克隆的虚拟机,-n 指定克隆后生成的虚拟机名, -f 指定虚拟机磁盘镜像存放位置及名称。 当完成克隆后,会在/etc/libvirt/qemu目录下生成对应的xml配置文件,里面记载了虚拟机的各种配置。 此时,本机克隆完成了。 异地克隆虚拟机需要借助fab vim fabfile.py   #将xml文件分发到各实体机中。 def put_xml():
  put(local_path='/etc/libvirt/qemu/winxp[1-5].xml',remote_path='/etc/libvirt/qemu/') #将本地克隆的虚拟机副本镜像分发到各实体机中。注意路径要与xml中的配置的一样。 def put_disk():
put(local_path='/home/xp_spool/winxp[1-5].qcow2',remote_path='/home/xp_spool/') #应用xml配置启用虚拟机。 def define_xml():
  for i in range(1,6):
    run('virsh define /etc/libvirt/qemu/winxp%s.xml' % i) #创建快照。 def creat_kuaizhao():
  for i in range(1,6):
    run('virsh snapshot-create winxp%i'% i) 奇怪现象:由于采用的nat模式,所以centos中的路由转发功能应该打开,但是安装kvm后大部分主机都自动开启了,只有少部分没有。 于是无脑 def set_ip_forward():   run('echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf') #使路由生效   run('sysctl -p ') 于是所有xp虚拟机都可以上网了。

  

利用fabric批量安装kvm虚拟机及其xp的更多相关文章

  1. 11.安装KVM虚拟机

    安装KVM虚拟机是一大难题,不按照虚拟机物理机128G内存和强劲的CPU无法充分利用.也不便于后面的jenkins自动部署.安装KVM虚拟机过程我是借鉴了网上下载的马哥linux   KVM那块的内容 ...

  2. CentOS 7.5 安装KVM虚拟机(Windows)

    一.KVM环境搭建1.检测系统是否支持cat /proc/cpuinfo | egrep 'vmx|svm' KVM是基于x86虚拟化扩展(Intel VT 或者 AMD-V)技术的虚拟机软件,所以查 ...

  3. 命令行安装kvm虚拟机、桥接网络、用virt-manager管理

    宿主机CentOS Linux release 7.2.1511 (Core),内核3.10.0-327.el7.x86_64 1.配置宿主机网络桥接 想让虚拟机有自己的ip且外网可访问,需要在安装虚 ...

  4. Centos7使用pxe安装KVM虚拟机

    Centos7使用pxe安装KVM虚拟机 一.安装服务所需的软件 [root@localhost ~]yum install nginx dhcp vsftpd syslinux -y [root@l ...

  5. (转)CentOS7安装KVM虚拟机详解

    原文:https://github.com/jaywcjlove/handbook/blob/master/CentOS/CentOS7%E5%AE%89%E8%A3%85KVM%E8%99%9A%E ...

  6. centos7安装kvm虚拟机

    一 centos7安装kvm虚拟机 1.验证CPU是否支持KVM 结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的. [root@centos ~]# egrep '(vmx| ...

  7. centos6.2安装kvm虚拟机

    http://www.wenzizone.com/2012/03/06/centos_6-2_install_kvm.html KVM虚拟机简介 kernel-based Virtual Machin ...

  8. 如何在CentOS6.4系统上安装KVM虚拟机

    CentOS6.4系统上安装KVM虚拟机   备注:以下操作说明是经过实验验证后总结出来的笔录,有需要的朋友可以进行参考,以下是基于VMware12.5.2虚拟机版本上安装的实验环境. 一.安装KVM ...

  9. vmware安装kvm虚拟机

    1. 概述 本篇博客主要使用运行在win10专业版上的vmware workstation 15 pro虚拟化软件,安装centos7.7最小化系统,并在centos7上安装kvm虚拟机,实现快速创建 ...

随机推荐

  1. Unity 设置2台摄像机的叠加

    如果Camera1和Camera2拍摄的物体各自在摄像机视野内,如果在同一个屏幕上把2件物体都显示出来? 1,Camera1的Depth设置为-1 2,Camera2的Depth设置为0,同时Clea ...

  2. Unity 控制public/private 是否暴露给Inspector面板

    默认情况下Public是暴露给Unity,protect/private是不暴露给Unity的,但有时候想让外部引用,又不想暴露给Unity,怎么办? 对Unity隐藏,使用[HideInInspec ...

  3. Kattis -I Can Guess the Data Structure!

    I Can Guess the Data Structure! There is a bag-like data structure, supporting two operations: 1 x1  ...

  4. 21_HTML&CSS

    今日内容: 1. HTML标签:表单标签​2. CSS: HTML标签:表单标签 * 表单: * 概念:用于采集用户输入的数据的.用于和服务器进行交互. * form:用于定义表单的.可以定义一个范围 ...

  5. jmeter+ant+jenkins持续集成

    邮件.报告插件和jenkins的war包下载地址:链接:https://pan.baidu.com/s/1gZJ53x50bxVyEsQFjdCkog 密码:1jtz 1.下载ant  网盘地址:链接 ...

  6. Tensorflow学习笔记----模型的保存和读取(4)

    一.模型的保存:tf.train.Saver类中的save TensorFlow提供了一个一个API来保存和还原一个模型,即tf.train.Saver类.以下代码为保存TensorFlow计算图的方 ...

  7. Is jQuery Still Relevant in 2018?

    DOM Selection $('.someclass') document.querySelector('.someclass') document.querySlectorAll('.somecl ...

  8. laravel 常用单词翻译

    1.ORM:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping), 翻译为:对象关系映射. 是一种程序技术,用于实现面向对象编程语言里不同类型系统的 ...

  9. 正式版的Linux Kernel 5.1来了,非LTS

    大神Linus Torvalds于今天发布了Linux Kernel 5.1内核正式版,在对现有功能进行改进的同时还带来了很多重要的改进.本次版本更新历时一个半月,不过值得注意的是它并非是长期支持版本 ...

  10. python_元组、字典

    1.元组无法修改,只能索引2.只有两种方法 count 和 indexnames = ("Alex","jack")print(names.count(&quo ...