#!/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. ef code first transform,add ef power tools add-in,add tangible t4 editor for enhancement.

    use ef power tools, as to .edmx file,right click at view, choose generate database from model, then ...

  2. Qt5网络请求使用及WebRequest函数

    Qt5模拟curl进行HTTP的head请求, curl -I <url> : #include <QtCore> #include <QNetworkReply> ...

  3. 二、Ubuntu 转换为root用户

    用设置的用户登录进入. 输入以下命令 1--->su root 2--->sudo passwd root 输入root 用户密码 3--->su root    转换为root用户 ...

  4. js坑 把数字型的字符串默认为数字 把前面的0给去掉了("001")

    <script> b("); function b(id) { console.log("b函数的id:"+id); //var history = &quo ...

  5. POJ2104 K-th Number(线段树)

    题目链接 K-th Number #include <cstdio> #include <cstring> #include <iostream> #include ...

  6. readis 内部数据结构

    与其他key-value数据库不同之处 不仅支持字符串值,还支持 字符串 set,get 列表 lpush,rpush,lrange 哈希 hset,hget,hgetall hmset,hmget ...

  7. Code signing is required for product type Unit Test Bundle in SDK iOS 8.0

    I fixed the issue (temporarily) by going to Edit Scheme, then in the Build section, removing my unit ...

  8. linux登录用户(终端)间的通信

    转载 1.write命令 使用权限 : 所有使用者  使用方式 :  write user [ttyname]  说明 : 通过write指令可传递信息给另一位登入系统的用户,当输入完毕后,键入EOF ...

  9. 将Solr的数据存到Hdfs上

    具体官方文档 https://cwiki.apache.org/confluence/display/solr/Running+Solr+on+HDFS 修改solrconfig.xml文件 < ...

  10. 【音乐App】—— Vue-music 项目学习笔记:歌曲列表组件开发

    前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 当前歌曲播放列表 添加歌曲 ...