Linux——pxe中ks脚本增强

1)DHCP服务器,为上面两个虚拟机指定固定IP地址比如:第一台服务器分配.101,第二台服务器分配.102地址默认租期2小小时

2)修改ks脚本

磁盘分区:不使用逻辑卷,使用普通分区(注意SATA硬盘是sda)

参照ks脚本中part /boot的写法

/boot分配1G空间

swap分配2G空间

/ 分配剩余所有空间

创建用户:客户机自动创建用户dbuser,密码设置为redhat123

3)预定义软件包

不带图形界面的Server

定义两台虚拟机分别有两个网卡一个net,一个仅主机

一、DHCP

复制代码
cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp-server/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
subnet 192.168.99.0 netmask 255.255.255.0 {
range 192.168.99.100 192.168.88.150;
option domain-name-servers 114.114.114.114;
option domain-name "example.com";
option routers 192.168.99.127;
option broadcast-address 192.168.99.255;
default-lease-time 3600;
max-lease-time 7200;
next-server 192.168.99.128;
filename "pxelinux.0";
 
host test1 {  
    hardware ethernet 00:50:56:2C:62:8B;  
    fixed-address 192.168.99.101; 
    server-name "test1.example.com"; 
  }  
  
  host test2 {  
    hardware ethernet 00:0C:29:FE:F2:7F;    
    fixed-address 192.168.99.102;
    server-name "test2.example.com";  
  } 
}

上部分

domain-name和之后要修改的配置,做一个匹配

假设所有客户机处于example.com这个领域

每个主机又有自己不同的主机名称

增加了DHCP默认租期,尽量让租用时间能覆盖PXE部署过程

下部分,对于每个客户机的配置

每个机器的MAC地址,提前收集

每个对应MAC的主机,匹配一个特定的IP地址

然后,每个主机,也有特定的主机名

二、TFTP

1)配置文件,没有变化,因为TFTP只是让客户能从指定目录,下载文件

本身没有更多个性化配置

2)tftp工作目录中的文件和特定配置

开机启动菜单,取消倒计时等待,设定超时时间

默认使用下面的linux这一段配置

menu部分

每个label是一个单独的菜单项,在开机启动菜单

kernel指定要使用的启动的内核

append部分指定内核参数......

有一个小改动:(不改也没问题,只是为了完全适应8以及后续版本系统的要求)

inst.ks=......(原本写ks=......也能识别加载ks文件)

=后面,写了http,接下来,用http提供软件仓库

default文件是只读,需要root用户操作,强制保存......

3)tftp工作目录中需要拷贝的文件不变

三、HTTP

原本使用apache

在/etc/http/conf/httpd.conf修改配置

默认目录是/var/www/html/

整个系统镜像内容,全部移到上面的这个目录

......

接下来,使用nginx做http的部分

1)安装软件包

yum install nginx -y

2 )修改配置文件

vi /etc/nginx/nginx.conf

监听端口,确保是80

root工作目录,使用默认目录

location做访问控制,只允许客户机所在网段访问

nginx自己自带的页面:index.html文件,404和50x的页面文件

现在把CentOS整个安装镜像的内容,拷贝到centos84目录

ks.cfg文件也拷贝到这里

3)启动启用http服务

四、ks脚本

修改原有的脚本,对将要安装的客户机,做一定程度的自定义配置

现在做其中一部分,还可以做更多......

repo指定http的路径

指定软件包

@^ 指定安装软件的套装

上面指定的,等效于自己图形化安装时指定的:Server

比Server GUI,少图形桌面,但是包含大部分需要用的必要软件包

比最小化安装,容量略大,但是软件包更全

还可以@ 后面跟要额外安装的软件包名称......

最后%end结束

如果有多个网卡需要在安装时候配置,可以写多条network

因为已经使用DHCP分配主机名,所以在ks里不单独指定主机名配置

安装介质的路径,也是http

上面,是客户机分区的配置

part条目,配置普通分区,如果要配置多个普通分区,按顺序写多条part

例子里用的是nvme硬盘,所以盘号是nvme0n1

如果是使用SATA盘,这盘号是sda

如果使用逻辑卷部署,但是又要保证/boot使用普通分区

先写part /boot的条目

之后的条目,先创建物理卷

part pv.编号

磁盘分区:不使用逻辑卷,使用普通分区(注意SATA硬盘是sda)

参照ks脚本中part /boot的写法

/boot分配1G空间

swap分配2G空间

/ 分配剩余所有空间

选项:--size=1,只给了1M,但是它要从1M起,后面跟着另一个选项

--grow,配合到一起,从1M容量起,自动分配剩余所有空间

volgroup建立卷组,并且,也没有指定容量,卷组占用pv所有空间

之后是创建每个逻辑卷lv,逻辑卷要指定容量

文件系统,上面例子使用了ext4,没使用xfs......

上面的分区配置方式

并不限定客户机磁盘总容量,可以根据磁盘容量自动适应上限

客户机的系统盘,只要留出足够空间即可

配置客户机系统内的用户

每创建一个用户,都写一行配置

再往后,可以指定安装后要执行的脚本或命令

写%post部分

会在系统软件包都装完,但是第一次重启前,执行

例子里

把自带的repo文件备份到其他位置,不使用

从服务器,下载一个repo文件

从服务器,又下载一个文件:hosts文件

下载文件,用的是wget,通过http下载

selinux更改模式

在初次安装时,关闭了防火墙服务(不关闭也可以,默认是放行ssh的)

在%post ...... %end

这段,可以写各种命令,也可以指定执行脚本......

最后,自动重启

5.额外准备的文件,客户机要从服务器下载的

1)hosts文件

这个文件直接会覆盖客户机的hosts

例子里,解析了服务器、两台客户机

复制代码
cat hosts 
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1       localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.99.128 server8.example.com
192.168.99.101 test1.example.com
192.168.99.102 test2.example.com

2)repo文件

给客户机用,通过服务器,提供yum源

复制代码
cat inter.repo 
[Appstream]
name=Appstream
baseurl=http://192.168.99.128/centos84/AppStreamenabled=1gpgcheck=0
[BaseOS]
name=local
baseurl=http://192.168.99.128/centos84/BaseOSenabled=1
gpgcheck=0

6.客户机安装后

1)有特定自己的IP地址,有自己的主机名

2)有hosts做基本名称解析

3)有网络yum源,指向服务器

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式