作业二

实验一:使用 kickstart 半自动化安装CentOS系统

 

1.Kickstart应答文件创建

使用创建工具:system-config-kickstart ,注意:此方法 CentOS 8 不再支持

CentOS安装完后,会自动参考当前系统的安装过程,生成一个kickstart文件 /root/anaconda-ks.cfg

 

在centos7上安装system-config-kickstart包

[root@CentOS7 ~]# yum -y install system-config-kickstart

 

打开system-config-kickstart工具

[root@CentOS7 ~]# system-config-kickstart

Xlib:  extension "RANDR" missing on display "10.0.0.1:0.0".

/usr/share/system-config-kickstart/kickstartGui.py:104: GtkWarning: GtkSpinButton: setting an adjustment with non-zero page size is deprecated

  xml = gtk.glade.XML ("/usr/share/system-config-kickstart/system-config-kickstart.glade", domain="system-config-kickstart")

Loaded plugins: fastestmirror, langpacks

 

注意,如果使用xshell打开的虚拟机,需要提前打开Xmanager – Passive,并在虚拟机上执行以下指令:

[root@CentOS7 ~]# export DISPLAY=10.0.0.1:0.0

 

下面是打开system-config-kickstart工具后,开始制作应答文件:

 

安装源通过10.0.0.8这台主机经网络访问

 

分区信息

    

注意:package selection这里需要提前把yum源的配置修改一下,否则不显示!

[root@centos ~]#vim /etc/yum.repos.d/***.repo

[development]#把原来"[]"内的内容改成development,其它不变

 

  

 

system-config-kickstart执行之后最终生成的应答文件,显示如下(可另存到root目录下ks7.cfg):

[root@CentOS7 ~]# cat ks7.cfg

#platform=x86, AMD64, or Intel EM64T

#version=DEVEL

# Install OS instead of upgrade

install

# Keyboard layouts

keyboard 'us'

# Root password

rootpw --plaintext 123456

# System language

lang zh_CN

# System authorization information

auth  --useshadow  --passalgo=sha512

# Use graphical install

graphical

firstboot --disable

# SELinux configuration

selinux --disabled

# Do not configure the X Window System

skipx

 

 

# Firewall configuration

firewall --disabled

# Network information

network  --bootproto=dhcp --device=eth0

# Halt after installation

halt

# System timezone

timezone Asia/Shanghai

# Use network installation

url --url="http://10.0.0.8/centos/7/os/x86_64/"

# System bootloader configuration

bootloader --append="net.ifnames=0" --location=mbr

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart --all --initlabel

# Disk partitioning information

part / --fstype="xfs" --size=100000

part /boot --fstype="xfs" --size=1024

part swap --fstype="swap" --size=2048

 

%post

i am post

%end

 

%packages

@web-server

 

%end

[root@CentOS7 ~]#

 

可使用 ksvalidator 工具可以检查kickstart的文件格式是否有语法错误

[root@CentOS7 ~]# ksvalidator ks7.cfg

 

2.配置引导环境

这里以centos8作为http服务器,存放yum源和应答文件

 

首先在centos8上安装http服务

[root@CentOS8 ~]# httpd

在centos8上添加一个光驱用于存放centos7的镜像文件作为yum源

 

在centos8上创建相关目录,并挂载centos7的镜像包

[root@CentOS8 ~]# cd /var/www/html

[root@CentOS8 html]# ls

[root@CentOS8 html]# mkdir /var/www/html/centos/8/os/x86_64 -pv

mkdir: created directory '/var/www/html/centos/8'

mkdir: created directory '/var/www/html/centos/8/os'

mkdir: created directory '/var/www/html/centos/8/os/x86_64'

 

[root@CentOS8 html]# mount /dev/sr1 /var/www/html/centos/7/os/x86_64/

mount: /var/www/html/centos/7/os/x86_64: WARNING: device write-protected, mounted read-only.

[root@CentOS8 html]# ls /var/www/html/centos/7/os/x86_64/

CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7

EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7

EULA             isolinux  repodata  TRANS.TBL

 

创建目录用于存放安装centos7的应答文件

[root@CentOS8 html]# mkdir ksdir

从centos7的主机上把用于安装centos7的应答文件传到centos8的主机上

[root@CentOS7 ~]# scp ks7.cfg 10.0.0.8:/var/www/html/ksdir/

可通过浏览器打开验证

 

3.验证安装centos7系统

从阿里云下载boot安装镜像

新建centos7的虚拟机,光盘导入该镜像文件

开启虚拟机,按Esc键进入如下页面,在boot提示符下输入以下指令进行自动安装系统。

Esc---cd-rom-drive---Esc

 

系统装好之后提示如下:

 

 

 

实验八:实现pxe安装双系统centos6、centos7 

 

在 CentOS 8 上实现PXE自动化安装 CentOS 6,7

1.安装前准备关闭防火墙和SELINUX,DHCP服务器静态IP

网络要求:关闭Vmware软件中的DHCP服务,基于NAT模式

 

2.安装相关软件包并启动

[root@centos8 ~]#dnf -y install dhcp-server tftp-server httpd syslinux-nonlinux

[root@centos8 ~]#systemctl enable --now httpd tftp dhcpd

 

3.配置DHCP服务

[root@centos8 ~]#cat /etc/dhcp/dhcpd.conf

[root@centos8 ~]#cat /usr/share/doc/dhcp-server/dhcpd.conf.example

[root@centos8~]#cp   /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf

 

[root@centos8 ~]#vim /etc/dhcp/dhcpd.conf

 

# dhcpd.conf

#

# Sample configuration file for ISC dhcpd

#

 

# option definitions common to all supported networks...

option domain-name "example.org";

option domain-name-servers 180.76.76.76, 223.5.5.5;    #DNS addr

 

default-lease-time 86400;  #1D

max-lease-time 172800;    #2D

 

subnet 10.0.0.0 netmask 255.255.255.0 {

  range 10.0.0.50 10.0.0.100;    #dhcp ip 分配范围

  option routers 10.0.0.2;       #网关

  next-server 10.0.0.8;         #tftp服务器地址

  filename "pxelinux.0";        # bootloader 启动文件名

}

 

4. 准备yum 源和相关目录

[root@centos8 ~]#mkdir  -pv /var/www/html/centos/{6,7,8}/os/x86_64/

[root@centos8 ~]#mount /dev/sr0 /var/www/html/centos/6/os/x86_64/

[root@centos8 ~]#mount /dev/sr1 /var/www/html/centos/7/os/x86_64/

[root@centos8 ~]#mount /dev/sr2 /var/www/html/centos/8/os/x86_64

 

5. 准备kickstart文件

[root@centos8 ~]#mkdir /var/www/html/ksdir/

[root@centos8 ~]#vim /var/www/html/ksdir/ks6.cfg 

#参考实验一,在原应答文件的基础修改即可

[root@centos8 ~]#vim /var/www/html/ksdir/ks7.cfg 

[root@centos8 ~]#vim /var/www/html/ksdir/ks8.cfg

 

6. 准备PXE启动相关文件

[root@centos8 ~]#mkdir /var/lib/tftpboot/centos{6,7,8}

#准备CentOS6,7,8各自的内核相关文件

[root@centos8 ~]#cp /var/www/html/centos/6/os/x86_64/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos6

[root@centos8 ~]#cp /var/www/html/centos/7/os/x86_64/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos7

[root@centos8 ~]#cp /var/www/html/centos/8/os/x86_64/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos8

[root@centos8 ~]#cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/

# pxelinux.0  à  bootloader

  menu.c32  à启动菜单背景图片  

这两个文件由syslinux-nonlinux包提供

 

#以下三个文件是CentOS8安装所必须文件,CentOS6,7则不需要

[root@centos8~]#cp /var/www/html/centos/8/os/x86_64/isolinux/{ldlinux.c32,libcom32.c32,libutil.c32} /var/lib/tftpboot/

 

#生成安装菜单文件

[root@centos8 ~]#mkdir /var/lib/tftpboot/pxelinux.cfg/

[root@centos8~]#cp   /var/www/html/centos/8/os/x86_64/isolinux/isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default

 

#最终目录结构如下:

[root@CentOS8 tftpboot]# tree

.

├── centos6

│   ├── initrd.img

│   └── vmlinuz

├── centos7

│   ├── initrd.img

│   └── vmlinuz

├── centos8

│   ├── initrd.img

│   └── vmlinuz

├── ldlinux.c32

├── libcom32.c32

├── libutil.c32

├── menu.c32

├── pxelinux.0

└── pxelinux.cfg

    └── default

 

4 directories, 12 files

 

7 准备启动菜单文件

 

[root@CentOS8 ~]# cat /var/lib/tftpboot/pxelinux.cfg/default

default menu.c32

timeout 60

 

display boot.msg

 

label linux8

  menu label Auto Install CentOS Linux ^8

  kernel centos8/vmlinuz

  append initrd=centos8/initrd.img ks=http://10.0.0.8/ksdir/ks8.cfg

 

label linux7

  menu label Auto Install CentOS Linux ^7

  kernel centos7/vmlinuz

  append initrd=centos7/initrd.img ks=http://10.0.0.8/ksdir/ks7.cfg

 

label linux6

  menu label Auto Install CentOS Linux ^6

  kernel centos6/vmlinuz

  append initrd=centos6/initrd.img ks=http://10.0.0.8/ksdir/ks6.cfg

 

label rescue

  menu label ^Rescue a CentOS Linux system

  kernel centos8/vmlinuz

  append initrd=centos8/initrd.img

  inst.repo=http://10.0.0.8/centos/8/os/x86_64

 

8 测试客户端基于PXE实现自动安装

Centos7的安装

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值