linux命令:kickstart 无人值守安装系统

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介:

kickstart:分三部分

 命令段:

   必备命令:1.指定键盘类型 

        2.指定语言: lang=ZH_CN 

        3.指定时区: timezone Asia/Shanghai 

        4.指定管理员密码: rootpw --iscrpted 指定加密管理员密码

        5.selinux --disabled|--permissive 建议selinux --permissive 

        6.指定认证方式: authconfig --usershadow  7.装载引导加载器bootloader --location

        8.指定清除分区类型: clearpart --initlabel --linux   

        9.指定安装镜像位置: driverdisk --source=xxxx.img

       10.指定防火墙设置: firewall --disabled(关闭防火墙)

       11.指定第一次启动选择: firstboot --disabled

       12.指定安装系统的界面: text|graphical(纯文本或图形) 

       13.指定安装提供密钥key --skip 跳过密钥


自动化光盘启动部署服务器


    这里是通过虚拟机进行实际部署前的测试,完全可用于实际的部署工作,完成后可实现一张自制启动光盘和一台可装有HTTP和DHCP服务的linux系统服务器自动化安装操作系统。

    虚拟环境:   

        操作系统  rhel-server-5.4-x86    IP:192.168.1.3

    客户端需要安装的系统:rhel-server-5.4-x86

NOTICE:网络自动化安装操作系统,需要客户端支持网卡启动和PXE功能。


实施步骤:


一、配置DHCP服务器:


1)安装DHCP服务器

[root@rrl ~]#yum install -y dhcp*

2)编辑DHCP服务器配置文件/etc/dhcpd.conf

    因目的是安装操作系统,而不是将其作为专门的DHCP服务器,所以只需配置几项简单的参数

    ddns-update-style interim; 
     
    allow booting; 
    allow bootp; 
    ignore client-updates; 
    set vendorclass = option vendor-class-identifier; 
    subnet 192.168.1.0 netmask 255.255.255.0 { 
         option routers             192.168.1.1; 
    #    option domain-name         "ns.rrl.com"; 
    #    option domain-name-servers 192.168.1.1; 
         option subnet-mask         255.255.255.0; 
         range dynamic-bootp        192.168.1.100 192.168.1.199; 
         filename                   "/pxelinux.0"; 
         default-lease-time         21600; 
         max-lease-time             43200; 
         next-server                192.168.1.3; 
    }      

    简单介绍:  
     Option routers指定网关;     
     Option domain-name-server指定DNS服务器;      
     Option subnet-mask指定掩码;      
     range dynamic-bootp指定分配给客户端的IP地址段;      
     Filename 指定启动镜像;      
     Next-server 指定TFTP服务器。  

将DNS配置注释掉,因在安装某些版本的红帽系统时,会需要指定的DNS服务器进行解析,从而导致自动化安装失败。


3)启动DHCP服务


[root@rrl ~]#service dhcpd start  

[root@rrl ~]#chkconfig --add dhcpd           #设置dhcp服务开机自动启动 

4)查看已分配的DHCP地址

[root@rrl ~]#cat /var/lib/dhcp/dhcpd.leases
lease 192.168.1.199 {
  starts 4 2016/12/08 08:13:17;
  ends 4 2016/12/08 14:13:17;
  binding state active;
  next binding state free;
  hardware ethernet 00:50:56:9c:7b:a5;
  client-hostname "jacktest";
}


二、配置WEB服务器


1)安装httpd服务器

[root@rrl~]#yum install –y httpd*

2)配置Web服务器

    通过yum安装的httpd服务器网页文件放置的位置在/var/www/html目录中。我们在这个目录中创建rhel5.4镜像的挂载目录。然后将镜像重新挂载到这个目录下。

[root@rrl~]#mkdir /var/www/html/rhel5.4
[root@rrl~]#umount /media/iso 
[root@rrl~]#mount –o loop,ro rhel-server-5.4-i386-dvd.iso /var/www/html/rhel5.4

3)启动httpd服务器

[root@rrl~]#service httpd start 
[root@rrl~]#chkconfig --add httpd  #设置httpd服务开机自动启动

    在这个阶段我们也可以使用NFS或者FTP的方式进行部署,配置过程同样很简单。只需要执行几个命令并且修改对应的kickstart文件中的如何指定安装树的指向的配置选项。在下面kickstart文件中我会给出nfs和ftp的指向配置,可以参考一下。


三、配置kickstart文件

 1、安装system-config-kickstart软件,对生成的kickstart配置文件进行验证,是否有语法错误。 

[root@localhost media]# yum install system-config-kickstart  

Loaded plugins: rhnplugin, security

This system is not registered with RHN.

RHN support will be disabled.

Server                                                                         | 1.3 kB     00:00     

Setting up Install Process

 2、如果有语法错误执行检测会提示错误

[root@localhost media]# ksvalidator /root/anaconda-ks.cfg 

[root@localhost media]# 

 3、执行图形界面配置kickstart配置文档

[root@localhost ~]# system-config-kickstart 启动图形界面配置kickstart文档

wKiom1hgiEbDbpPcAAO7BGYmmv4677.jpg-wh_50

wKioL1hgii3QxmQtAAJS36HGEPE027.jpg-wh_50

安装方法选择从ftp或者其他方式进行安装。

该界面下可以自定义kickstart配置文档,也可以打开现有的kickstart文件进行修改,修改完后

重新保存新的kickstart配置文件命名为ks.cfg以备后续程序使用。因Red Hat操作系统,在系统安装完成后,会自动在root家目录下创建一个anaconda-ks.cfg文件,这个文件真实的记录了系统安装过程中的配置。我们也可以复制这个文件/root/anaconda-ks.cfg,然后在其基础上进行配置。 

[root@test ~]# mount /dev/cdrom  /media  # 将安装光盘mount到/media

[root@test images]# ls /media/images 
README  TRANS.TBL  boot.iso  diskboot.img  minstg2.img  pxeboot  stage2.img  xen
[root@test images]# cp /media/images/boot.iso   /root/
[root@test ~]# ls /root/ 
boot.iso 

[root@test ~]# mount -o loop boot.iso  /mnt/cdrom/    -o loop 挂载类型为本地回环设备把                                           boot.iso挂载为本地回环设备以便获取里面的内容

[root@test ~]# cd /mnt/cdrom/
[root@test cdrom]# ls
TRANS.TBL  isolinux
[root@test isolinux]# ls /mnt/cdrom/isolinux/ 
TRANS.TBL  boot.msg     initrd.img    isolinux.cfg  options.msg  rescue.msg  vmlinuz
boot.cat   general.msg  isolinux.bin  memtest       param.msg    splash.lss

[root@test ~]# mv class.cfg  ks.cfg  #更改后的ks.cfg文件如附件 


[root@test tmp]# mkdir iso
[root@test tmp]# cd iso/
[root@test iso]# cp /mnt/cdrom/*  ./ -r   #将/mnt/cdrom内容复制到当前目录中
[root@test iso]# ls
TRANS.TBL  isolinux
[root@test iso]# cd isolinux/
[root@test isolinux]# ls
TRANS.TBL  boot.msg     initrd.img    isolinux.cfg  options.msg  rescue.msg  vmlinuz
boot.cat   general.msg  isolinux.bin  memtest       param.msg    splash.lss


[root@test iso]# cp /root/class.cfg  ./ks.cfg
[root@test iso]# ls
TRANS.TBL  isolinux  ks.cfg

[root@test iso]# chmod +r  /root/ks.cfg 

[root@test iso]# ll /root/ks.cfg

-rw-r--r-- 1 root root 2064 Dec  7 09:51 /root/ks.cfg
[root@test isolinux]# vim isolinux.cfg 修改isolinux.cfg文件,修改第一行添加红色字段

default linux ks=cdrom:/ks.cfg    #红色字段表示如果不操作,默认执行ks.cfg配置进行系统安装,

                                               其他选项不变

[root@test isolinux]#  vi /tmp/iso/isolinux/boot.msg   #编辑此文件后显示如下图

^L
^Xsplash.lss

 -  To install or upgrade in graphical mode, press the ^O01<ENTER>^O07 key.
XXX
 -  To install or upgrade in text mode, type: ^O01linux text <ENTER>^O07.
XXX
 -  Use the function keys listed below for more information.
XXX
^O0f[F1-Main] [F2-Options] [F3-General] [F4-Kernel] [F5-Rescue]^O07

wKioL1hJFviigON5AAL1wzWjN7s521.png-wh_50

[root@test isolinux]# ls 
TRANS.TBL  boot.msg     initrd.img    isolinux.cfg  options.msg  rescue.msg  vmlinuz
boot.cat   general.msg  isolinux.bin  memtest       param.msg    splash.lss

[root@test ~]# vi /tftpboot/pxelinux.cfg/default 
default linux
prompt 1
timeout 30     #红色部分为已更改

...

append initrd=initrd.img text     #因使用光盘访问方式,此处不改

#若此文件通过HTTP访问红色部分改为:ks=http://192.168.1.3/ks.cfg 


[root@test isolinux]# cd /tmp    #切换到非iso目录 
[root@test tmp]#mkisofs -R -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -o boot.iso iso/  
 #红色字体会可修改,其他为固定格式,对iso目录进行创建光盘                        镜像文件为boot.iso




wKiom1hJFv3gMdQwAAAjF5i-AQw554.png-wh_50

wKioL1hJFvmARA4NAACnwwQfe40351.png-wh_50


  1.3.文件ks.cfg纯手工打造方式,就是自己使用文本工具(如:vi)直接进行编辑配置;


[root@test iso]# cat ks.cfg    
# Kickstart file automatically generated by anaconda.      
#version=DEVEL     
Install      
#nfs --server=192.168.1.3 --dir=/media/cdrom   
#url --url=ftp://root:root@192.168.1.3/var/ftp  

url --url=ftp://192.168.1.3/rhel5.4  
lang en_US
langsupport --default en_US en_US
keyboard us   
text   
key –skip    
network –bootproto=dhcp --device=eth0   --onboot=on     
rootpw  root    
# Reboot after installation      
reboot   
firewall --disabled      
authconfig --useshadow  --passalgo=sha512      
selinux --disabled   
timezone Asia/Shanghai      
bootloader --location=mbr --driveorder=sda  
   
# The following is the partition information you requested      
# Note that any partitions you deleted are not expressed   
# here so unless you clear all partitions first, this is      
# not guaranteed to work   
   
clearpart --all --initlabel   
       
#part /boot --fstype=ext4 --size=500      
#part swap  --size=2048      
#part /     --fstype=ext4 --grow --size=2     # --grow表示剩余的所有空间分配于此

wKioL1hJFUrx2KdFAAEPKNArN6E631.png-wh_50

 

part /boot --bytes-per-inode=4096 --fstype="ext3" --size=1024
part /home --bytes-per-inode=4096 --fstype="ext3" --size=4096
part /tmp --bytes-per-inode=4096 --fstype="ext3" --size=4096
part /usr --bytes-per-inode=4096 --fstype="ext3" --size=4096
part swap --bytes-per-inode=4096 --fstype="swap" --size=2048
part / --bytes-per-inode=4096 --fstype="ext3" --grow --size=1


    wKiom1hJE2KSQYruAADebTJf1jg327.png-wh_50


# X Window System configuration information
xconfig  --defaultdesktop=GNOME --depth=16 --resolution=1024x768 --startxonboot

%packages    
@Base   
@Core    
@base    
@client-mgmt-tools   
@debugging    
@emacs   
@ftp-server    
@hardware-monitoring   
@large-systems   
@network-file-system-client   
openssh
openssh-server
openssh-clients
vim-enhanced
firefox
mutt
screen

NOTICE:红帽5系列与红帽6系列的kickstart文件有点区别,在红帽5系列中如果有%end选项的话,在安装过程中会报错,红帽6.0以后的系统支持该选项。红帽5系列的最高支持ext3文件系统,红帽6系列的最高支持ext4文件系统,所以在kickstart文件中要根据系统的版本进行相应的修改。

wKiom1hJFqSjF21xAAFNVyoA0KI782.png-wh_50


附挂载分区说明:

指定如何分区和挂载

#part /boot --fstype ext3 --size=512 --asprimary  

#part pv.1000 --size=40960  

#volgroup vol0 --pesize=32768 pv.1000

#logvol / --fstype ext3 --name=root --vgname=vol0 --size=32000

#logvol /home --fstype ext3 --name=home --vgname=vol0 --size=1984

#part / --fstype ext3 --size=8000

#part /usr/local --fstype ext3 --size=6000

#part /home --fstype ext3 --size=2000

#part swap --size=1500


   可选命令

 软件包选择段;用%packages跟命令段隔开

 脚本段:

    %pre:预安装脚本段  

    %post:后安装脚本段

 

 定义安装系统过程,安装所需的kickstart文件的路径:

  ks=http://

  ks=cdrom:/PATH


安装过程中,boot提示符中可以使用的命令:

  askmethod:指定安装系统的来源

  dd= 指定安装系统加载额外所需的驱动设备盘

  iP:指定IP地址ip=xx.xx.xx.xx 或者ip=dhcp

  netmask=xx.xx.xx.xx 指定子网掩码

  gateway=xx.xx.xx.xx 指定网关

  dns=xx.xx.xx.xx 指定dns

  ks=  指定安装所需kickstart的路径

 rescue: 进入紧急救援模式














本文转自wang650108151CTO博客,原文链接:http://blog.51cto.com/woyaoxuelinux/1886548 ,如需转载请自行联系原作者


相关文章
|
9天前
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
124 78
|
13天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
48 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
20天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
49 14
Linux 10 个“who”命令示例
|
9天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
78 20
|
9天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
61 13
|
9天前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
34 7
|
29天前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
34 9
|
27天前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
1月前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
38 3
|
9天前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
28 0