RHCE:PXE+TFTP+DHCP+APACHE+Kickstart

第一部分是随堂笔记,下面有详细的安装过程

kickstart通过DHCP配置自动化安装系统:
安装软件包:
yum install system-config-kickstart


生成kickstart文件的方法:
1.复制/root目录下anaconda-ks.cfg文件进行编辑

2.使用system-config-kickstart图形化GUI程序生成配置文件(不支持生成高级ks配置,如LVM,RAID等)
++++++++++++++++++++++++++++++++++++++++++++++++++
如果发现图形页面无法看到Package Selection时用以下方法处理:
在/etc/yum.repo.d/下修改repo仓库的名称为:
[development] #修改成名字
#name="Local classroom copy of dvd"
baseurl=file:///content/rhel7.0/x86_64/dvd
gpgcheck=0

再清理一下yum缓存:
# yum clean all
这样处理以后就可以看到Package Selection选项了

+++++++++++++++++++++++++++++++++++++++++
ks文件语法验证工具:ksvalidator
eg:#ksvalidator /tmp/anaconda-ks.cfg


比较不同版本ks.cfg文件的变化:
ksverdiff -f rhel6 -t rhel7

第一个扇区=512=446(mbr容量)+(每个分区的容量)16*4+2)

ks.cfg语法:
命令部分:
keyboard us
langen_US
bootloader --location=mbr --boot-drive=sda 
text|graphical
timezone [--utc] Asia/Shanghai --ntpservers=ntp1.aliyun.com
clearpart --all --drivers=sda,sdb --initlabel
zerombr
ignoredisk --drivers=sdc
part part swap --size=2048
part /boot --fstype ext4 --size=100000
part pv.01 --size=8192
reboot|poweroff|halt
selinux selinux --enforcing|--disabled 
authconfig --useshadow --passalgo=sha512
rootpw --plaintest 1234234pw| rootpw --iscrypted  strings
firewall --disabled | enabled --service=ssh,cups
PV volgroup vgname pvname
network --drive=eth0 --bootproto=dhcp
services --disabled=NetworkManager

软件包部分:
%packages
@Component Name  #软件组
package-name #单个软件包
-package-name #排除软件包
eg:
@base
@core
chrony
rsync
-NetworkManager
-autofs

脚本部分:
%pre #安装前脚本


%post #安装后要运行的脚本
clearpart
services
rootpw
part
tiemzone
network
cat>  /tmp/rsc.log <<eof  #将eof之间的值插入到rsc.log文件中
abc
eof

#清除rhel7.0网卡的命名方式
rm -rf /etc/udev/rules.d/70
ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules
sed -i '/linux16/ s/$/net.ifnames=0 biosdevname=0/' /boot/grub2/grub.cfg


%end #安装结束


ks.cfg案例:
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'# Reboot after installation
reboot
# Root password
rootpw --iscrypted $1$XUGOBOo8$BrYpenXf.WXvSjukZqBU51
# System timezone
timezone Asia/Shanghai --isUtc
# Use network installation
url --url="ftp://172.16.10.10/pub"
# System language
lang en_US
# Firewall configuration
firewall --enabled --http --ftp --ssh
# Network information
network  --bootproto=static --device=eth0 --gateway=172.16.10.254 --ip=172.16.10.3 --

netmask=255.255.255.0
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# SELinux configuration
selinux --enforcing

# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --asprimary --fstype="xfs" --grow --maxsize=1 --size=1
part swap --fstype="swap" --size=2048
part / --asprimary --fstype="xfs" --grow --size=1
%post
rm -rf /etc/udev/rules.d/70
ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules


%end


验证ks.cfg文件是否有错误:
# ksvalidator ks.cfg

PXE+DHCP+TFTP+FTP/APACHE/NFS网络自动安装系统:
PXE客户端在网卡上:
1.PXE客户端通过DHCP获取IP地址,DHCP分配IP地址,
2.pxelinux.0 到TFTP服务器获取
3.pxelinux.cfg 到TFTP服务器获取
4.vmlinuz 到TFTP服务器获取
5.initrd.img 到TFTP服务器获取
6.启动linux内核 到TFTP服务器获取
7.启动systemd进程


实验环境:
DHCP/TFTP IP:172.16.10.1
HTTP/FTP/NFS IP:172.16.10.1
防火墙关闭:iptables

安装DHCP服务器:
vim /etc/dhcp/dhcpd.conf
subnet 192.168.215.0 netmask 255.255.255.0{
range dynamic-bootp 192.168.215.100 192.168.215.200;
option broadcast-address 192.168.215.255;
option routers 192.168.215.1; 
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.215.1;

filename "pxelinux.0";
next-server 192.168.215.99 #tftp的地址
default-lease-time 21600;
max-lease-time 43200;

安装TFTP服务端:
yum install -y tftp-server  syslinux

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  #将yes修改成no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

systemctl start xinetd
[root@foundation0 xinetd.d]# systemctl start xinetd
[root@foundation0 xinetd.d]# ss -antulp | grep tftp
[root@foundation0 xinetd.d]# systemctl start tftp.socket
[root@foundation0 xinetd.d]# systemctl start tftp.service
[root@foundation0 xinetd.d]# ss -antulp | grep tftp
tcp    UNCONN     0      0                     :::69                   :::*      users:

(("in.tftpd",6092,0),("systemd",1,28))

#关闭selinux
[root@foundation0 xinetd.d]# getenforce
Enforcing
[root@foundation0 xinetd.d]# setenforce 0
[root@foundation0 xinetd.d]# getenforce
Permissive #只警告不阻止

#禁止防火墙
[root@foundation0 xinetd.d]# systemctl stop firewalld 

 
}


详细安装过程:

为了满足同时安装上百台linux,而且不需要人工干预。这就需要PXE来通过网线自动安装linux

PXE+Kickstart+DHCPD+HTTPD+TFTP

1.搭建yum源来下载必要的工具

这么用的是aliyun:
CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
之后运行yum makecache生成缓存

2.下载syslinux,dhcp,http,tftp-server。

1.[root@localhost etc]# yum -y install syslinux dhcp httpd tftp-server  

2.Loaded plugins: fastestmirror, langpacks  

3.Loading mirror speeds from cached hostfile  

4.Package syslinux-4.05-12.el7.x86_64 already installed and latest version  

5.Package 12:dhcp-4.2.5-42.el7.centos.x86_64 already installed and latest version  

6.Package httpd-2.4.6-40.el7.centos.x86_64 already installed and latest version  

7.Package tftp-server-5.2-12.el7.x86_64 already installed and latest version  

8.Nothing to do  

 

yum -y install syslinux dhcp httpd tftp-server

3.下载自动安装kickstart工具命令

yum -y install system-config-kickstart

1.[root@localhost ~]# yum -y install system-config-kickstart  

2.Loaded plugins: fastestmirror, langpacks  

3.Loading mirror speeds from cached hostfile  

4.Package system-config-kickstart-2.9.2-4.el7.noarch already installed and latest version  

5.Nothing to do  

 

 

4.搭建一个http的安装源。
进入/var/www/html ,并创建一个目录CentOS用来挂载镜像

1.[root@localhost ~]# cd /var/www/html/  

2.[root@localhost html]# ls  

3.CentOS  ks.cfg  

4.[root@localhost html]# mount /dev/sr0 /var/www/html/CentOS  

注意:没那个CentOS目录的先创建一个目录。(那个ks.cfg先不用管,下步再教如何生成)。

命令是 mkdir  /var/www/html/CentOS   。然后再挂载(sr0是镜像,也可以写成其他的镜像之类的)。

#dd if=/dev/sr0 of=/usr/local/src/Centos7_1/CentOS7_1.iso #将光盘的文件做成本地的镜像文件,以后就不用挂载了

#mount -t /usr/local/src/Centos7_1/CentOS7_1.iso  /mnt/#将本地ISO镜像文件挂载到本地的/mnt目录下

或者直接将光盘里的文件直接复制到/var/www/html/CentOS目录下

再执行以下命令

1.[root@localhost html]# systemctl start httpd  

2.[root@localhost html]# systemctl stop firewalld  

 

可以在浏览器里。输入IP/CentOS.可以看到下图就代表成功

 


5.system-config-kickstart工具来生成一个自动的安装的配置文件

运行命令,并弹出一个图形界面

1.[root@localhost ~]# system-config-kickstart   

按下列图形填

 

第二个:Installation Method(这个填自己IP,HTTP Directory就填自己那个光盘镜像的目录)

 

第三个。Boot Loader Options

 

第四个。Partition Information

 

分区自己操作吧。点下面那个Add(那个1代表占用剩余磁盘)

 

第五个 NetWork Configuration

 

第六个(我没说的选项不用改)

 

第七个 

 

保存下来,(因为CentOS7下这个软件的问题。还需要在vim编辑一下ks.cfg这个文件)

打开这个ks.cfg这个文件。在最后面加上

%packages  

@base  

%end  

保存后。使用如下命令检查一下是否有语法错误

1.[root@localhost ~]# ksvalidator ks.cfg   

2.[root@localhost ~]#   

将该文件移到/var/www/html/ks.cfg

1.[root@localhost html]# ls  

2.CentOS  ks.cfg  

3.[root@localhost html]# pwd  

4./var/www/html  

再重启网络服务。
[root@localhost html]# systemctl restart httpd  

如果能够在浏览器下看到如下的话,证明上述过程好了(这次我用的火狐浏览器。不要在意这些细节。。)

 

6.配置tftp(这个文件的位置在左下角)

 

再执行命令
如果没有安装,先安装xinetd:
#yum install xinetd.x86_64
[root@localhost ~]# systemctl start xinetd  

 

7.将必要文件放到tftpboot内


[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/  
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg  

 

 

将镜像内的isolinux下的所有东西都考到tftpboot下
[root@localhost CentOS]# cp /var/www/html/CentOS/isolinux/*  /var/lib/tftpboot/  

再将isolinux.cfg拷给pxelinux.cfg下命名为default
[root@localhost CentOS]# cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default   


8.配置dhcp服务器

/etc/dhcp下编辑   dhcpd.conf 文件

这个文件下写如下内容

1.option domain-name "example.org";  

2.option domain-name-servers 114.114.114.114;  

3.  

4.default-lease-time 6000;  

5.max-lease-time 72000;  

6.  

7.log-facility local7;  

8.  

9.subnet 192.168.1.0 netmask 255.255.255.0 {  

10.  range 192.168.1.10 192.168.1.200;  

11.  option routers 192.168.1.1;  

12.  filename "pxelinux.0";  

13.  next-server 192.168.1.192;  

14.}  



注意:

 

 

好了。最后一步!!修改文件。这个文件是/var/lib/tftpboot/pxelinux.cfg/default

(还有就是将63行 加上menu default ,删去69行的menu default)

 

 

 

 

最后。再重启一下服务吧!!!!!(关闭防火墙)

1.<span style="font-size:18px;">[root@localhost pxelinux.cfg]# systemctl restart httpd  

2.[root@localhost pxelinux.cfg]# systemctl restart xinetd  

3.[root@localhost pxelinux.cfg]# systemctl restart dhcpd  

4.[root@localhost pxelinux.cfg]# systemctl stop firewalld  

5.</span>  

 

来。用vmware试试效果

1.创建新的虚拟机

 

2.选择稍后安装操作系统

 

3.以后的都随意点。根据自己喜好

4.在这停一下

 

 

完成后。全自动安装虚拟机,无需手动!!!

 

 

 

 

 

 

 

 

 

 


 

分割线
感谢打赏
江西数库信息技术有限公司
YWSOS.COM 平台代运维解决方案
 评论
 发表评论
姓   名:

Powered by AKCMS