virt-install创建虚拟机并制作成模板

摘要:
总的来说,这是足够的。

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

virt-install --name CentOS7.6-template --ram 2048 --vcpu=2 --virt-type kvm --cdrom=/Data/kvm/iso/CentOS-7.6-x86_64-DVD-1810.iso 
--disk /Data/kvm/img/test/CentOS7.6-template.qcow2,size=50,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.6-template.qcow2,size=50,bus=virtio               # 指定存储设备及其属性
--network bridge=br1        # 将虚拟机连入宿主机的网络中
--graphics vnc,listen=0.0.0.0   # 使vnc可以连接
--noautoconsole           # 禁止自动连接至虚拟机的控制台

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

virt-install创建虚拟机并制作成模板第1张

 使用vnc连接并安装系统

virt-install创建虚拟机并制作成模板第2张

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

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

virt-install创建虚拟机并制作成模板第3张

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

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

virt-install创建虚拟机并制作成模板第4张

二、系统层面初始化配置

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

virsh start CentOS7.6-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 0
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
*/5 * * * * /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 60
net.ipv4.tcp_fin_timeout = 2

# 表示开启TCP链接中TIME_WAIT sockets的快速回收,该参数对应系统路径为:/proc/sys/net/ipv4/tcp_tw_recycle,默认为0 表示关闭,不建议开>启,因为nat网络问题
net.ipv4.tcp_tw_reuse = 1

# reuse和recycle这俩个参数是为防止生产环境下web,squid等业务服务器time_wait网络状态数量过多设置的
net.ipv4.tcp_tw_recycle = 0

#表示开启SYN Cookies功能,当出现SYN等待队列溢出时,启用Cookies来处理,可防范少量SYN攻击,该参数对应系统路径为:/proc/sys/net/ipv4/tcp_syscookies,默认为1,表示开启
net.ipv4.tcp_syncookies = 1

# 关闭ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

# 避免放大攻击
net.ipv4.icmp_echo_ignore_broadcasts = 1

#允许系统打开的端口范围,不建议从1024开始,因为某些端口会存在10000以内。一般情况下已够用。
net.ipv4.ip_local_port_range = 10000    65000

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.6-template.qcow2 /Data/kvm/img/test/node-192.168.5.90-test.qcow2
virt-install --name node-192.168.5.90-test --ram 4096 --vcpu=2 --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创建虚拟机并制作成模板》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python基础练习题(题目 递归输出)JS日期对象的常用用法(传参、日期转字符串、日期对象常用方法、取某个月的第一天和最后一天)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

libvirt(virsh命令介绍)

有了virt-install是安装虚拟机的命令,当然也需要一个管理虚拟机的命令了,那就是virsh。 virsh命令使用 virsh <command> <domain-id> [OPTIONS] virsh既有命令行模式,也有交互模式,在命令行直接输入virsh就进入交互模式,virsh 后面跟命令参数,则是命令行模式。下面主要介...

Linux的VMware虚拟机无法上网问题

很多时候,Linux无法上网,不管改成nat模式还是主机模式都不行。这时候可以选择进行重置: 首先点击编辑,之后点击虚拟网络编辑器, 然后移除VMnet0和VMnet8网络,点击确定: 然后再打开虚拟网络编辑器,添加网络,VMnet0勾选仅主机模式,VMnet8勾选NAT模式,然后点击确定: 然后更改虚拟机的网络适配器,右键点击以下位置,然后设置,选...

lua API 小记2

1. 创建lua虚拟机 lua_State *lua_newstate (lua_Alloc f, void *ud) 创建一个新的独立的lua虚拟机. 参数指定了内存分配策略及其参数, 注意, 让用户可以定制内存分配策略是十分有用的, 比如在游戏服务器端使用lua, 我做过一次统记lua在运行的时候会大量的分配大小小于128字节的内存块, 在这样的环境下...

物理机转换成虚拟机,键盘无法使用的解决方案

前段时间使用的vm的物理机转换成虚拟机,转换了win8.1系统,转换后无法使用键盘,在设备管理器里查看黄色的感叹号,卸载重新安装故障依旧,只能使用鼠标,遇到此故障需在注册表中修改设置 修改设置如下: 打开注册表regedit:   找到 :HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E...

(压缩虚拟机磁盘的方法)对文件"***.vmdk"操作失败(磁盘空间不足)。磁盘"***.vmdk"所在的文件系统已满。

今天用kali的时候,突然间弹出这玩意 点了重试之后,发现没用,点击取消,虚拟机直接关了。本来以为是虚拟机内存满了。后来才发现,是我放虚拟机的那个磁盘满了。 解决方法就是将这个虚拟机文件放在其他磁盘空间比较大的磁盘或者是压缩这个虚拟磁盘。 压缩虚拟磁盘。可以使用DiskGenius这个软件。 下载链接:https://www.diskgenius.cn/...

Ubuntu ftp服务器搭建 + UltraEdit编辑FTP文件

0. 前言:(请无视) 最近在写一个Linux脚本,在电脑装了Ubuntu的虚拟机来测试脚本效果;可是用vim编辑脚本实在是太蛋疼,于是就想到UltraEdit编写,然后通过ftp上传到Ubuntu虚拟机中...... 一、Ubuntu 搭建ftp 服务器 1. vsftpd 服务安装 在虚拟机能联网的情况下很简单,就一条命令,然后等结果就好了,没联网我也...