池偏一 | 博客 DEDICATED OPERATION AND MAINTENANCE DEVELOPMENT.
登录
X
X
  • KVM & VNC 一键安装脚本
  • #!/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


  • posted @ 2019-01-29 by 池偏一 阅读(111) 评论(0)
  • KVM & VNC 手动安装
  • 一、安装KVM


    grep -E -o 'vmx|svm' /proc/cpuinfo  #检查服务器是否支持虚拟化(vmx为interl平台、svm是AMD平台)
    #安装KVM所需软件包:
    yum groupinstall kvm
    或
    yum install kvm kmod-kvm qemu kvm-qemu-img virt-viewer virt-manager libvirt libvirt-python python-virtinst bridge-utils
         
    lsmod |grep kvm  #检查是否安装成

    二、安装VNC

    rpm -qa | grep vnc-server  #检查系统是否安装vncserver
      
     yum install tigervnc-server fontforge -y    #安装tigervnc-server和字体编译器(防止远程出现乱码)
      
      
     yum groupinstall Desktop -y   #安装桌面环境
      
     vncpasswd  #配置vncserver 密码  ,有时不配服务器起不来
      
     vncserver   #重新加载服务唤醒配置文件
      
     vi  .vnc/xstartup   #改成自己安装的桌面环境,twm & 注释掉
         # twm &
         gnome-session &
      
      
     vi /etc/sysconfig/vncservers    #更改默认登陆用户和远程分辨率
         VNCSERVERS="1:root"
         VNCSERVERARGS[2]="-geometry 1024X768 -nolisten tcp -localhost"
      
      
     注: 1.关闭selinux
            2.iptables 放行5901端口

    三、配置桥口(主要用于KVM虚拟机中安装虚拟机,可以和物理机互相通信并访问外网)

    cp /etc/sysconfig/network-script/ifcfg-eth0 /etc/sysconfig/network-script/ifcfg-br0      #创建桥口br0
    vi /etc/sysconfig/network-script/ifcfg-br0
    vi /etc/sysconfig/network-script/ifcfg-eth0
    vi /etc/sysconfig/network-script/ifcfg-eth1
                      
    DEVICE="br0"
    BOOTPROTO="static"
    #HWADDR="………………"   #前面加井号注释掉mac地址,因为是eth0上拷贝的
    ONBOOT="yes"
    TYPE="Bridge"
    IPADDR=X.X.X.X
    NETMASK=X.X.X.X
    GATEWAY=X.X.X.X
    vi /etc/sysconfig/network-script/ifcfg-eth0
    DEVICE="eth0"
    BOOTPROTO="static"
    HWADDR="………………"    #默认
    ONBOOT="yes"
    TYPE="Ethernet"
    IPADDR=X.X.X.X
    NETMASK=X.X.X.X
    GATEWAY=X.X.X.X
    BRIDGE="br0"
    vi /etc/sysconfig/network-script/ifcfg-eth1
    DEVICE="eth1
    BOOTPROTO="static"
    HWADDR="………………"  #默认
    ONBOOT="yes"
    TYPE="Ethernet"
    IPADDR=X.X.X.X
    NETMASK=X.X.X.X
    BRIDGE="br0"
    vi bradd.sh               #创建脚本将下面的命令添加进去                 
    brctl addbr br0           #添加网桥br0
    brctl addif br0 eth0      #添加eth0 到br0中
    brctl addif br0 eth1      #添加eth1 到br0中
    service network restart  
    service libvirtd restart
    chmod 755 addbr.sh         #给bradd.sh赋予执行权限
    nohup ./addbr.sh &       #在后台执行脚本中的指令
    最后关闭NetworkManager
    完成后再addbr.sh 所属目录下找到nohup.out   这里面记录了操作日志,可帮助判断哪步执行失败


  • posted @ 2019-01-29 by 池偏一 阅读(111) 评论(0)
  • Centos 6 实现WEBVNC
  • 文章参考:

    https://github.com/kanaka/noVNC

    http://www.cnblogs.com/yanghuahui/p/3574388.html

    原理: novnc 可以看成是webvnc-client,就是页面的vnc-client,是通过html5和图形容器Canvas实现WEB上的VNC远程客户端

                websockify 是一种反向代理服务,将tcp转换成websocket 通过页面展示,可以用代理端口,不会将真实的VNC端口暴露在外


    一、下载安装novnc 和websockify

    yum install unzip zip -y
    wget https://github.com/kanaka/noVNC/archive/master.zip
    unzip master.zip && mv master.zip  noVNC.zip
    wget https://github.com/kanaka/websockify/archive/master.zip
    unzip master.zip && mv master.zip websockify.zip
    #如果不对默认配置进行更改的话,默认启动websockify 代理端口6080 本地vncserver 端口默认5901
    yum install git -y
    cd ./noVNC-master/
    ./utils/launch.sh --vnc localhost:5901

    FAQ 1:启动后会出现如下服务状态信息显示:

    novnc1_20180222100352_234.jpg

    FAQ 2:根据启动后提供的URL在WEB中打开(将localhost.localdomain修改成自己的IP地址即可):

    novnc2_20180222100508_776.jpg

  • posted @ 2019-01-29 by 池偏一 阅读(111) 评论(0)
© 2017 池偏一 | 赣ICP备 17014207号