zoukankan      html  css  js  c++  java
  • Deepin_kvm虚拟机群部署

    1. 概述

    本篇博客主要讲述在Deepin系统上使用KVM虚拟化环境部署虚拟化集群来完成个人的运维实践平台项目:Promethues。

    之前是在win10系统下使用vmware workstation作为虚拟化平台,暂时搁浅...

    2. kvm虚拟化环境

    2.1 安装kvm依赖环境

    Deepin上安装kvm环境很简单,命令行执行:
    sudo apt-get install qemu qemu-kvm virt-manager ,libvirtd服务会自动启动和开机启动。

    2.1 配置虚拟化网络

    与win10平台使用vmware workstation来完成该项目不同的是,Deepin系统上使用libvirtd提供的虚拟化服务时,需要使用其提供的nat网络。
    默认的虚拟网络类型已经是nat模式,叫做default。default是不随着libvirtd服务启动的,执行命令:
    virsh net-auotstart default,设置default随着libvirtd服务启动。libvirtd服务同时提供了dnsmasq的轻量级DHCP和DNS服务。

    本篇博客仅仅使用其DHCP服务,通过给虚拟机分配固定的MAC地址来实现固定IP的目的。

    具体操作如下:

    2.1.1 修改default.xml

    一般不建议直接修改该文件,但是你修改这个文件,也不一定会有什么问题。
    Deepin系统上,使用终端切换到root用户。

    编辑配置文件:vim /etc/libvirt/qemu/networks/autostart/default.xml
    修改内容如下:

    	<mac address='00:00:00:80:00:01'/>
    	<ip address='192.168.80.1' netmask='255.255.255.0'/>
    	<dhcp>
    	  <rang start='192.168.80.11' end='192.168.80.99'>
    	  <host mac='00:00:00:80:00:11' ip='192.168.80.11' name='node11'/>
    	  <host mac='00:00:00:80:00:12' ip='192.168.80.12' name='node12'/>
    	  <host mac='00:00:00:80:00:13' ip='192.168.80.13' name='node13'/>
    			....这里省略...
    	  <host mac='00:00:00:80:00:99' ip='192.168.80.99' name='node99'/>
    	</dhcp>
    
    

    本人在修改该配置文件时,使用了for循环批量生产了配置,然后通过vim粘贴进去。

    修改了default.xml之后,需要执行systemctl restart libvirtd生效

    上述的过程完成之后,就可以为虚拟机固定IP打下第一个基础了。

    2.1.2 创建模板虚拟机

    通过virt-manager创建一个模板虚拟机。

    注:如果不适用virt-manager来安装,可以用命令行virt-install命令指定参数安装,本篇博客先跳过此部分内容。

    本人选择的是centos7最小化安装的镜像(阿里云的源应该可以找到)。
    安装操作系统的过程这里不表,这里主要说明一下本人的习惯细节:

    1. 模板虚拟机命名为base
    2. CPU指定为4核心,2槽2核心1线程,内存为1024M
    3. 分配了10G的磁盘空间
    4. 自定义分区/boot 256M,其他给根分区,选择xfs文件系统
    5. 不要忘记设置root密码

    一顿操作之后,模板虚拟机base出炉。

    3. 初始化模板虚拟机

    Deepin终端执行virsh start base,将模板虚拟机开机之后,ssh base即可输入密码登录虚拟机(我的base也是node99,/etc/hosts里面一个IP可以对应多个主机名)

    注:deepin终端执行for i in ((seq 11 99);do echo "192.168.80.)i node$i" >> /etc/hosts; done

    然后将初始化脚步run_me拷贝到base节点上并执行。

    我的run_me初始化脚本内容如下:

    
    #!/bin/bash
    
    #安装依赖
    yum -y install 
    	epel-release 
    
    yum repolist 
    
    yum -y install 
    	vim net-tools lsof wget tree psmisc pciutils
    	gcc gcc-c++ automake autoconf 
    	strace dstat nmap tcpdump 
    	nfs-utils sssd 
    	openldap openldap-servers openldap-clients compat-openldap openldap-devel openldap-servers-sql 
    
    yum -y install atop htop mytop 
    
    
    #关闭服务
    systemctl disable firewalld
    systemctl disable postfix
    
    #禁用selinux
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
    
    #修改ssh服务
    sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
    sed -i 's/#PrintLastLog yes/PrintLastLog no/g' /etc/ssh/sshd_config
    
    echo "        StrictHostKeyChecking no" >> /etc/ssh/ssh_config
    echo "        UserKnownhostsFile /dev/null" >> /etc/ssh/ssh_config
    echo "        LogLevel quiet" >> /etc/ssh/ssh_config
    
    #创建host
    for i in $(seq 11 99)
    do
    	echo "192.168.80.$i    node$i" >> /etc/hosts
    done
    
    #生成秘钥
    ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa
    cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys && chmod 600 /root/.ssh/authorized_keys
    
    #修改启动选项,不延迟,禁用ipv6
    sed -i 's/GRUB_TIMEOUT=5/GRUB_TIMEOUT=0/g' /etc/default/grub
    sed -i 's/quiet/quiet ipv6.disable=1/g' /etc/default/grub
    grub2-mkconfig -o /boot/grub2/grub.cfg
    
    #启用virsh console登录虚拟机
    systemctl enable serial-getty@ttyS0.service
    

    完成上面的操作,模板虚拟机base就可以关机了,作为以后要创建的虚拟机的模板备用。
    此后便可以通过virt-clone快速创建虚拟机使用。

  • 相关阅读:
    Elasticsearch7.6 环境部署
    JavaScript的语法
    如何在页面中引入JS教程
    什么是.bat文件
    window对象的一些其他通用函数
    history对象
    location对象
    32位与64位系统基本数据类型的字节数
    cygwin中运行python不能进入交互模式
    在Cygwin上安装编辑器vim
  • 原文地址:https://www.cnblogs.com/liwanliangblog/p/12786618.html
Copyright © 2011-2022 走看看