公司一批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. Dynamic programming language

    动态改变运行时结构 Dynamic programming language, in computer science, is a class of high-level programming la ...

  2. 浏览器渲染HTML页面步骤

    渲染步骤:浏览器渲染页面时,表示网站资源已经请求成功(要了解查看:浏览器向服务器请求资源过程) 解析HTML以构建dom树--->构建render树--->布局render树---> ...

  3. Codeforces Round #499 (Div. 2) C.FLY 数学推导_逆推

    本题应该是可以使用实数二分的,不过笔者一直未调出来,而且发现了一种更为优美的解法,那就是逆推. 首先,不难猜到在最优解中当飞船回到 111 号节点时油量一定为 000, 这就意味着减少的油量等于减少之 ...

  4. socket&socketserver网络编程

    1.套接字与套接模块 套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等)套件对上的网络应用程序提供者提供当前可移植标准的对象.它们允许程序接受并进行连接,如发送和接受数据.为了 ...

  5. Parse error: syntax error, unexpected '__data' (T_STRING), expecting ',' or ')'

    使用laravel时,建立view文件引入dafault文件时报错: Parse error: syntax error, unexpected '__data' (T_STRING), expect ...

  6. NOIP2016 DAY1 T1 玩具谜题

    题目描述 小南有一套可爱的玩具小人,它们各有不同的职业. 有一天,这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外.如下图: 这时 singer 告诉小 ...

  7. XPATH怎么获取TITLE中有中文的标签

    定位 //*[@id="kkpager"]/div[1]/span[1]/a[@title="下一页"] 获取元素 txt4 = txt.xpath('//*[ ...

  8. 调整mysql数据库最大连接数

    1.查看mariadb数据库最大连接数,默认为151 MariaDB [(none)]> show variables like 'max_connections'; +------------ ...

  9. 【hdu 6319】Ascending Rating

    [链接] 我是链接,点我呀:) [题意] 给你一个长为n的数组a 让你对于每个长度为m的窗口. 算出其中的最大值以及从左往右遍历的时候这个最大值更新的次数. [题解] 单调队列. 从后往前滑动窗口. ...

  10. 第九章 Servlet API

    第九章 Servlet API Servlet API 定义了Servlet和服务器之间的一个标准接口,这使得Servlet具有跨应用服务器的特性,通过使用Servlet API,开发人员不必关心服务 ...