内容简介:一、环境准备三、TFTP服务器四、HTTP服务器(也可以用NFS或FTP)
1、关于PXE
Preboot Execution Environment翻译过来就是预启动执行环境;简称PXE;传统安装操作系统的方法是CDROM或U盘引导,而PXE技术解决的是从网络引导安装系统,当然PXE技术不是什么新技术了,是Intel和Microsoft在1998年定义的更大PC98规范的一部分。有关PXE规范的详细文档
2、pxe引导相关角色说明
PXE作用: 引导装机
Kickstart作用: 将安装系统的过程中通过ks.cfg文件中的配置信息,实现自动安装配置达到无人值守自动安装;
TFTP: 支持PXE 引导的网卡中从tftp服务器端下载pxelinux.0文件、vmlinuz、initrd.img等内核引导文件;
DHCP: PXE引导过程中获首先获取IP地址,并提供pxelinux.0文件位置;
HTTP: 用于下载ks.cfg以及系统镜像文件
通用的无人值守做法如下:
通过一台没有系统的裸机网卡支持pxe协议,开机后从dhcp服务器获取ip和pxelinux.0文件并从tftp服务器上加载相关内核引导文件;同时下载 kickstart的cfg配置文件,指定系统镜像文件位置加载安装,从而实现无人值守安装!
如图(图片来自于网络):
3、满足Kickstart安装系统的需求
1) 网卡必须支持PXE引导;
2) 客户端需要有与Kickstart 通信的IP地址,这里一般都是通过DHCP自动分配IP地址来实现;
3) 提供引导所需的文件,内核文件,内核镜像文件等,此时一般通过tftp-server等实现;
4) kickstart文件,它主要实现自动化安装的过程,比如配置主机名、添加用户、安装系统后相关操作;
5) 提供安装源,一般就是NFS/ftp/httpd等;
(1).Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将pxe环境下的Boot loader文件pxelinux.0的位置信息传送给Client。
(2).Client向PXE Server上的TFTP请求pxelinux.0,TFTP接收到消息之后再向Client发送pxelinux.0大小信息,试探Client是否满意,当TFTP收到Client发回的同意大小信息之后,正式向Client发送pxelinux.0。
(3).Client执行接收到的pxelinux.0文件。
(4).Client向TFTP请求pxelinux.cfg文件(其实它是目录,里面放置的是是启动菜单,即grub的配置文件),TFTP将配置文件发回Client,继而Client根据配置文件执行后续操作。
(5).Client向TFTP发送 Linux 内核请求信息,TFTP接收到消息之后将内核文件发送给Client。
(6).Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件系统。
(7).Client加载Linux内核(启动参数已经在4中的配置文件中设置好了)。
(8).Client通过nfs/ftp/http下载系统安装文件进行安装。如果在4中的配置文件指定了kickstart路径,则会根据此文件自动应答安装系统。
一、环境准备
vmware station虚拟机 网卡NAT模式 IP地址:192.168.153.11 所需要的服务器都安装在同一台服务器上 1、虚拟机挂载7.2的ISO文件 mount /dev/cdrom /mnt/ 2、关闭防火墙 systemctl stop firewalld systemctl disable firewalld 3、关闭selinux setenforce 0 改配置文件
二、DHCP服务器
[root@localhost ~]# yum -y install dhcp [root@localhost ~]# cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak_$(date +%Y-%m-%d-%H-%M) [root@localhost ~]# cat /etc/dhcp/dhcpd.conf default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 192.168.153.0 netmask 255.255.255.0 { option routers 192.168.153.2; option subnet-mask 255.255.255.0; option domain-name-servers 192.168.153.2; option time-offset -18000; # Eastern Standard Time range dynamic-bootp 192.168.153.200 192.168.153.220; default-lease-time 21600; max-lease-time 43200; next-server 192.168.153.11; filename "pxelinux.0"; } 注意:多网卡的时候绑定网卡启动dhcp服务,不是多网卡不用理会这步。 [root@localhost ~]# cat /usr/lib/systemd/system/dhcpd.service [Unit] Description=DHCPv4 Server Daemon Documentation=man:dhcpd(8) man:dhcpd.conf(5) Wants=network-online.target After=network-online.target After=time-sync.target [Service] Type=notify ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid eno33554984 [Install] WantedBy=multi-user.target [root@localhost ~]#systemctl start dhcpd.service [root@localhost ~]#systemctl enable dhcpd.service [root@localhost ~]#ss -tunl | grep ":67" #验证是否运行成功
三、TFTP服务器
[root@localhost ~]#yum install -y tftp-server xinetd syslinux [root@localhost ~]#vim /etc/xinetd.d/tftp service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no #这个设置为no per_source = 11 cps = 100 2 flags = IPv4 } [root@localhost ~]#cp -rf /usr/share/syslinux/* /var/lib/tftpboot 说明:syslinux是一个功能强大的引导加载程序,而且兼容各种介质。更加确切地说:SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。 [root@localhost ~]#mkdir /var/lib/tftpboot/pxelinux.cfg [root@localhost ~]#mkdir /var/lib/tftpboot/centos7 [root@localhost ~]#cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7 [root@localhost ~]#cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/centos7 [root@localhost ~]#touch /var/lib/tftpboot/pxelinux.cfg/default [root@localhost ~]#chmod 755 /var/lib/tftpboot/pxelinux.cfg/default [root@localhost ~]# cat /var/lib/tftpboot/pxelinux.cfg/default default menu.c32 prompt 1 timeout 30 menu title ########## GXM-PXE Boot Menu ########## label linux menu label Install CentOS 7.2 x86_64 menudefault kernel centos7/vmlinuz append initrd=centos7/initrd.img text inst.repo=http://192.168.153.11/CentOS-7.2-x86_64 ks=http://192.168.153.11/CentOS-7.2-x86_64/CentOS-7.2-x86_64.cfg [root@localhost ~]#systemctl start xinetd [root@localhost ~]#systemctl enable xinetd [root@localhost ~]#systemctl start tftp [root@localhost ~]#systemctl enable tftp [root@localhost ~]#netstat -tulnp | grep xinetd 备注:可以设置多个label。
四、HTTP服务器(也可以用NFS或FTP)
[root@localhost ~]#yum install -y httpd createrepo [root@localhost ~]#mkdir /var/www/html/CentOS-7.2-x86_64 [root@localhost ~]#cp -a /mnt/* /var/www/html/CentOS-7.2-x86_64/ [root@localhost ~]#cat /var/www/html/CentOS-7.2-x86_64/CentOS-7.2-x86_64.cfg #version=DEVEL # System authorization information auth --enableshadow --passalgo=sha512 # Install OS instead of upgrade install # Use network installation url --url=http://192.168.153.11/CentOS-7.2-x86_64 # Use graphical install graphical # Run the Setup Agent on first boot firstboot --enable ignoredisk --only-use=sda # Keyboard layouts keyboard --vckeymap=us --xlayouts='us' # System language lang en_US.UTF-8 # Network information network --bootproto=dhcp --device=eno16777736 --onboot=yes --ipv6=auto network --hostname=localhost.localdomain # Root password rootpw --iscrypted $1$password$7ZK8mMeLGXxbNPeJEFJOU0 # System timezone timezone Asia/Shanghai --isUtc # System bootloader configuration bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda autopart --type=lvm # Partition clearing information clearpart --none --initlabel %packages @^minimal @core kexec-tools vim wget httpd lrzsz net-tools %end %addon com_redhat_kdump --enable --reserve-mb='auto' %end selinux --disabled reboot
备注1:
也可以用图形化配置生成ks文件,步骤如下:
安装Kickstart:
yum -y install system-config-kickstart
在桌面环境下配置Kickstart:
system-config-kickstart
备注2:
ks的配置文件中rootpw密码可以使用明文,也可以使用加密过的值。
比如明文密码是:123456,对应加密后的密码是:$1$password$7ZK8mMeLGXxbNPeJEFJOU0
那这个密码是怎么生成的呢,其实和生成linux操作系统的密码shadow一样,命令如下:
perl -e 'print crypt("123456",q($1$password)),"\n"'
当使用特殊字符时,例如@$符时需要在前面加上\,例:\@\$,否则加密字符串会错误
其中123456为要给用户设置的密码,$1$password字符串是自定义字符串,shadow里一般用$1$后面跟8个字符这种格式。
[root@localhost ~]#createrepo -pdo /var/www/html/CentOS-7.2-x86_64/ /var/www/html/CentOS-7.2-x86_64/ [root@localhost ~]#createrepo -g `ls /var/www/html/CentOS-7.2-x86_64/repodata/*-comps.xml` /var/www/html/CentOS-7.2-x86_64/ [root@localhost ~]#systemctl start httpd.service [root@localhost ~]#systemctl enable httpd.service [root@localhost ~]#curl --head http://192.168.153.11/CentOS-7.2-x86_64/CentOS-7.2-x86_64.cfg #验证是否可以访问,可以则返回200
五、创建虚拟机,选择NAT网卡,有必要可以关闭vmnet8的dhcp功能。如下图表示成功。
备注:centos 6只需要修改配置文件即可。
以上所述就是小编给大家介绍的《centos 7.4部署PXE+kickstart无人值守安装CentOS 7.2》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- EnterpriseDB: 无人值守安装
- redis的主从复制,哨兵值守
- 酸爽!我用这套无人值守安装系统瞬间搞定上百台服务器
- linux 部署golang 项目(直接部署和基于nginx部署)
- 部署策略对比:蓝绿部署、金丝雀发布及其他
- 使用Docker容器化部署实践之Django应用部署(一)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Introduction to Linear Optimization
Dimitris Bertsimas、John N. Tsitsiklis / Athena Scientific / 1997-02-01 / USD 89.00
"The true merit of this book, however, lies in its pedagogical qualities which are so impressive..." "Throughout the book, the authors make serious efforts to give geometric and intuitive explanations......一起来看看 《Introduction to Linear Optimization》 这本书的介绍吧!