下载镜像到指定目录

  • 该步骤需要先安装 Docker
  • 下面的镜像按需选择

    干净的CentOS7, 安装好后啥都没干的 100%纯净

  • root 密码 1234

  • 镜像大小 1GB

    1. docker run -it --rm --pull=always -v /data/kvm/vm/test_centos7/disk:/dest registry.cn-hangzhou.aliyuncs.com/lwmacct/file:1657390647-kvm-centos7-minimal-clean-system.qcow2

    已完成基本配置的CentOS7.9 (推荐)

  • root 密码 1234

  • 镜像大小 3.232GB
  • 下载 centos7 镜像, 该镜像完成基本的环境配置, 基础软件包安装, 内核调优, 以及安装 Docker 相关
  • 可以使用 virsh console 直接进入系统
    1. docker run -it --rm --pull=always -v /data/kvm/vm/test_centos7/disk:/dest registry.cn-hangzhou.aliyuncs.com/lwmacct/file:1657390648-kvm-centos7-minimal-base-system.qcow2
    ```bash

    !/usr/bin/env bash

    exit

下载 centos7 镜像, 干净的, 安装好后啥都没干的 CentOS7.9 系统,100%纯净

docker run -it —rm —pull=always -v /data/kvm/vm/test_centos7/disk:/dest registry.cn-hangzhou.aliyuncs.com/lwmacct/file:1657390647-kvm-centos7-minimal-clean-system.qcow2

__centos_import() { _name=”test_centos7” virsh destroy “$_name” >/dev/null 2>&1 virsh undefine “$_name” >/dev/null 2>&1 _system_img=”/data/kvm/vm/$_name/disk/system.qcow2” virt-install —name=”$_name” \ —memory=4096 \ —cpu host \ —vcpus $(grep ‘processor’ /proc/cpuinfo | sort -u | wc -l) \ —os-type=linux \ —os-variant=rhel7.9 \ —autostart \ —noautoconsole \ —import \ —disk “$_system_img”,cache=none,bus=sata \ —graphics vnc \ —network network=default,model=virtio

  1. # --network bridge=br-ikuai-lan1,model=virtio,mac=88:c6:66:ea:66:91

} __centos_import

virsh dumpxml test_centos7 | grep -Eo ‘([0-9a-fA-F]{2}[:]){5}([0-9a-fA-F]{2})’ | xargs -I{} echo ‘arp -a | grep “{}”‘ | sh

__install_app() {

  1. # 安装常用软件
  2. # 由于安装 groups base 会升级 3.10.x内核, 所以先把常用软件给装了再升级内核
  3. yum clean all
  4. yum makecache fast
  5. yum -y update
  6. yum groups install base -y
  7. yum install qemu-guest-agent -y
  8. yum -y install \
  9. vim git jq bc tree unzip zip dos2unix sysstat psmisc lsof sshpass expect \
  10. vnstat htop perf dstat glances \
  11. hdparm libaio-devel log4cplus log4cplus-devel lshw ntp xfsprogs-devel \
  12. net-tools bridge-utils nfs-utils telnet lrzsz \
  13. bash-completion bash-completion-extras
  14. systemctl start qemu-guest-agent
  15. systemctl enable qemu-guest-agent

}

__install_app

__kernel_update() {

  1. # 升级内核
  2. #导入公钥
  3. rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
  4. #添加YUM源
  5. yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
  6. #安装更新长期支持版内核
  7. yum install -y --enablerepo=elrepo-kernel kernel-lt kernel-lt-devel
  8. #更新GRUB配置使用新内核启动
  9. #查看配置中的所有内核版本
  10. awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
  11. _modify=$(awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg | head -1 | grep "$(uname -r)" -c)
  12. if ((_modify != 1)); then
  13. #设置新内核为默认启动项,默认情况下新内核序号为0
  14. grub2-set-default 0
  15. #更新配置
  16. grub2-mkconfig -o /boot/grub2/grub.cfg
  17. # 设置开机免输入密码
  18. sed -i 's,^ExecStart=.*$,ExecStart=-/sbin/agetty --autologin root --noclear %I,' /etc/systemd/system/getty.target.wants/getty@tty1.service
  19. sed -i 's,^ExecStart=.*$,ExecStart=-/sbin/agetty --autologin root --noclear %I,' /lib/systemd/system/autovt@.service
  20. # 修改系统启动等待时间
  21. sed -i 's,timeout=5$,timeout=2,' /boot/grub2/grub.cfg
  22. sed -i 's,timeout=5$,timeout=2,' /boot/efi/EFI/centos/grub.cfg
  23. bash -c "$(curl -sS https://gitlab.biz.kuaicdn.cn/shell/centos/-/raw/main/kernel/kernel_init.sh)" # 写入内核参数文件, 在 /etc/sysctl.d/98-sysctl.conf
  24. sync
  25. reboot
  26. fi

} __kernel_update

__virt_console() {

  1. # virt console免密自动登录
  2. sed -i 's,^ExecStart=.*$,ExecStart=-/sbin/agetty --autologin root --noclear %I,' /usr/lib/systemd/system/serial-getty@.service
  3. systemctl enable serial-getty@ttyS0.service
  4. systemctl start serial-getty@ttyS0.service

} __virt_console

__set_config() {

  1. # 设置基础配置
  2. firewall-cmd --state
  3. systemctl stop firewalld.service
  4. systemctl disable firewalld.service
  5. chkconfig NetworkManager off
  6. service NetworkManager stop
  7. setenforce 0
  8. sed -i 's,^SELINUX=.*$,SELINUX=disabled,' /etc/selinux/config

} __set_config

__set_time() {

  1. # 设置时区
  2. rm -rf /etc/localtime
  3. ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

} __set_time

其他设置

安装docker https://www.yuque.com/uuu/docker/yum-install

删除网卡配置文件中的 UUID

  1. <a name="d8aIf"></a>
  2. # 启动 kvm 虚拟机
  3. ```bash
  4. __centos_import() {
  5. _name="test_centos7"
  6. virsh destroy "$_name" >/dev/null 2>&1
  7. virsh undefine "$_name" >/dev/null 2>&1
  8. _system_img="/data/kvm/vm/$_name/disk/system.qcow2"
  9. virt-install --name="$_name" \
  10. --memory=4096 \
  11. --cpu host \
  12. --vcpus $(grep 'processor' /proc/cpuinfo | sort -u | wc -l) \
  13. --os-type=linux \
  14. --os-variant=rhel7.9 \
  15. --autostart \
  16. --noautoconsole \
  17. --import \
  18. --disk "$_system_img",cache=none,bus=sata \
  19. --graphics vnc \
  20. --network network=default,model=virtio
  21. # --network bridge=br-ikuai-lan1,model=virtio,mac=88:c6:66:ea:66:91
  22. }
  23. __centos_import

使用访问

  • 在宿主机下访问
    1. virsh console --force test_centos7