zoukankan      html  css  js  c++  java
  • 基于命令行进行kvm虚拟机安装和管理,添加VNC实现可视化

    经过kvm的安装接下来要安装操作系统

    • 首先上传要安装系统的镜像到Linux母机上

      采用ftp的方式,已经上传镜像到Linux下/var/ftp/pub文件夹

    • 创建一个路径进行存放kvm虚拟机:

      mkdir -p /opt/kvm

    • 使用qemu-img创建一个镜像文件:
      qemu-img create -f qcow2 /opt/kvm/gitlab.qcow2 100G
      -这里我们采用命令行的方式进行安装,命令如下:

      virt-install --name gitlab --ram 2048 --vcpus=1 --disk/opt/kvm/gitlabt=qcow2,size=100,  --network bridge=br0 --os-type=linux --cdrom=/opt/is --graphic vnc,listen=0.0.0.0,port=5910 -v --os-variant=rhel7.4

      virt-install [参数说明]

      一般选项:

    -n NAME, --name=NAME:虚拟机名称,需全局惟一; 
    
    -r MEMORY, --ram=MEMORY:虚拟机内在大小,单位为MB
    --vcpus=VCPUS[,maxvcpus=MAX][,sockets=#][,cores=#][,threads=#]:VCPU个数及相关配置;
    
     --cpu=CPUCPU模式及特性,如coreduo等;可以使用qemu-kvm -cpu ?来获取支持的CPU模式;
    
    -c CDROM, --cdrom=CDROM:光盘安装介质;
    
     -l LOCATION, --location=LOCATION:安装源URL,支持FTPHTTPNFS等,如ftp://172.16.0.1/pub
    --pxe:基于PXE完成安装; --livecd: 把光盘当作LiveCD
    --os-type=DISTRO_TYPE:操作系统类型,如Linux、unix或windows等; 
    
    --os-variant=DISTRO_VARIANT:某类型操作系统的变体,如rhel5、fedora8等; 
    
    -x EXTRA, --extra-args=EXTRA:根据--location指定的方式安装GuestOS时,用于传递给内核的额外选项,例如指定kickstart文件的位置,
    
    --extra-args "ks=http://172.16.0.1/class.cfg" 
    
    --boot=BOOTOPTS:指定安装过程完成后的配置选项,如指定引导设备次序、使用指定的而非安装的kernel/initrd来引导系统启动等 ;例如: --boot cdrom,hd,network:指定引导次序; 
    
    --boot kernel=KERNEL,initrd=INITRD,kernel_args=”console=/dev/ttyS0”:指定启动系统的内核及initrd文件;

    硬盘:

    --disk=DISKOPTS:指定存储设备及其属性;格式为--disk /some/storage/path,opt1=val1,opt2=val2等;
    常用的选项有: 
        device:设备类型,如cdrom、disk或floppy等,默认为disk; 
        bus:磁盘总结类型,其值可以为ide、scsi、usb、virtio或xen; 
        perms:访问权限,如rw、ro或sh(共享的可读写),默认为rw; 
        size:新建磁盘映像的大小,单位为GB; 
        cache:缓存模型,其值有none、writethrouth(缓存读)及writeback(缓存读写); 
        format:磁盘映像格式,如raw、qcow2、vmdk等; 
        sparse:磁盘映像使用稀疏格式,即不立即分配指定大小的空间; 
    --nodisks:不使用本地磁盘,在LiveCD模式中常用;

    网络:

    -w NETWORK, --network=NETWORK,opt1=val1,opt2=val2:将虚拟机连入宿主机的网络中,其中NETWORK可以为: 
        bridge=BRIDGE:连接至名为“BRIDEG”的桥设备; 
        network=NAME:连接至名为“NAME”的网络;

    虚拟化:

    -v, --hvm:当物理机同时支持完全虚拟化和半虚拟化时,指定使用完全虚拟化;
    
     -p, --paravirt:指定使用半虚拟化;
    
     --virt-type:使用的hypervisor,如kvm、qemu、xen等;所有可用值可以使用’virsh capabilities’命令获取;
    图像
    
    --graphics TYPE,opt1=val1,opt2=val2:指定图形显示相关的配置,此选项不会配置任何显示硬件(如显卡),而是仅指定虚拟机启动后对其进行访问的接口; 
    
    TYPE:指定显示类型,可以为vnc、sdl、spice或none等,默认为vnc; 
    
        port:TYPE为vnc或spice时其监听的端口; 
        listen:TYPE为vnc或spice时所监听的IP地址,默认为127.0.0.1,可以通过修改/etc/libvirt/qemu.conf定义新的默认值;
    
        password:TYPE为vnc或spice时,为远程访问监听的服务进指定认证密码; --noautoconsole:禁止自动连接至虚拟机的控制台;

    安装完成后可以通过virsh-list命令进行查看安装的虚拟机列表

    virt-clone -o gitlab -n centos7 -f /opt/kvm/centos7.img

    通过这条命令可以克隆虚拟机

    virsh[参数说明]

    virsh命令进行管理kvm虚拟机:

    virsh 有命令模式和交互模式如果直接在vrish后面添加参数是命令模式,如果直接写virsh,就会进入交互模式

    • virsh list
      列出所有的虚拟机,虚拟机的状态有(8)种
      runing 是运行状态
      idel 是空闲状态
      pause 暂停状态
      shutdown 关闭状态
      crash 虚拟机崩坏状态
      daying 垂死状态
      shut off 不运行完全关闭
      pmsuspended客户机被关掉电源中中断
    • 连接实例
      qemu:///session (本地连接到个人实例)
      qemu+unix:///session (本地连接到个人实例)
      qemu:///system (本地连接到系统实例)
      qemu+nuix:///system(本地连接到系统实例)
      qemu://example.com/system(远程连接,TLS)
      qemu+tcp://example.com/system(远程登录,SASI)
      qemu+ssl://example.com/system(远程登录,ssl)

    • -v
      是只显示版本号

    • -V
      使显示版本的详细信息
    • -c - -connect 连接远程的主机
    • -l - -log 输出日志
    • -q - -quiet避免额外的信息
    • -r - - readonly 只读,一般和connect配合使用
    • -t - - timing 输出消逝的时间
    • -e - - escape 设置转意序列

    交互模式

    *quit,exit是离开virsh
    *version 是显示版本
    *cd 进入目录
    *pwd 打印当前路径
    *connect URI连接
    一般有下列几种

    xen:/// 连接当地的xem虚拟机
    qemu:///system (以root的身份)连接当地的qemu和kvm虚拟机
    qemu;///sessoin 以用户的身份连接当地的qemu和kvm
    lxc:///session 连接当地的linux容器

    *hostname 得到主机名字
    *sysinfo 的到虚拟机系统的详细信息,xml打印出来
    *nodeinfo得到电脑详细配置名字
    *nodecpustats 的到虚拟cpu 的状态
    *nodemenstats 的内存的详细信息
    *nodesuspend 延缓打印的时间最大为60 seconds
    *node-memory-tune 允许你设置node的内存参数
    *capablilities 打印虚拟机的特点
    *inject-nmi 给客户机注射nmi(不可屏蔽中断)
    *list列出所有的虚拟机(可以加参数)
    *freecell 打印出虚拟I机中可用的内存

    DOMAIN Commands

    *autostart (domain):标示自动启动虚拟机
    *console (domain):连接虚拟机的控制台
    *create (file):从文件创建虚拟机

    virsh dumpxml domain.xml
    virsh create domain.xml

    *define (file)定义一个虚拟机从文件中
    *desc (domain)显示虚拟机的描述信息
    *destory(domain) 销毁虚拟机
    *dommemstat(domain) 得到虚拟机运行的内存
    *domblkerror (domain) 显示有错的设备
    *domblkerror(domian)显示有错 的磁盘
    *domblklist(domain)显示虚拟机的磁盘
    *domiflist(domain)显示网卡接口
    *domifstat(demo vnet0) 显示网卡信息
    *domdisplay (demo)输出地址 和显卡
    *dominfo(demo)显示虚拟机的信息
    *domuuid (demo)显示虚拟机的id
    *domid(id or name ) 根据名字得到id
    * domjobabort (demo)种植虚拟机的当前任务
    * dojobinfo (demo) 显示虚拟机的任务
    * domstat (demo) 显示虚拟机的状态
    * domcontrol(demo) 返回虚拟机的状态ok or error
    * dump (demo file) 把文件配置输出到文件file
    * dumpxml(demo)直接显示demo的xml文件配置
    * edit (demo) 编辑主机的配置文件
    * messagedsave(demo) 虚拟机的信息保存
    * messagedsave-remove(demo) 移除保存的messagedsave
    *cpu-stats (demo) 虚拟机的cpu状态
    *screenshot (demo) 虚拟机截屏
    *setmen(demo) size 设置虚拟机的内存
    *setmaxmen(demo)设置虚拟机的最大内存
    *memtune(demo) 得到虚拟机分区的信息
    *blkiotune(demo) 得到虚拟机的磁盘信息
    *setvcpus(demo count)设置虚拟机的虚拟cpu个数
    *shutdown(demo) 关闭虚拟机
    *start(name or id) 开启虚拟机
    *suspend (demo) 挂起虚拟机
    *resume(demo) 回复虚拟机的suspend状态
    *dompmwakeup(demo)唤醒挂起的demo
    *ttyconsole (demo) 输出设备用的终端
    *vcpucount (demo) 设置cpu个数
    *vcpuinfo(demo) 得到cpu的信息
    *vncdisplay(demo) 显示虚拟机的ip

    device commands(设备命令)

    *attach-device (demo file)添加设备从file文件中
    *attach-interface (demo type source )添加一个接口
    *update-device(demo file)更新设备根据file

    virtual network commadns

    *net-autostart (network) 自动启动网卡(default)
    *net-create (file) 把配置加载到文件
    *net-destory ( network )关闭网卡
    *net-dumpxml(default) 把网卡配置加载到文件
    *net-edit(default) 编辑网卡信息
    *net-info(default) 网卡信息
    *net-list 显示网卡
    *net-uuid (default)得到网卡的id
    *net-name(id)得到网卡的名字
    *net-start (default)开启网卡

    Interface commands

    *iface-define(file)定义一个接口从文件里面
    *iface-dumpxml (lo)显示接口I的信息
    *iface-edit(lo) 编辑接口
    *iface-list 列出所有的接口
    *iface-name (mac) 根据mac得到名字
    *iface-mac(lo) 根据名字得到mac
    *iface-start(lo) 开启接口
    *iface-unbriged 解绑定 网桥
    *iface-undefine(lo) 不定义配置文件
    *iface-begin(lo)创建一个现有的接口设置
    *iface-commit 提交生命所有的改变有效,并且让接口工作
    *iface-rollbak 接口回滚

    STORAGE pppl commands

    *pool-auto (pool)标记池自动启动
    *pool-build(pool)建造一个池
    *pool-create(file)根据文件创建池
    *pool-define(file)定义但是不开启
    *pool-destory(pool)销毁池,以后能回复
    *pool-delete(pool)删除池,以后不能恢复
    *pool-dumpxml(pool)查看池的定义文件
    *pool-edit(pool)编辑池的定义文件
    *pool-info池的信息
    *pool-list的列表
    *pool-name(id)根据id得到name
    *pool-id(name)根据name得到id
    *pool-start(poop)开启池
    *pool-uuid (pool) 返回一个池的uuid

    VOLUME commads

    *vol-delete(pool)卷的删除
    *vol-upload(pool) 卷的加载
    *vol-list(pool)列出卷
    *vol-info(default)卷的信息
    *vol-name(path)得到卷的名字

    (快照)(secret)

    NWFILTER commands

    *nwfilter-define (file)根据文件生成一个网络过滤器
    *nwfilter-undefine(name) 删除网络过滤
    *nwfilter-list 列出来网络过滤
    *nwfilter-dumpxml(file)生成一个网络过滤的文件
    *nwfilter-edit(name) 编辑一个网络过滤器

    为了方便管理给母机添加桌面环境并安装vnc实现远程连接

    yum -y groupinstall "X Window System"  #安装X window
    yum -y groupinstall "GNOME Desktop"    #安装gnome桌面
    yum -y install tigervnc-server         #安装vncserver
    vncserver :1                           #开启vncserver服务

    vnc默认端口是5901,如果开启第二个vnc连接,执行vncserver :2

  • 相关阅读:
    wex5 实战 框架拓展之2 事件派发与data刷新
    wex5 实战 框架拓展之1 公共data组件(Data)
    wex5 实战 HeidiSQL 导入Excel数据
    wex5 实战 手指触屏插件 hammer的集成与优劣
    wex5 实战 登陆帐号更换与用户id一致性
    wex5 实战 用户点评与提交设计技巧
    wex5 实战 省市县三级联动与地址薄同步
    wex5 实战 wex5与js的组件关系与执行顺序(父子与先后)
    wex5 实战 单页模式下的多页面数据同步
    [BZOJ]4237: 稻草人
  • 原文地址:https://www.cnblogs.com/lixuebin/p/10808472.html
Copyright © 2011-2022 走看看