kvm&vnc 简单安装shell脚本
#!/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脚本的更多相关文章
- 一个简单的shell脚本
一个简单的shell脚本 一个简单的shell脚本 编写 假设我想知道目前系统上有多少人登录,使用who命令可以告诉你现在系统有谁登录: 1.[KANO@kelvin ~]$ who2.KANO tt ...
- 实用脚本----Linux下Jdk和Tomcat自动安装shell脚本总结
系统环境为:ubuntu 14.04 一.JDK 自动安装脚本 jdk自动安装bash shell脚本,截止今天(2014/10/15)亲测可用: sudo su #切换到root权限 mkdir / ...
- Linux python3安装/shell脚本/if/循环/函数
python3安装 安装过程 安装包: wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgztar -xvf Python-3.7 ...
- Redis缓存全自动安装shell脚本
我只是把命令放到shell文件中了,方便安装,代码如下: #!/bin/bash # shell的执行选项: # -n 只读取shell脚本,但不实际执行 # -x 进入跟踪方式,显示所执行的每一条命 ...
- 如何在linux下编写一个简单的Shell脚本程序
在了解了linux终端和其搭配的基本Shell(默认为bash)的基础下,我们就可以在终端中用vi/vim编辑器编写一个shell的脚本程序了 Shell既为一种命令解释解释工具,又是一种脚本编程语言 ...
- 小鸟初学Shell编程(二)编写简单的Shell脚本
Shell脚本 编写Python.PHP脚本通常需要掌握语言的函数,那么Shell脚本则不需要,只需要掌握Linux命令就可以编写Shell脚本,因为Shell脚本就是由多个Linux命令组成,通过将 ...
- 一个简单的Shell脚本(解决windows上文本在macos上乱码问题)
之所以有这一篇文章,是因为之前我写过的一篇文章:“解决Mac上打开txt文件乱码问题”:传送门: https://www.cnblogs.com/chester-cs/p/11784079.html ...
- Miniconda 安装 & Pip module 安装 & Shell 脚本调用 Miniconda 虚拟环境手册(实战项目应用)
(实战项目应用) 1. 下载Miniconda 两个安装方式: 方式1:wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Min ...
- 简单的 Shell 脚本入门教程
Shell脚本 运作方式与解释型语言相当,如果有语言基础,学起 Shell 脚本就非常容易,但是 Shell 与常见的语言不同,一些常见的函数在 Shell 中需要组合一些命令得以实现 工具推荐 Sh ...
随机推荐
- c++基础(一)
c++中静态内存分配与动态内存分配:1.静态对象是有名字的变量, 我们直接对其进行操作 ,而动态对象是没有名字的变量我们通过指针间接地对它进行操作.(静态内存分配是因为在源码编译的时候,编译器就为变量 ...
- linux 共享内存 信号量 同步
这篇文章将讲述别一种进程间通信的机制——信号量.注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物.有关信号的更多内容,可以阅读我的另一篇文章:Linux进程间通信——使用信号.下面 ...
- 键盘事件keydown、keypress、keyup
事件触发顺序:keydown - > keypress - > keyup 中文输入法: firfox:输入触发keydown,回车确认输入触发keyup chrome:输入触发k ...
- tkinter Scale滑块
鼠标拖动和绑定鼠标滚轮移动: import threading from tkinter import * root = Tk() v = StringVar() s1 = Scale(root,fr ...
- android 集成友盟分享之后,想自定义分享面板的看过来
第一种情况 首先上传一张默认的友盟分享的效果图 看起来还不错,但是总是有这样那样的原因,需要我们对默认效果做出一些改变. 第二种情况 如果你想做出下面的效果: 或者这样的效果 : 总之上面的效果总是在 ...
- Codeforces Gym100735 D.Triangle Formation (KTU Programming Camp (Day 1) Lithuania, Birˇstonas, August 19, 2015)
日常训练题解 D.Triangle Formation You are given N wooden sticks. Your task is to determine how many triang ...
- HDU 6251 Inkopolis(2017 CCPC-Final,I题,环套树 + 结论)
题目链接 HDU 6251 题意 给出一个$N$个点$N$条边的无向图.然后给出$M$个操作,每个操作为$(x, y, z)$,表示把连接 $x$和$y$的边的颜色改成$z$. 求这张无向图中所有边的 ...
- Java I/O系统学习系列一:File和RandomAccessFile
I/O系统即输入/输出系统,对于一门程序语言来说,创建一个好的输入/输出系统并非易事.因为不仅存在各种I/O源端和想要与之通信的接收端(文件.控制台.网络链接等),而且还需要支持多种不同方式的通信(顺 ...
- iOS 动画笔记 (二)
有它们俩你就够了! 说明:下面有些概念我说的不怎么详细,网上实在是太多了,说了我觉得也意义不大了!但链接都给大家了,可以自己去看,重点梳理学习写动画的一个过程和一些好的博客! 一:说说这两个三方库,C ...
- 通用mapper的框架
这两个框架都是一个大神写的.用来做单表的增删改查,爽爽的. 但是复杂的查询还不知道如何用,所以我还按传统的方式 写 service maperr ,写SQL来处理复杂查询,与多表的查询. 它的复杂查 ...