一、使用virt-install创建新的虚拟机

virt-install --name CentOS7.-template --ram  --vcpu= --virt-type kvm --cdrom=/Data/kvm/iso/CentOS-7.6-x86_64-DVD-.iso \
--disk /Data/kvm/img/test/CentOS7.-template.qcow2,size=,bus=virtio --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole # 命令解释:
--name                # 虚拟机名称,需全局惟一
--ram                 # 虚拟机内在大小,单位为MB
--vcpu                # VCPU个数及相关配置
--virt-type            # 使用的hypervisor,如kvm、qemu、xen等;所有可用值可以使用virsh capabilities命令获取;
--cdrom                # 光盘安装介质
--disk /Data/kvm/img/test/CentOS7.-template.qcow2,size=,bus=virtio # 指定存储设备及其属性
--network bridge=br1        # 将虚拟机连入宿主机的网络中
--graphics vnc,listen=0.0.0.0   # 使vnc可以连接
--noautoconsole           # 禁止自动连接至虚拟机的控制台

使用命令创建完成之后,查到vnc端口是5901,如果是第一次安装默认是5900

使用vnc连接并安装系统

为统一网卡的名称为eth0所以要进行如下配置:

. 选择“Install Centos ”
. 按Tab,打开kernel启动选项后,增加 net.ifnames= biosdevname=

方案一:系统磁盘大小50G;最小化安装配置,磁盘分区因为是虚拟机,为了不影响性能,只创建/根分区,不创建SWAP分区

方案二:系统磁盘大小20G;再按需求挂载数据盘到系统的/Data目录下;

二、系统层面初始化配置

2.1 安装完成之后启动虚拟机,先通过vnc连接

virsh start CentOS7.-template

2.2 连接上之后启动服务serial-getty@ttyS0.service,以便宿主机能使用console命令连接

systemctl start serial-getty@ttyS0.service
systemctl enable serial-getty@ttyS0.service

2.3 关闭firewalld和NetworkManager服务

systemctl stop firewalld
systemctl stop NetworkManager
systemctl disable firewalld
systemctl disable NetworkManager

2.4 禁用SELinux服务

setenforce
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config

2.5 配置网卡和DNS信息,ifcfg-eth0只保留如下几行,一定要删除UUID,或者手动指定IP需要时再进行替换

# 配置网卡信息
cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=dhcp
NAME=eth0
DEVICE=eth0
ONBOOT=yes # 配置DNS
cat /etc/resolv.conf
nameserver 114.114.114.114
nameserver 223.5.5.5 # 修改主机名
hostnamectl set-hostname 192-168-5-29

2.6 配置epel源安装常用软件

rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
yum install -y net-tools vim lrzsz tree screen lsof tcp wget tcpdump nc mtr nmap openssl-devel ntpdate glances bash-completion psmisc

2.7 配置文件描述符数量

echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
echo "* soft nproc 65535" >> /etc/security/limits.conf
echo "* hard nproc 65535" >> /etc/security/limits.conf

2.8 设置记录历史命令

echo 'export HISTTIMEFORMAT=" %F %T `whoami` "' >> /etc/profile
source /etc/profile

2.9 如果内网没有ntpd服务可以同步公网的时间

crontab -e
*/ * * * * /usr/sbin/ntpdate time1.aliyun.com

2.10 可以配置一些内核参数的优化,参见链接

https://www.cnblogs.com/cyleon/p/10309969.html
cat /etc/sysctl.conf
# 表示套接字由本端要求关闭,这个参数决定了它保持在FIN-wAIT-2状态的时间,默认值是60秒,建议调整为2,该参数对应系统路径为:/proc/sys/net/ipv4/tcp_fin_timeout
net.ipv4.tcp_fin_timeout = # 表示开启TCP链接中TIME_WAIT sockets的快速回收,该参数对应系统路径为:/proc/sys/net/ipv4/tcp_tw_recycle,默认为0 表示关闭,不建议开>启,因为nat网络问题
net.ipv4.tcp_tw_reuse = # reuse和recycle这俩个参数是为防止生产环境下web,squid等业务服务器time_wait网络状态数量过多设置的
net.ipv4.tcp_tw_recycle = #表示开启SYN Cookies功能,当出现SYN等待队列溢出时,启用Cookies来处理,可防范少量SYN攻击,该参数对应系统路径为:/proc/sys/net/ipv4/tcp_syscookies,默认为1,表示开启
net.ipv4.tcp_syncookies = # 关闭ipv6
net.ipv6.conf.all.disable_ipv6 =
net.ipv6.conf.default.disable_ipv6 = # 避免放大攻击
net.ipv4.icmp_echo_ignore_broadcasts = #允许系统打开的端口范围,不建议从1024开始,因为某些端口会存在10000以内。一般情况下已够用。
net.ipv4.ip_local_port_range =

2.11 允许root可以ssh登录

# 打开允许root允许ssh登录
sed -i 's#\#PermitRootLogin yes#PermitRootLogin yes#g' /etc/ssh/sshd_config # 安全配置可设置hosts.all和hosts.deny
cat /etc/hosts.allow
##IDC LAN ip
sshd:192.168.5.0/255.255.255.0
sshd:10.0.0.1/255.255.255.0 cat /etc/hosts.deny
sshd:all # 重启sshd服务
systemctl restart sshd

2.12 修改缓存、清理历史命令

yum clean all
yum makecache
history -c

2.13 将ansible的公钥推入模板中

[root@ansible ~]# ssh-copy-id -i .ssh/id_dsa.pub root@192.168.5.29

2.14 最后关机做成模板

三、使用模板创建虚拟机

可以制作多个不同的模板,按业务环境需求,直启动。

或者模板创建完成之后再使用salt-stack或ansible按需求进行初始化配置。

cp /Data/kvm/img/test/CentOS7.-template.qcow2 /Data/kvm/img/test/node-192.168.5.90-test.qcow2
virt-install --name node-192.168.5.90-test --ram --vcpu= --virt-type kvm --disk /Data/kvm/img/test/node-192.168.5.90-test.qcow2,bus=virtio --network bridge=br1,model=virtio --import --noautoconsole

virt-install创建虚拟机并制作成模板的更多相关文章

  1. centos7安装kvm环境采用网桥模式并创建虚拟机制作openstack需要的镜像

    初始环境的安装:centos7 mini iso镜像进行安装的系统 采用的环境是vm该软件,联网方式NAT模式下配置的静态ip(如何在NAT模式下配置静态ip参考之前的文章) 1.由于要安装kvm环境 ...

  2. KVM初探之一--存储池与存储卷,使用virt-install创建虚拟机

    在机器上装了一个Centos6.2用来测试KVM,对比Windows下的VMware worstation,KVM功能强大,定制性高,只要入了门,绝对是功能强大.用来作云计算不错.不过就是操作性差了点 ...

  3. KVM创建虚拟机

    一.复制现有img备份 1.ssh登陆宿主机 我的在 192.168.0.302.复制img 我的虚拟机img文件在 /home/images 我的img模板文件在 /home/tools/kvm/i ...

  4. 创建虚拟机流程nova

    这篇博文借鉴于http://www.cnblogs.com/yjbjingcha/p/6977741.html,感谢博友提供. 本文试图具体地描写叙述openstack创建虚拟机的完整过程.从用户发起 ...

  5. 红帽虚拟化RHEV3.2创建虚拟机(图文Step by Step)

    目录 目录 前言 Install RHEV 创建Data CenterClusterHost 创建存储 创建虚拟机 前言 RHEV3.2的Web管理界面有了很大的改进,更加的简单和便捷,还可以使用中文 ...

  6. QEMU-KVM自己主动创建虚拟机,以指定IP构造

    正在使用qemu不能指定创建虚拟机的过程IP住址,然而,在实际应用中,我们需要有一台虚拟机IP住址,不是人为的虚拟机操作系统配置. 于qemu虚拟机技术文档(http://qemu.weilnetz. ...

  7. 在Ceph创建虚拟机的过程改进分析

    作为个人学习笔记分享.有不论什么问题欢迎交流! 近期在Gerrit中看到一个change:https://review.openstack.org/#/c/94295/ , 它主要是对当前在Ceph中 ...

  8. Nova创建虚拟机的底层代码分析

    作为个人学习笔记分享.有不论什么问题欢迎交流! 在openstack中创建虚拟机的底层实现是nova使用了libvirt,代码在nova/virt/libvirt/driver.py. #image_ ...

  9. VMware workstation批量创建虚拟机和自动化安装操作系统(二)

    一. 简述 在上一篇<VMware workstation批量创建虚拟机和自动化安装操作系统(一)>中,主要介绍了VMware workstation自定义创建虚拟机的过程,和一些其他的有 ...

随机推荐

  1. 第10组 Alpha事后诸葛亮

    一.组长博客链接 组长博客 二.总结思考 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的APP主要解决大学生闲置物品处理问题,定义的很清楚,用户 ...

  2. csv文件处理

    读取csv文件 import csv with open('demo.csv', 'r') as fp: reader = csv.reader(fp) titles = next(reader) f ...

  3. 不用FTP,直接Windows与Linux下互传文件

    直接上传文件到Linux[1] Linux上输入命令:rz 直接下载Linux中的文件[2] 使用命令: sz 文件名 网上看到这个帖子,觉得很实用,转载保存 下载一个部署文件夹,到本地电脑 . 两步 ...

  4. 【C/C++开发】STL内嵌数据类型: value_type

    使用stl库的时候一直对value_type这个东西理解的不是很好,可以说就是不理解.今天看了<STL源码剖析>才恍然大悟.这里稍作记录. 每个STL中的类都有value_type这种东西 ...

  5. 【原创】在windows下使用xampp搭建phpcms v9

    我的操作环境: 操作系统:windows 7       64 位操作系统(有点古老,哈哈) 1.下载php环境和phpcmsv9源代码:phpcms v9 的源码:phpcms_v9.5.10_UT ...

  6. Jmeter接口测试【1】_安装配置教程

    一.安装Java环境 1.下载JDK JDK 可以到官网选择windows系统版本(32位/64位)下载http://www.oracle.com/technetwork/java/javase/do ...

  7. 如何配置maven的环境变量

    安装maven后,这是maven的安装路径 打开:我的电脑——右键——属性——高级系统设置——环境变量 第一步:点击“系统变量(S)”下面的“新建(W)...”按钮,在“新建系统变量”中输入变量名MA ...

  8. 25个led灯新玩法

    Microbit板子的25个led灯,是5X5的阵列,led(lights emitting diodes)中文叫发光二极管,有单向导电性,还发光,有各种颜色的,红,蓝,黄等等.mPython可以让你 ...

  9. SpringBoot工程常见报错汇总

    1.Springboot测试类运行报错 java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you ...

  10. 关于C语言指针的讨论

    C语言指针的讨论 1.指整的概念辨析 2.指针与一维数组 3.指针与二维数组 4.指针与动态数组 5.指针数组 6. 指整与函数,形参,返回值 先熟悉一下概念,使劲把他们记下了 变量定义 类型表示 含 ...