手机版
你好,游客 登录 注册
背景:
阅读新闻

RHEL7/CentOS7 PXE+Kickstart自动化系统安装

[日期:2017-07-04] 来源:Linux社区  作者:zaa47 [字体: ]

5. kickstart文件准备

[root@pxe1 mnt]# yum install -y system-config-kickstart
# 安装完成后,图形界面执行system-config-kickstart命令配置ks文件

kickstart文件配置注意事项如下:

wKioL1ko9j2hGGETAABt7Dy3F4k981.png

下图中光盘挂载位置为FTP根目录下的pub目录,即/var/ftp/pub:

wKiom1ko9lLDzxbbAABQR0E6Fo0823.png

 

wKiom1ko9o_D6jA1AABh2Ceqtb0796.png

wKioL1ko9o_SRwMxAABySA1GO3k720.png

 

软件包选择界面,可以直接在这里选择,也可以拷贝服务端/root/anaconda-ks.cfg文件中%packages%end区间的内容至新文件。

wKiom1ko9q2w_vDsAABVnM7rBeg075.png

 

其他选项请按需选择,配置完成后,保存文件,待FTP服务器配置完成后,需要将其拷贝至FTP根目录/var/ftp

然后修改生成的ks.cfg文件,在文件末尾(不要删除文件末尾的%end),添加以下内容,表示关闭kdump功能:

%addon com_RedHat_kdump --disable --reserve-mb='auto'

%end

至此,kickstart文件配置完成。

6. FTP服务器配置

6.1 安装FTP服务器

[root@pxe1 mnt]# yum install -y vsftpd
[root@pxe1 mnt]# systemctl restart vsftpd
[root@pxe1 mnt]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@pxe1 mnt]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
   Active: active (running) since 2017-05-25 16:59:12 CST; 11s ago
 Main PID: 16466 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─16466 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

5月 25 16:59:12 pxe1 systemd[1]: Starting Vsftpd ftp daemon...
5月 25 16:59:12 pxe1 systemd[1]: Started Vsftpd ftp daemon.

# 安装ftp命令,用于ftp服务器验证。
[root@pxe1 mnt]# yum install -y ftp

6.2 启动FTP服务器

[root@pxe1 /]# systemctl restart vsftpd
[root@pxe1 /]# systemctl enable vsftpd
[root@pxe1 /]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
   Active: active (running) since 五 2017-05-26 08:28:29 CST; 15s ago
 Main PID: 2682 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─2682 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

5月 26 08:28:28 pxe1 systemd[1]: Starting Vsftpd ftp daemon...
5月 26 08:28:29 pxe1 systemd[1]: Started Vsftpd ftp daemon.

6.3 导入ks文件并挂载光盘

首先将刚才生成的kickstart文件复制到FTP跟目录下:

[root@pxe1 /]# cd /var/ftp/
[root@pxe1 ftp]# ls
ks.cfg  pub

然后将关盘挂载至/var/ftp/pub目录下:

# 因为配置yum源时已经将光盘挂载至/mntt目录下了,现在有两种方法进行光盘挂载:
# 1.将/mnt目录绑定到/var/ftp/pub目录下
[root@pxe1 ~]# mount --bind /mnt/ /var/ftp/pub/
[root@pxe1 ~]# ls /var/ftp/pub/
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL

# 2. 先将光盘从/mnt目录卸载,然后挂载到/var/ftp/pub目录下
[root@pxe1 ~]# umount /dev/cdrom
[root@pxe1 ~]# mount /dev/cdrom /var/ftp/pub/

6.4 验证FTP服务器

本次配置在生成kickstart文件时,登陆用户为匿名用户anonumous,下面测试匿名用户能否正常从FTP服务器下载文件:

[root@pxe1 kk]# ls /var/ftp/
ks.cfg  pub
[root@pxe1 kk]# ftp 192.168.56.14
Connected to 192.168.56.14 (192.168.56.14).
220 (vsFTPd 3.0.2)
Name (192.168.56.14:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,56,14,217,98).
150 Here comes the directory listing.
-rw-r--r--    1 0        0            1459 May 25 09:36 ks.cfg
drwxr-xr-x    8 0        0            2048 Dec 05 13:20 pub
226 Directory send OK.
ftp> get ks.cfg
local: ks.cfg remote: ks.cfg
227 Entering Passive Mode (192,168,56,14,152,101).
150 Opening BINARY mode data connection for ks.cfg (1459 bytes).
226 Transfer complete.
1459 bytes received in 0.0433 secs (33.68 Kbytes/sec)
ftp> bye
221 Goodbye.
[root@pxe1 kk]# ls
ks.cfg

成功get到ks.cfg文件,表示配置正常,现在可以重启客户端虚拟机测试是否可以进行自动化系统安装。

7. 自动化系统安装测试

重启客户端虚拟机,可以看到系统开始自动安装,至此,pxe+kickstart自动系统安装配置完成。

 

wKioL1ko9tjRf7QNAABrnNl6UfU435.png

wKiom1ko9tjSLfAIAABJkZxqxXw223.png

 

8. 引导菜单介绍

本文中配置的引导菜单default主要内容如下:

label linux
  menu label ^Install CentOS Linux 7 by kickstart
  menu default
  kernel vmlinuz
  append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.ks=ftp://192.168.56.14/ks.cfg

label linux 2
  menu label ^Install CentOS Linux 7 by vnc
  kernel vmlinuz
  append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.vnc inst.vncpassword=password

label linux 3
  menu label ^Install CentOS Linux 7 by vnc -listen
  kernel vmlinuz
  append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.vnc inst.vncconnect=192.168.56.1

在系统启动过程中,菜单依次对应如下内容:

wKioL1ko90vRi5ZFAAANzlpdmj0005.png

8.1 kickstart菜单介绍

菜单一介绍:

label linux
  menu label ^Install CentOS Linux 7 by kickstart
  menu default
  kernel vmlinuz
  append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.ks=ftp://192.168.56.14/ks.cfg
# 使用kickstart自动安装
# 这项菜单表示镜像文件在FTP根目录/var/ftp/pub下,kickstart文件在FTP根目录/var/ftp下。

菜单二介绍:

label linux 2
  menu label ^Install CentOS Linux 7 by vnc
  kernel vmlinuz
  append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.vnc inst.vncpassword=password
  
# 使用vnc手动安装
# 该菜单表示镜像文件在FTP根目录/var/ftp/pub下,vnc密码为password,选中该菜单后,系统启动后会提示vnc登录的IP及端口,vnc连接后,便可进行手动系统安装,也可以在菜单最后指定kickstart文件位置,自动安装。

如图:

wKiom1ko9zSTmhsuAABdMniB-xQ550.png

菜单三介绍:

label linux 3
  menu label ^Install CentOS Linux 7 by vnc -listen
  kernel vmlinuz
  append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.vnc inst.vncconnect=192.168.56.1
  
# 该菜单项表示使用vnc监听模式进行系统安装
# 该菜单表示镜像文件在FTP根目录/var/ftp/pub下,vnc监听进程在计算机192.168.56.1上,无登录密码;
# 注意:inst.vncconnect=192.168.56.1 指的是将要运行vnc客户端的计算机IP地址。

这里的192.168.56.1为我的笔记本IP,所以在启动客户端虚拟机后,只需要在笔记本上打开vnc客户端监听模式,即可自动显示安装界面。

wKiom1ko94jD2JZ9AABzb8LLaXE329.png

在笔记本上打开vnc监听模式后,稍作等待,会自动连接到系统安装界面:

wKiom1ko952QtppsAAANloAkfD8133.png

wKiom1ko97vTp-K5AACKFP4ClKI682.png

9. 引导菜单的其他创建方法

9.1 menu.c32菜单模块

  • vesamenu.c32 -菜单模块之一

    本文上面介绍的引导菜单就是利用vesamenu.c32生成的。

  • menu.c32 - 菜单模块之一

安装了syslinux命令包后,两种菜单模块都会在目录/usr/share/syslinux/下生成,使用menu.c32创建引导菜单时,只需要将菜单模块menu.c32及内核文件、引导文件拷贝至TFTP根目录下/var/lib/tftpboot即可。

[root@pxe1 tftpboot]# ls /var/lib/tftpboot/
initrd.img  menu.c32  pxelinux.0  pxelinux.cfg  vmlinuz

菜单文件内容为:

[root@pxe1 tftpboot]# cat /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
 timeout 60
 menu title CentOS 7 Pxe Menu
 
label linux
  menu label ^Install CentOS Linux 7 by kickstart
  menu default
  kernel vmlinuz
  append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.ks=ftp://192.168.56.14/ks.cfg

label linux 2
  menu label ^Install CentOS Linux 7 by vnc
  kernel vmlinuz
  append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.vnc inst.vncpassword=password

label linux 3
  menu label ^Install CentOS Linux 7 by vnc -listen
  kernel vmlinuz
  append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.vnc inst.vncconnect=192.168.56.1

菜单显示样式为:

wKioL1ko99HQ8gKuAAAiscdh7Os024.png

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-07/145399.htm

linux
本文评论   查看全部评论 (1)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 1 楼
* 匿名 发表于 2017/10/13 17:02:26
真到很详细 谢谢