#!/bin/bash
# created on 2014/7/15
#author : derrick.jiang (Email: derrick.jiang.maichuang.net) echo ""
echo "----------Install KVM + VNC and configuration-----------"
touch /root/kvminstall.log
log=/root/kvminstall.log
vitrual=`grep -E -o 'vmx|svm' /proc/cpuinfo|head -n 1`
if [ "$vitrual" == "svm" ] || [ "$vitrual" == "vmx" ];then
yum install kvm kmod-kvm qemu kvm-qemu-img qemu-kvm-tools virt-viewer virt-manager libvirt libvirt-python python-virtinst bridge-utils -y >>$log if [ "`echo $(lsmod |grep kvm)|awk '{print $1}'`" == "kvm_intel" ];then
echo `yum install tigervnc-server fontgorge -y` >>$log
echo `yum groupinstall Desktop -y` >>$log
vncpasswd
vncserver
echo "gnome-session &" >> /root/.vnc/xstartup
sed -i 's/twm &/#twm &/g' /root/.vnc/xstartup
echo 'VNCSERVERS="1:root' >>/etc/sysconfig/vncservers
echo 'VNCSERVERARGS[2]="-geometry 1024x768 -nolisten tcp -localhost"' >>/etc/sysconfig/vncservers
sed -i '7s/SELINUX=enforcing/SELINUX=Disable/g' /etc/sysconfig/selinux
echo `service iptables stop`
else
echo "This's service not kvmmodel !!"
exit 0
echo "---------- Install KVM & vnc Faild ------------"
fi echo ""
echo "----------Bridge configuration and Settings of the network card-------------" read -p "Please Input Frist NetCard In Bridge:" net1
read -p "Please Input Second NetCard In Bridge:" net2
usage () {
echo "Your Input Error !!"
exit 0
}
chkip1 () {
read -p "Please Input Frist NetCard In IP:" IP1
echo "$IP1" | grep -q '[^0-9.]' && usage
[ $(echo -e "${IP1//./\n}" | wc -l) -ne 4 ] && usage
for i in ${IP1//./ } ; do
[ $((i/8)) -lt 32 ] || usage
done
}
chkip1 chkip2 () {
read -p "Please Input Second NetCard In IP:" IP2
echo "$IP2" | grep -q '[^0-9.]' && usage
[ $(echo -e "${IP2//./\n}" | wc -l) -ne 4 ] && usage
for i in ${IP2//./ } ; do
[ $((i/8)) -lt 32 ] || usage
done
}
chkip2 chkmask1 () {
read -p "Please Input Frist NetCard Netmask:" MASK1
echo "$MASK1" | grep -q '[^0-9.]' && usage
[ $(echo -e "${MASK1//./\n}" | wc -l) -ne 4 ] && usage
for i in ${MASK1//./ } ; do
[ $((i/8)) -lt 32 ] || usage
done
}
chkmask1 chkmask2 () {
read -p "Please Input Second NetCard Netmask:" MASK2
echo "$MASK2" | grep -q '[^0-9.]' && usage
[ $(echo -e "${MASK2//./\n}" | wc -l) -ne 4 ] && usage
for i in ${MASK2//./ } ; do
[ $((i/8)) -lt 32 ] || usage
done
}
chkmask2 chkgate () {
read -p "Please Input Frist NetCard Gateway:" GATE
echo "$GATE" | grep -q '[^0-9.]' && usage
[ $(echo -e "${GATE//./\n}" | wc -l) -ne 4 ] && usage
for i in ${GATE//./ } ; do
[ $((i/8)) -lt 32 ] || usage
done
}
chkgate ###########################################
####### Replace Network #########
###########################################
net1ip=`grep -i "IPADDR" /etc/sysconfig/network-scripts/ifcfg-$net1`
net1mask=`grep -i "NETMASK" /etc/sysconfig/network-scripts/ifcfg-$net1`
net1get=`grep -i "GATEWAY" /etc/sysconfig/network-scripts/ifcfg-$net1`
net2ip=`grep -i "IPADDR" /etc/sysconfig/network-scriptsifcfg-$net2`
net2mask=`grep -i "NETMASK" /etc/sysconfig/network-scripts/ifcfg-$net2`
#Setting Br0
cp /etc/sysconfig/network-scripts/ifcfg-$net1 /etc/sysconfig/network-scripts/ifcfg-br0
echo -e "DEVICE="br0"\nBOOTPROTO="static"\nONBOOT="yes"\nTYPE="Bridge"\nIPADDR=$IP1\nNETMASK=$MASK1\nGATEWAY=$GATE" >/etc/sysconfig/network-scripts/ifcfg-br0 #Setting Card1
echo -e "BRIDGE="br0"">>/etc/sysconfig/network-scripts/ifcfg-$net1
sed -i 's/no/yes/g;s/NO/yes/g;s/dhcp/static/g;s/DHCP/STATIC/g' /etc/sysconfig/network-scripts/ifcfg-$net1
sed -i "s/$net1ip/IPADDR=$IP1/g;s/$net1mask/NETMASK=$MASK1/g;s/$net1get/GATEWAY=$GATE/g" /etc/sysconfig/network-scripts/ifcfg-$net1 #Setting Card2
echo -e "BRIDGE="br0"">>/etc/sysconfig/network-scripts/ifcfg-$net2
sed -i 's/no/yes/g;s/dhcp/static/g' /etc/sysconfig/network-scripts/ifcfg-$net2
sed -i "s/$net2ip/IPADDR=$IP2/g;s/$net2mask/NETMASK=$MASK2/g" /etc/sysconfig/network-scripts/ifcfg-$net2 echo `brctl addbr br0`
echo `brctl addif br0 $net1`
echo `brctl addif br0 $net2`
echo `service network restart`
echo `service libvirtd restart`
echo ""
echo "------------------------------------------------------------------------------------------------------------------"
echo " Congratulations successful Install!!!!"
echo "------------------------------------------------------------------------------------------------------------------" fi
exit 0

kvm&vnc 简单安装shell脚本的更多相关文章

  1. 一个简单的shell脚本

    一个简单的shell脚本 一个简单的shell脚本 编写 假设我想知道目前系统上有多少人登录,使用who命令可以告诉你现在系统有谁登录: 1.[KANO@kelvin ~]$ who2.KANO tt ...

  2. 实用脚本----Linux下Jdk和Tomcat自动安装shell脚本总结

    系统环境为:ubuntu 14.04 一.JDK 自动安装脚本 jdk自动安装bash shell脚本,截止今天(2014/10/15)亲测可用: sudo su #切换到root权限 mkdir / ...

  3. Linux python3安装/shell脚本/if/循环/函数

    python3安装 安装过程 安装包: wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgztar -xvf Python-3.7 ...

  4. Redis缓存全自动安装shell脚本

    我只是把命令放到shell文件中了,方便安装,代码如下: #!/bin/bash # shell的执行选项: # -n 只读取shell脚本,但不实际执行 # -x 进入跟踪方式,显示所执行的每一条命 ...

  5. 如何在linux下编写一个简单的Shell脚本程序

    在了解了linux终端和其搭配的基本Shell(默认为bash)的基础下,我们就可以在终端中用vi/vim编辑器编写一个shell的脚本程序了 Shell既为一种命令解释解释工具,又是一种脚本编程语言 ...

  6. 小鸟初学Shell编程(二)编写简单的Shell脚本

    Shell脚本 编写Python.PHP脚本通常需要掌握语言的函数,那么Shell脚本则不需要,只需要掌握Linux命令就可以编写Shell脚本,因为Shell脚本就是由多个Linux命令组成,通过将 ...

  7. 一个简单的Shell脚本(解决windows上文本在macos上乱码问题)

    之所以有这一篇文章,是因为之前我写过的一篇文章:“解决Mac上打开txt文件乱码问题”:传送门: https://www.cnblogs.com/chester-cs/p/11784079.html ...

  8. Miniconda 安装 & Pip module 安装 & Shell 脚本调用 Miniconda 虚拟环境手册(实战项目应用)

    (实战项目应用) 1. 下载Miniconda 两个安装方式: 方式1:wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Min ...

  9. 简单的 Shell 脚本入门教程

    Shell脚本 运作方式与解释型语言相当,如果有语言基础,学起 Shell 脚本就非常容易,但是 Shell 与常见的语言不同,一些常见的函数在 Shell 中需要组合一些命令得以实现 工具推荐 Sh ...

随机推荐

  1. Jquery : 上下滚动--单行 批量多行 文字图片翻屏【转】

    原文发布时间为:2010-02-01 -- 来源于本人的百度文章 [由搬家工具导入] 注:如果和左右滚动一起使用,则会出现冲突 一单行滚动(ad:http://www.gz138.com) <! ...

  2. mdev的基本工作原理【转】

    转自:http://www.cnblogs.com/hnrainll/archive/2011/06/10/2077435.html 分析过mdev(udev的BusyBox简化版)源码的都知道mde ...

  3. python 复习-2

    把一个数字的list从小到大排序,然后写入文件,然后从文件中读取出来文件件内容,然后反序,再追加到文件的下一行中 """把一个数字的list从小到大排序,然后写入文件,然 ...

  4. dracut 基本介绍

    dracut 维基   https://dracut.wiki.kernel.org/index.php/Main_Page  http://www.360doc.com/content/13/042 ...

  5. C++面向对象程序设计_Part1

    目录 C++历史 C++的组成 C++ 与 C 的数据和函数区别 基于对象与面向对象的区别 C++类的两个经典分类 头文件防卫式声明 头文件的布局 类的声明 类模板简介 内联(inline)函数 访问 ...

  6. OpenSSL使用2(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12概念说明)(转)

    SSL SSL - Secure Sockets Layer,现在应该叫"TLS",但由于习惯问题,我们还是叫"SSL"比较多.http协议默认情况下是不加密内 ...

  7. IIS配置支持apk文件下载

    写在前面 最近项目中涉及到移动端的东西,有一个功能是要下载apk文件,apk为安卓安装程序,但是iis默认是不支持该类型的文件下载的. 解决方案 找到该站点,并切换到功能视图 找到MIME类型,双击进 ...

  8. [转] makeFile文件作用

    源文件地址 makefile关系到了整个工程的编译规则.一个工程中的源文件不计数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后 ...

  9. git——简易指南

    Git对于我来说,只知道是一个版本控制器,类似于乌龟的svn.其中也仅仅会几个常的命令,比如说“更新git pull”.“提交git push”等等,因为记得当初使用的时候,师傅告诉我,对于你不懂这个 ...

  10. flash+xml无法显示中文的解决办法

    flash+xml用来做图片动态浏览效果相当不错,被广泛运用于电子相册制作,很多朋友都会从网上下载一些相关的flash源码下载参考,但是经常发现在使用过程中,修改了xml文件中的英文后要么文本不显示, ...