首页 > 系统相关 >Centos7使用pxe安装KVM虚拟机

Centos7使用pxe安装KVM虚拟机

时间:2024-09-26 10:21:40浏览次数:9  
标签:http -- 虚拟机 KVM Centos7 dhcpd 172.16 root localhost

        Centos7使用pxe安装KVM虚拟机

一、安装服务所需的软件

[root@localhost ~]yum install nginx  dhcp  vsftpd  syslinux -y
[root@localhost ~]mount -p loop -t iso9660 images/CentOS-7-x86_64-DVD-1804.iso /mnt  #提前上传镜像
[root@localhost ~]systemctl start  vsftpd   
[root@localhost ~]systemctl enable vsftpd

二、安装DHCP服务器

[root@localhost ~]cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/  #复制示例配置文件
[root@localhost ~]cd /etc/dhcp/
[root@localhost dhcp]#rm -f dhcpd.conf
[root@localhost dhcp]#mv dhcpd.conf.example dhcpd.conf
[root@localhost dhcp]# egrep -v "^#|^$" dhcpd.conf 
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 172.16.150.0 netmask 255.255.255.0 {  #网段
  range 172.16.150.230 172.16.150.232 ; #地址池
  option routers 172.16.150.254;  #网关
  option domain-name-servers 172.16.160.20,172.16.160.21; #dns服务器
}
[root@localhost ~]cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system/
[root@localhost ~]vi /etc/systemd/system/dhcpd.service
ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid <your_interface_name(s)>
[root@localhost ~]systemctl --system daemon-reload
[root@localhost ~]systemctl restart dhcpd.service #启动服务

三、创建tftp相关目录和拷贝内核镜像及文件

[root@localhost ~]mkdir /var/tftp
[root@localhost ~]cp /mnt/images/pxeboot/initrd.img /var/tftp/  
[root@localhost ~]cp /mnt/images/pxeboot/vmlinuz    /var/tftp/
[root@localhost ~]rpm -ql syslinux | grep "pxelinux.0"  
[root@localhost ~]cp /usr/share/syslinux/pxelinux.0 /var/tftp/
[root@localhost ~]mkdir /var/tftp/pxelinux.cfg/

四、创建菜单配置文件

[root@localhost ~]# vim /var/tftp/pxelinux.cfg/default
default linux
prompt 1
timeout 60
display boot.msg
label linux
  kernel vmlinuz
  append initrd=initrd.img text ks=http://172.16.150.32/ks.cfg net.ifnames=0 biosdevname=0  ksdevice=eth0  
   #172.16.150.32是http服务器地址,我们使用http的方式下载ks.cfg及软件包,因为7的网卡名称不在是eth0,1,2而改成enoxx的格式,新的方式不但长,而且难记。ksdevice=eth0表示所有网卡名称从eth0开始,如果有多快,依次增加

五、配置nginx下载、安装配置

[root@localhost ~]#cd /usr/share/nginx/html/
[root@localhost html]#mkdir Centos7_4 #创建软件包下载目录
[root@localhost html]#umont /mnt
[root@localhost html]#mount -p loop -t iso9660 /root/images/CentOS-7-x86_64-DVD-1804.iso /usr/share/nginx/html/Centos7_4/ 
  
[root@localhost html]# vim /usr/share/nginx/html/ks.cfg  #具体自定义,文章结尾有份示例文件,也可以使用system-config-kickstart命令生成,命令可以通过yum安装
.....
url --url="http://172.16.150.32/Centos7_4"  #在ks文件中指定下载的地址
.....

#如果想打开nginx目录浏览功能,可以添加如下配置:
[root@localhost html]# cat /etc/nginx/nginx.conf
.....
server {
        autoindex on;  
    	autoindex_exact_size on;  
    	autoindex_localtime on;
.......

#如果想在线浏览ks文件,则添加如下配置
vim /etc/nginx/mime.types
text/plain                            cfg;  #添加该行

六、注意事项

1.安装的系统内容不得小于2G,否则报如下错误:
    dracut-initqueue[552]: /sbin/dmsquash-live-root: line 273: printf: write error: No space left on device
2.boot分区不得小于200M,否则或导致kickstart进程暂停,需要手动确认才会继续

 #示例文件

#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $6$pTG9CQO9$MmB9KurbyQtyAeqJm7Hrbh.kl1IGUhQK35Ce027/lGYq6TkNYHyUd6WYqluhUVnEQoPzruTbqm7HFO8CyZB0r/  #root密码,加密方法参考http://clavinli.github.io/2014/11/14/linux-command-hash-root-password-in-kickstart/
user --groups=admin --name=admin
user --groups=log --name=log

url --url="http://172.16.150.32/Centos7_4/"  #软件包下载地址
# System language
lang zh_CN
# Firewall configuration
firewall --enabled --http --ftp --ssh --port=8080:tcp,20881:tcp,8000:tcp  #可以禁用,或者开启需要放行的端口或者服务
# Use text mode install
text
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx

# Network information
network  --bootproto=dhcp --device=eth0 --gateway=172.16.150.254 --onboot=on
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=300 #不得少于200M
part swap --fstype="swap" --size=3000
part / --fstype="xfs" --grow --size=1  #1代表使用所有的剩余磁盘空间
%packages #这段表示你要安装的软件包,@表示选择的包组,最前面使用横杠表示取反,即不选择的包或包组。@base和@core两个包组总是被默认选择,可以不在%packages中指定它们
@Base 
curl 
lrzsz 
%end 
%post --interpreter /bin/bash 
/bin/curl http://172.16.150.32/System_initialize.sh -o /root/System_initialize.sh  #安装后需要做的操作,也可以是命令或者打包到脚本中执行
/bin/bash /root/System_initialize.sh
%end

ks.cfg文件

virt-install --virt-type=kvm   --name "zest_machine"  --location=http://172.16.150.32/Centos7_4/  --memory=4096  --vcpus=1 --disk path=/var/lib/libvirt/images/zest_machine.img,size=60  --network bridge=br0  --os-type linux --os-variant rhel7 --extra-args="ks=http://172.16.150.32/ks.cfg --autostart  console=tty0 " --force &

kvm安装脚本

 

"一劳永逸" 的话,有是有的,而 "一劳永逸" 的事却极少



标签:http,--,虚拟机,KVM,Centos7,dhcpd,172.16,root,localhost
From: https://blog.51cto.com/u_8901540/12117744

相关文章

  • centos7安装gitlab并汉化
    一、基础环境准备1.安装依赖包[root@gitlab-server~]#yuminstallcurlpolicycoreutilsopenssh-serveropenssh-clientspostfixwgetgitpatch-y[root@gitlab-server~]#systemctlstartpostfix2.配置yum源(由于网络问题,国内用户,建议使用清华大学的镜像源进行安装)[root@g......
  • 学生订阅如何免费获得2台Azure ArchLinux虚拟机
    微软Azure的学生订阅可以免费开Windows和Linux虚拟机各一台,但是只有1G内存,在Windows Server里面跑不动程序。下面记录了我将安装了Ubuntu和WindowsServer的2台虚拟机都重装成ArchLinux的过程。一、登录github学生账号,登入https://portal.azure.com/ 分别开通两台免费的......
  • Windows系统修改Tomcat虚拟机内存参数
    文章目录I修改Tomcat虚拟机内存参数基于tomcat管理程序进行配置基于setenv文件进行配置II查看服务器状态/manager/status查看服务器状态manager/jmxproxy查询Tomcat指标I修改Tomcat虚拟机内存参数基于tomcat管理程序进行配置查看堆内存分配情......
  • 使用dockerfile来构建一个包含Jdk17的centos7镜像
    文章目录1、dockerfile简介2、入门案例2.1、创建目录/opt/dockerfilejdk172.2、上传jdk-17_linux-x64_bin.tar.gz到/opt/dockerfilejdk172.3、在/opt/dockerfilejdk17目录下创建dockerfile文件2.4、执行命令构建镜像:不要忘了后面的那个.2.5、查看镜像是否建立完成2......
  • 【linux】cent7安装nmon(arm架构,mac虚拟机)
    因为nmon最新版不支持arm架构,所以需要手动下载源码和编译文件手动生成可执行文件mkdir-p/usr/local/tools/nmoncd/usr/local/tools/nmon1、下载源码地址:https://nmon.sourceforge.io/pmwiki.php?n=Site.CompilingNmonwget http://sourceforge.net/projects/nmon/files/lm......
  • centos7 设置静态ip
    在CentOS7上设置静态IP,你需要按照以下步骤操作: 找到你的网络接口名称,使用命令 nmclid。 编辑网络配置文件。配置文件通常位于 /etc/sysconfig/network-scripts/,文件名为 ifcfg-<interface>,例如 ifcfg-ens33。 修改配置文件,设置静态IP相关的参数。 重......
  • 虚拟机中创建虚拟磁盘
    1.创建虚拟磁盘1.1使用dd命令确保路径存在以便于创建虚拟磁盘[root@localhost~]#mkdir-p/path/to创建虚拟磁盘[root@localhost~]#ddif=/dev/zeroof=/path/to/virtual_disk.imgbs=1Mcount=1024如此创建一个大小为1GB的虚拟磁盘~1.2使用fallocate命令[root@lo......
  • 【Java】虚拟机(JVM)内存模型全解析
    目录一、运行时数据区域划分版本的差异:二、程序计数器程序计数器主要作用三、Java虚拟机1.虚拟机运行原理2.活动栈被弹出的方式3.虚拟机栈可能产生的错误4.虚拟机栈的大小四、本地方法栈五、堆1.堆区的组成:新生代+老生代2.堆空间的大小设置3.创建对象的内......
  • centos7系统安装部署zabbix5.0
    一、简介zabbix是一个基于[WEB]界面的提供分布式[系统监视]以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证[服务器系统]的安全运营;并提供灵活的通知机制以让[系统管理员]快速定位/解决存在的各种问题。二、安装配置1.关闭防火墙和selinuxsystemctl......
  • VMWare虚拟机键盘卡顿
    文章目录环境问题解决办法参考环境Windows11家庭中文版VMwareWorkstation17ProUbuntu24.04.1问题最近新入手了一台电脑台式机,型号是联想拯救者刃7000K,自带Win11家庭版。主机的CPU是第14代英特尔酷睿i9处理器,异构24核32线程。在电脑上安装了VMWareWorkstati......