PXE 和 kickstart 自动批量安装 Linux 系统

PXE概述
PXE (Preboot executionEnvironment)预启动执行环境,在操作系统之前运行,可以借助PXE自动批量安装操作系统和配置各种服务,无需光盘、U盘等安装介质。要求客户端服务器网卡支持PXE协议(集成BOOTROM芯片),并且主板支持网络引导,2000年之后的网卡基本都支持。大多数服务器主机都支持PXE,只需要在BIOS设置中允许从 Network 或LAN 启动即可。以CentOS 7为例,PXE批量安装操作系统时,服务器端要配置YUM源,安装并启用TFTP服务为户端服务器裸机提供Linux内核、PXE引导程序、启动菜单、安装文件等的下载。安装DHCP服务为客户端服务器自动分配地址和指定引导文件位置。TFTP简单文件传输协议,基于UDP协议实现,用于客户机和服务器之间的简单文件传输,适合小文件传输场景。TFTP服务默认由xinetd服务管理,使用UDP端口69。xinetd是新一代网络守护进程服务,又叫超级服务器,常用来管理多种轻量级Internet服务。
1. 安装并启用 TFTP 服务
yum -y install tftp-server xinetd
修改TFTP服务的配置文件
# vim /etc/xinetd.d/tftp
protocol = udp # TFTP默认使用UDP协议
wait = no # no 表示客户机可以多一起连接,
# yes 表示客户机只能一台一台连接
server_args = -s /var/lib/tftpboot # 指定TFTP根目录(引导文件的存储路径)
disable = no # no 表示开启TFTP服务
# 重启服务并设置自启动
systemctl start tftp
systemctl enable tftp
systemctl start xinetd
systemctl enable xinetd
2. 安装并启用 DHCP 服务
yum -y install dhcp
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
修改DHCP服务的配置文件
# vim /etc/dhcp/dhcpd.conf
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#
# option definitions common to all supported networks...
log-facility local7;
subnet 10.0.0.0 netmask 255.0.0.0 { # 指定为那个网段分配网络参数
range 10.0.0.50 10.0.0.100; # 设置准备为客户端分配的IP地址范围
option domain-name-servers 10.0.0.12; # 设置分配给客户端的DNS服务器地址
option routers 10.0.0.2; # 设置分配给客户端的网关地址。
# option broadcast-address 10.5.5.31; # 广播地址,注释掉后用默认的
default-lease-time 600; # 地址租赁时间 600秒后失效
max-lease-time 7200;
next-server 10.0.0.12; # 下一个要访问的地址,就是tftp地址。
filename "pxelinux.0"; # 要访问tftp上哪一个文件。
}
# 重启服务并设置自启动
systemctl start dhcpd
systemctl enable dhcpd
ss -tulanp|grep -w 67 #查看端口
3. 准备 Linux 内核、初始化镜像文件
先挂载光盘镜像
mount /opt/CentOS-7-x86_64-DVD-2009.iso /mnt
这里需要将(vmlinuz、initrd.img)两个重要文件复制到 /var/lib/tftpboot/
cd /mnt/images/pxeboot
cp vmlinuz /var/lib/tftpboot/ #复制 Linux 系统的内核文件到TFTP根目录
cp initrd.img /var/lib/tftpboot/ #复制初始化镜像文件(linux引导加载模块)到TFTP根目录
4. 准备 PXE 引导程序
yum -y install syslinux # PXE 引导程序由软件包 syslinux 提供
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ # 复制 PXE 引导程序到TFTP根目录
5. 安装FTP服务,准备CentOS 7 安装源
yum -y install vsftpd # 安装vsftpd服务
mkdir /var/ftp/centos7 # 新建centos7目录,并将光盘镜像下的文件全部复制到 centos7 目录
cp -rf /mnt/* /var/ftp/centos7/
# 重启服务并设置自启动
systemctl enable vsftpd
systemctl start vsftpd
6. 配置启动菜单文件
默认的启动菜单文件在TFTP根目录的 pxelinux.cfg子目录下,文件名为default。
需要在ftfpboot目录下创建pxelinux.cfg目录:
mkdir /var/lib/tftpboot/pxelinux.cfg
在pxelinux.cfg目录下创建default并编辑配置文件:
# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://10.0.0.12/centos7 # 为ftp服务器地址
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://10.0.0.12/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://10.0.0.12/centos7
重启TFTP服务 systemctl restart tftp
7. 关闭防火墙,验证 PXE 网络安装
使用 VMware 创建的虚拟机进行测试,虚拟机内存至少需要 2GB,否则在启动安装时可能会报错。开启虚拟机,在提示字符串“boot: ”后直接按Enter键(或执行“auto”命令),将会自动通过网络下载安装文件,并进入默认的图形安装入口,即成功引导客户机安装Linux,但安装系统过程本身仍需手动操作。
通过kickstart无人值守自动装机
8. 准备安装应答文件
安装 system-config-kickstart 工具,需要机器有图形化界面支持,没有图形化直接跳过。
yum install -y system-config-kickstart
打开Kickstart 配置程序
窗口:
通过桌面菜单应用程序
–>系统工具
–>Kickstart
打开;
或执行以下命令打开:system-config-kickstart
.
# 生成kickstart模板文件 centos7.cfg
# 放到/var/ftp/目录,与centos文件夹一个目录,
# 或者centos里面也行,但是default文件里的配置路径要更改
# 检查ks文件语法是否有错
ksvalidator centos7.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us' # 键盘布局为美式键盘
# Root password sha512 123456 #root用户密码的设定,可利用openssl命令设定(用法自行百度)
rootpw --iscrypted $1$8ZQVKeWY$hfGqJgqcymbGI3rvUWT310
# System language
lang en_US.UTF-8 --addsupport=zh_CN.UTF-8 # 系统支持的语言
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
text # 安装过程不开图形
# graphical # 安装过程开启图形
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx #安装完成后开机不启动图形
# Run the Setup Agent on first boot
firstboot --disabled
# Firewall configuration
firewall --disabled
# Network information # 网卡设定
network --bootproto=dhcp --device=eth0 --onboot=on --device=link --activate
# **静态网址设定 不能使用反斜线 \ 拼接换行,如果一行不够用,请使用多行 network 参数**
# network --bootproto=static --ip=10.0.0.100 --netmask=255.255.255.0 --gateway=10.0.0.2 --nameserver=10.0.0.2 --device=eth0 --onboot=on --device=link --activate
network --hostname=localhost.localdomain #主机名设定
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# Use network installation
url --url="ftp://10.0.0.12/centos7" # 安装系统的镜像和软件包资源
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
ignoredisk --only-use=sda # 只使用用目标机器的第一块硬盘
clearpart --all --initlabel
# 分区信息 # 分区要注意不能分的太大了,要结合自己实际硬盘情况,不然安装的时候会报错
# Disk partitioning information
part /boot --fstype="xfs" --asprimary --size=2048
part / --fstype="xfs" --grow --asprimary --size=1
# 系统服务
# System services
services --disabled="firewalld" --enabled="sshd,network" #开机时开启或关闭的服务
# 安装软件包
%packages
@^minimal
@core
@development
@system-admin-tools
gcc
glibc
gcc-c++
openssl-devel
openssh
tree
nmap
sysstat
lrzsz
vim
wget
%end
# 系统安装前运行脚本
%pre --interpreter=/bin/bash
echo "beginning install OS..."
%end
# 系统安装后运行脚本
%post --interpreter=/bin/bash
# 安装wget
yum install -y wget
# 备份初始yum源文件并配置阿里yum源和epel源
repobackup=/etc/yum.repos.d/repo-backup
if [ ! -d $repobackup ]
then
mkdir -p $repobackup
mv /etc/yum.repos.d/*.repo $repobackup
echo "初始repo文件备份完毕,正在更新新的yum源,请稍后......"
#centOS-7 yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#centOS-7 epel源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
#else
fi
# 设置pypi源
if [ ! -d ~/.pip ]
then
echo "~/.pip不存在,正在创建"
mkdir ~/.pip
cat > ~/.pip/pip.conf << EOF
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
EOF
fi
%end
参数说明
关键字 | 含义 |
---|---|
install | 告知安装程序,这是一次全新安装,而不是升级upgrade。 |
url –url=” “ | 通过FTP或HTTP从远程服务器上的安装树中安装。 |
url –url=”http://10.0.0.7/CentOS-6.7/” | |
url –url ftp://<username>:<password>@<server>/<dir> | |
nfs | 从指定的NFS服务器安装。 |
nfs –server=nfsserver.example.com –dir=/tmp/install-tree | |
graphical | 安装过程开启图形 |
text | 安装过程使用文本模式安装。 |
lang | 设置在安装过程中使用的语言以及系统的缺省语言。lang en_US.UTF-8 |
keyboard | 设置系统键盘类型。keyboard us |
zerombr | 清除mbr引导信息。 |
bootloader | 系统引导相关配置。 |
bootloader –location=mbr –driveorder=sda –append=”crashkernel=auto rhgb quiet” | |
–location= | 指定引导记录被写入的位置.有效的值如下:mbr(缺省),partition(在包含内核的分区的第一个扇区安装引导装载程序)或none(不安装引导装载程序)。 |
–driveorder | 指定在BIOS引导顺序中居首的驱动器。 |
–append= | 指定内核参数.要指定多个参数,使用空格分隔它们。 |
network | 为通过网络的kickstart安装以及所安装的系统配置联网信息。 |
network –bootproto=dhcp –device=eth0 –onboot=yes –noipv6 –hostname=CentOS6 | |
–bootproto= | [dhcp/bootp/static]中的一种,缺省值是dhcp。bootp和dhcp被认为是相同的。 |
network –bootproto=static –ip=10.0.0.100 –netmask=255.255.255.0 –gateway=10.0.0.2 –nameserver=10.0.0.2 | |
static方法要求在kickstart文件里输入所有的网络信息。 | |
请注意所有配置信息都必须在一行上指定,不能使用反斜线来换行。 | |
–ip= | 要安装的机器的IP地址。 |
–gateway= | IP地址格式的默认网关。 |
–netmask= | 安装的系统的子网掩码。 |
–hostname= | 安装的系统的主机名。 |
–onboot= | 是否在引导时启用该设备。 |
–noipv6= | 禁用此设备的IPv6。 |
–nameserver= | 配置dns解析。 |
timezone | 设置系统时区。 |
timezone –utc Asia/Shanghai | |
authconfig | 系统认证信息。 |
authconfig –enableshadow –passalgo=sha512 | 设置密码加密方式为sha512 启用shadow文件。 |
rootpw –iscrypted | root密码 |
clearpart | 清空分区。 |
clearpart –all –initlabel | |
–all | 从系统中清除所有分区, |
–initlable | 初始化磁盘标签 |
part | 磁盘分区。分区要注意不能分的太大了,要结合自己实际硬盘情况,不然安装的时候会报错 |
part /boot –fstype=ext4 –asprimary –size=2048 | 设置启动分区 |
part swap –size=1024 | 设置交换分区 |
part / –fstype=ext4 –grow –asprimary –size=20000 | 设置根分区 |
–fstype=, | 为分区设置文件系统类型.有效的类型为ext2,ext3,swap和vfat。 |
–asprimary | 强迫把分区分配为主分区,否则提示分区失败。 |
–size= | 以MB为单位的分区最小值.在此处指定一个整数值,如500.不要在数字后面加MB。 |
–grow | 告诉分区使用所有可用空间(若有),或使用设置的最大值。 |
firstboot | 负责协助配置redhat一些重要的信息。 |
firstboot –disable | |
selinux | |
selinux –disabled | 关闭selinux。 |
firewall | |
firewall –disabled | 关闭防火墙。 |
logging | |
logging –level=info 设置日志级别,详细级别可以百度。 | |
reboot | 设定安装完成后重启,此选项必须存在,不然kickstart显示一条消息,并等待用户按任意键后才重新引导,也可以选择 halt 关机。 |
%pre –interpreter=/bin/bash | 系统安装前自动执行的脚本,执行脚本需要指定解释器-默认支持shell。 |
执行的shell脚本内容。 | |
%end | |
%post –interpreter=/bin/bash | 系统安装后自动执行的脚本,执行脚本需要指定解释器-默认支持shell |
所要执行执行的shell脚本 | |
%end | |
9. 编辑default文件
# 默认的启动菜单文件在TFTP根目录的 pxelinux.cfg子目录下,文件名为default
# 需要在ftfpboot目录下创建pxelinux.cfg
mkdir /var/lib/tftpboot/pxelinux.cfg
# 在pxelinux.cfg目录下创建default并编辑配置文件
# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
# 此处的参数为0,表示无需等待人工干预,自动选择并开始安装操系统
prompt 0
label auto
kernel vmlinuz
# 以下为ftp服务器地址,centos7.ks.cfg 文件路径在/var/ftp/,
# 也可以放在centos7文件夹内,但此处也要对应调整
append initrd=initrd.img method=ftp://10.0.0.12/centos7 ks=ftp://10.0.0.12/centos7.ks.cfg
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://10.0.0.12/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://10.0.0.12/centos7
10. 开启虚拟机验证
步骤与手动相同,但客户端服务器系统安装过程自动化,不需要手动干预。
扩展-kickstart命令选项
关键字 | 含义 |
---|---|
autopart(可选) | 自动创建分区,大于1GB的根分区(/),交换分区和适合于不同体系结构的引导分区。一个或多个缺省分区的大小可以用part指令重新定义。 |
ignoredisk(可选) | 导致安装程序忽略指定的磁盘,如果使用自动分区并希望忽略某些磁盘的话,这就很有用。 |
例如,没有ignoredisk,如要试图在SAN-cluster系统里部署,kickstart就会失败,因为安装程序检测到SAN不返回分区表的被动路径(passive path)。 | |
如果有磁盘的多个路径时,ignoredisk选项也有用处。 | |
语法是: ignoredisk –drives=drive1,drive2,…这里driveN是sda,sdb… hda等等中的一个。 | |
autostep(可选) | 和interactive相似,除了它进入下一屏幕,它通常用于调试。 |
–autoscreenshot,安装过程中的每一步都截屏并在安装完成后把图片复制到/root/anaconda-screenshots。这对于制作文档很有用。 | |
auth或authconfig(必需) | 为系统设置验证选项。这和在安装后运行的authconfig命令相似。在缺省情况下,密码通常被加密但不使用影子文件(shadowed)。 |
–enablemd5,每个用户口令都使用md5加密。 | |
–enablenis,启用NIS支持.在缺省情况下,–enablenis使用在网络上找到的域。域应该总是用 | |
–nisdomain=选项手工设置。–nisdomain=,用在NIS服务的NIS域名。 | |
–nisserver=,用来提供NIS服务的服务器(默认通过广播). | |
–useshadow或–enableshadow,使用屏蔽口令. | |
–enableldap,在/etc/nsswitch.conf启用LDAP支持,允许系统从LDAP目录获取用户的信息(UIDs,主目录,shell 等等).要使用这个选项,必须安装nss_ldap软件包.也必须用–ldapserver=和–ldapbasedn=指定服务器和base DN(distinguished name). | |
–enableldapauth,把LDAP作为一个验证方法使用.这启用了用于验证和更改密码的使用LDAP目录的pam_ldap模块.要使用这个选项,必须安装nss_ldap软件包.也必须用–ldapserver=和–ldapbasedn=指定服务器和base DN. | |
–ldapserver=,如果指定了–enableldap或–enableldapauth,使用这个选项来指定所使用的LDAP服务器的名字.这个选项在/etc/ldap.conf文件里设定. | |
–ldapbasedn=,如果指定了–enableldap或–enableldapauth,使用这个选项来指定用户信息存放的LDAP目录树里的DN.这个选项在/etc/ldap.conf文件里设置. | |
–enableldaptls,使用TLS(传输层安全)查寻.该选项允许LDAP在验证前向LDAP服务器发送加密的用户名和口令. | |
–enablekrb5,使用Kerberos 5验证用户.Kerberos自己不知道主目录,UID或shell.如果启用了Kerberos,必须启用LDAP,NIS,Hesiod或者使用/usr/sbin/useradd命令来使这个工作站获知用户的帐号.如果使用这个选项,必须安装pam_krb5软件包. | |
–krb5realm=,工作站所属的Kerberos 5领域. | |
–krb5kdc=,为领域请求提供服务的KDC.如果的领域内有多个KDC,使用逗号(,)来分隔它们. | |
–krb5adminserver=,领域内还运行kadmind的KDC.该服务器处理改变口令以及其它管理请求.如果有不止一个KDC,该服务器必须是主KDC. | |
–enablehesiod,启用Hesiod支持来查找用户主目录,UID 和 shell.在网络中设置和使用 Hesiod 的更多信息,可以在 glibc 软件包里包括的 /usr/share/doc/glibc-2.x.x/README.hesiod里找到.Hesiod是使用DNS记录来存储用户,组和其他信息的 DNS 的扩展. | |
–hesiodlhs,Hesiod LHS(“left-hand side”)选项在/etc/hesiod.conf里设置.Hesiod 库使用这个选项来决定查找信息时搜索DNS的名字,类似于LDAP对 base DN的使用. | |
–hesiodrhs,Hesiod RHS(“right-hand side”)选项在/etc/hesiod.conf里设置.Hesiod 库使用这个选项来决定查找信息时搜索DNS的名字,类似于LDAP对base DN的使用. | |
–enablesmbauth,启用对SMB服务器(典型的是Samba或Windows服务器)的用户验证.SMB验证支持不知道主目录,UID 或 shell.如果启用SMB,必须通过启用LDAP,NIS,Hesiod或者用/usr/sbin/useradd命令来使用户帐号为工作站所知.要使用这个选项,必须安装pam_smb软件包. | |
–smbservers=,用来做SMB验证的服务器名称.要指定不止一个服务器,用逗号(,)来分隔它们. | |
–smbworkgroup=,SMB服务器的工作组名称. | |
–enablecache,启用nscd服务.nscd服务缓存用户,组和其他类型的信息.如果选择在网络上用NIS,LDAP或hesiod分发用户和组的信息,缓存就尤其有用. | |
bootloader(必需) | 指定引导装载程序怎样被安装.对于安装和升级,这个选项都是必需的. |
–append=,指定内核参数.要指定多个参数,使用空格分隔它们. | |
例如:bootloader –location=mbr –append=”hdd=ide-scsi ide=nodma” | |
–driveorder,指定在BIOS引导顺序中居首的驱动器. | |
例如:bootloader –driveorder=sda,hda | |
–location=,指定引导记录被写入的位置.有效的值如下:mbr(缺省),partition(在包含内核 | |
–password=,如果使用GRUB,把GRUB引导装载程序的密码设置到这个选项指定的位置.这应该 | |
–md5pass=,如果使用GRUB,这和–password=类似,只是密码已经被加密. | |
–upgrade,升级现存的引导装载程序配置,保留其中原有的项目.该选项仅可用于升级. | |
clearpart(可选) | 在创建新分区之前,从系统上删除分区.默认不会删除任何分区. |
注:如果使用了clearpart命令,–onpart命令就不能够用在逻辑分区上. | |
–all,删除系统上所有分区. | |
–drives=,指定从哪个驱动器上清除分区. | |
例如,下面的命令清除了主IDE控制器上的前两个驱动器上所有分区 | |
clearpart –drives=hda,hdb –all | |
–initlabel,根据不同体系结构把磁盘标签初始化为缺省设置(例如,msdos用于x86而gpt用于 | |
–linux,删除所有Linux分区. | |
–none(缺省),不要删除任何分区. | |
cmdline(可选) | 在完全的非交互式的命令行模式下进行安装.任何交互式的提示都会终止安装.这个模式对于有x3270控制台的IBM System z系统很有用. |
device(可选) | 在多数的PCI系统里,安装程序会正确地自动探测以太网卡和SCSI卡.然而,在老的系统和某些PCI系统里,kickstart需要提示来找到正确的设备.device命令用来告诉安装程序安装额外的模块,它有着这样的格式: |
device –opts= ,用scsi或eth代替 ,使用应该被安装的内核模块的名称来替换. | |
–opts=,传递给内核模块的选项.注意,如果把选项放在引号里,可以传递多个选项. 例如:–opts=”aic152x=0x340 io=11″ | |
driverdisk(可选) | 可以在kickstart安装过程中使用驱动软盘.必须把驱动软盘的内容复制到系统的硬盘分区的根目录下.然后必须使用driverdisk 命令来告诉安装程序到哪去寻找驱动磁盘. |
driverdisk [–type=<fstype>]。<partition>,包含驱动程序盘的分区.–type=,文件系统类型(如:vfat,ext2,ext3). | |
另外,也可以为驱动程序盘指定一个网络位置: | |
driverdisk –source=ftp://path/to/dd.img | |
driverdisk –source=http://path/to/dd.img | |
driverdisk –source=nfs:host:/path/to/img | |
firewall(可选) | 这个选项对应安装程序里的「防火墙配置」屏幕:firewall –enabled|–disabled [–trust=] <device> [–port=] |
–enabled或者–enable,拒绝不是答复输出请求如DNS答复或DHCP请求的进入连接.如果需要使用在这个机器上运行的服务,可以选择允许指定的服务穿过防火墙. | |
–disabled或–disable,不要配置任何iptables规则. | |
–trust=,在此列出设备,如eth0,这允许所有经由这个设备的数据包通过防火墙.如果需要列出多个设备,使用–trust eth0 –trust eth1.不要使用以逗号分隔的格式,如–trust eth0, eth1. | |
<incoming>,使用以下服务中的一个或多个来替换,从而允许指定的服务穿过防火墙.–ssh, –telnet,–smtp,–http,–ftp | |
–port=,可以用端口:协议(port:protocal)格式指定允许通过防火墙的端口.例如,如果想允许IMAP通过的防火墙,可以指定imap:tcp.还可以具体指定端口号码,要允许UDP分组在端口1234通过防火墙,输入1234:udp.要指定多个端口,用逗号将它们隔开. | |
firstboot(可选) | 决定是否在系统第一次引导时启动”设置代理”.如果启用,firstboot软件包必须被安装.如果不指定,这个选项是缺省为禁用的. |
–enable或–enabled,系统第一次引导时,启动”设置代理”. | |
–disable或–disabled,系统第一次引导时,不启动”设置代理”. | |
–reconfig,在系统引导时在重配置(reconfiguration)模式下启用”设置代理”.这个模式启用了语言,鼠标,键盘,根密码,安全级别,时区和缺省网络配置之外的选项. | |
halt(可选) | 在成功地完成安装后关闭系统.这和手工安装相似,手工安装的anaconda会显示一条信息并等待用户按任意键来重启系统.在kickstart安装过程中,如果没有指定完成方法(completion method),将缺省使用reboot选项. |
halt选项基本和shutdown -h命令相同.关于其他的完成方法,请参考kickstart的poweroff,reboot和shutdown选项. | |
graphical(可选) | 在图形模式下执行kickstart安装.kickstart安装默认在图形模式下安装. |
install(可选) | 告诉系统来安装全新的系统而不是在现有系统上升级.这是缺省的模式.必须指定安装的类型,如cdrom,harddrive,nfs或url(FTP 或HTTP安装).install命令和安装方法命令必须处于不同的行上. |
cdrom | 从系统上的第一个光盘驱动器中安装. |
harddrive | 从本地驱动器的vfat或ext2格式的红帽安装树来安装.例如:harddrive –partition=hdb2 –dir=/tmp/install-tree |
–biospart=,从BIOS分区来安装(如82). | |
–partition=,从分区安装(如sdb2). | |
–dir=,包含安装树的variant目录的目录. | |
nfs | 从指定的NFS服务器安装.例如:nfs –server=nfsserver.example.com –dir=/tmp/install-tree |
–server=,要从中安装的服务器(主机名或IP). | |
–dir=,包含安装树的variant目录的目录. | |
–opts=,用于挂载NFS输出的Mount选项(可选). | |
url | 通过FTP或HTTP从远程服务器上的安装树中安装.例如:url –url http:///<dir>或:url –url ftp://:@/<dir> |
ignore disk(可选) | 用来指定在分区,格式化和清除时anaconda不应该访问的磁盘.这个命令有一个必需的参数,就是用逗号隔开的需要忽略的驱动器列表.例如:ignoredisk –drives=[disk1,disk2,…] |
interactive(可选) | 在安装过程中使用kickstart文件里提供的信息,但允许检查和修改给定的值.将遇到安装程序的每个屏幕以及kickstart文件里给出的值.通过点击”下一步”接受给定的值或是改变值后点击”下一步”继续.请参考autostep命令. |
iscsi(可选) | |
issci –ipaddr= [options] –target= –port= –user= –password= | |
iscsiname(可选) | |
key(可选) | 指定安装密钥,它在软件包选择和获取支持时设别系统的时候是必需的.这个命令是红帽企业Linux-specific,它对Fedora来说没有意义并且会被忽略. |
–skip,跳过输入密钥.通常,如果没有key命令,anaconda将暂停并提示输入密钥.如果没有密钥或不想提供它,这个选项允许继续自动化安装. | |
keyboard(必需) | 设置系统键盘类型.这里是 i386,Itanium,和 Alpha 机器上可用键盘的列表:be-latin1, bg, br-abnt2, cf, cz-lat2, cz-us-qwertz, de, de-latin1,de-latin1-nodeadkeys, dk, dk-latin1, dvorak, es, et, fi, fi-latin1,fr, fr-latin0, fr-latin1, fr-pc, fr_CH, fr_CH-latin1, gr, hu, hu101,is-latin1, it, it-ibm, it2, jp106, la-latin1, mk-utf, no, no-latin1,pl, pt-latin1, ro_win, ru, ru-cp1251, ru-ms, ru1, ru2, ru_win, se-latin1, sg, sg-latin1, sk-qwerty, slovene, speakup, speakup-lt,sv-latin1, sg, sg-latin1, sk-querty, slovene, trq, ua, uk, us, us-acentos |
文件/usr/lib/python2.2/site-packages/rhpl/keyboard_models.py 也包含这个列表而且是 rhpl 软件包的一部分. | |
lang(必需) | 设置在安装过程中使用的语言以及系统的缺省语言.例如,要把语言设置为英语,kickstart文件应该包含下面的一行:lang en_US |
文件/usr/share/system-config-language/locale-list里每一行的第一个字段提供了一个有效语言代码的列表,它是system-config-language软件包的一部分. | |
文本模式的安装过程不支持某些语言(主要是中文,日语,韩文和印度的语言).如果用lang命令指定这些语言中的一种,安装过程仍然会使用英语,但是系统会缺省使用指定的语言. | |
langsupport(不赞成) | langsupport关键字已经被取消而且使用它将导致屏幕出现错误信息及终止安装.作为代替,应该在kickstart文件里的%packages 部分列出所支持的语言的支持软件包组.例如,要支持法语,应该把下面的语句加入到%packages:@french-support |
logvol(可选) | 使用以下语法来为逻辑卷管理(LVM)创建逻辑卷:logvol –vgname= –size= –name= 这些选项如下所示: |
–noformat,使用一个现存的逻辑卷,不进行格式化. | |
–useexisting,使用一个现存的逻辑卷,重新格式化它. | |
–fstype=,为逻辑卷设置文件系统类型.合法值有:ext2,ext3,swap和vfat. | |
–fsoptions=,为逻辑卷设置文件系统类型.合法值有:ext2,ext3,swap和vfat. | |
–bytes-per-inode=,指定在逻辑卷上创建的文件系统的节点的大小.因为并不是所有的文件系统都支持这个选项,所以在其他情况下它都被忽略. | |
–grow=,告诉逻辑卷使用所有可用空间(若有),或使用设置的最大值. | |
–maxsize=,当逻辑卷被设置为可扩充时,以MB为单位的分区最大值.在这里指定一个整数值,不要在数字后加MB. | |
–recommended=,自动决定逻辑卷的大小. | |
–percent=,用卷组里可用空间的百分比来指定逻辑卷的大小. | |
首先创建分区,然后创建逻辑卷组,再创建逻辑卷.例如:part pv.01 –size 3000,volgroup myvg pv.01,logvol / –vgname=myvg –size=2000 –name=rootvol | |
logging(可选) | 这个命令控制安装过程中anaconda的错误日志.它对安装好的系统没有影响. |
–host=,发送日志信息到给定的远程主机,这个主机必须运行配置为可接受远程日志的syslogd进程. | |
-port=,如果远程的syslogd进程没有使用缺省端口,这个选项必须被指定. | |
–level=,debug,info,warning,error或critical中的一个.指定tty3上显示的信息的最小级别.然而,无论这个级别怎么设置,所有的信息仍将发送到日志文件. | |
mediacheck(可选) | 如果指定的话,anaconda将在安装介质上运行mediacheck.这个命令只适用于交互式的安装,所以缺省是禁用的. |
monitor(可选) | 如果monitor命令没有指定,anaconda将使用X来自动检测的显示器设置.请在手工配置显示器之前尝试这个命令. |
–hsync=,指定显示器的水平频率. | |
–vsync=,指定显示器的垂直频率. | |
–monitor=,使用指定的显示器;显示器的名字应该在hwdata软件包里的/usr/share/hwdata/MonitorsDB列表上.这个显示器的列表也可以在Kickstart Configurator的X配置屏幕上找到.如果提供了–hsync或–vsync,它将被忽略.如果没有提供显示器信息,安装程序将自动探测显示器. | |
–noprobe=,不要试图探测显示器. | |
mouse(已取消) | mouse 关键字已经被取消,使用它将导致屏幕出现错误信息并终止安装. |
network(可选) | 为系统配置网络信息.如果 kickstart安装不要求联网(换句话说,不从NFS,HTTP或FTP安装),就不需要为系统配置网络.如果安装要求联网而kickstart文件里没有提供网络信息,安装程序会假定从eth0通过动态IP地址(BOOTP/DHCP)来安装,并配置安装完的系统动态决定IP地址.network选项为通过网络的kickstart安装以及所安装的系统配置联网信息. |
–bootproto=,dhcp,bootp或static中的一种,缺省值是dhcp.bootp和dhcp被认为是相同的.static方法要求在kickstart文件里输入所有的网络信息.顾名思义,这些信息是静态的且在安装过程中和安装后所有.静态网络的设置行更为复杂,因为必须包括所有的网络配置信息.必须指定IP地址,网络,网关和命名服务器.例如(“”表示连续的行): network –bootproto=static –ip=10.0.2.15 –netmask=255.255.255.0 \ | |
–gateway=10.0.2.254 –nameserver=10.0.2.1。如果使用静态方法,请注意以下两个限制:所有静态联网配置信息都必须在一行上指定,不能使用反斜线来换行.在这里只能够指定一个命名服务器.然而,如果需要的话,可以使用kickstart文件的%post段落来添加更多的命名服务器. | |
–device=,用来选择用于安装的特定的以太设备.注意,除非kickstart文件是一个本地文件(如ks=floppy),否则–device=的使用是无效的.这是因为安装程序会配置网络来寻找kickstart文件.例如: network –bootproto=dhcp –device=eth0 | |
–ip=,要安装的机器的IP地址. | |
–gateway=,IP地址格式的默认网关. | |
–nameserver=,主名称服务器,IP地址格式. | |
–nodns,不要配置任何 DNS 服务器. | |
–netmask=,安装的系统的子网掩码. | |
–hostname=,安装的系统的主机名. | |
–ethtool=,指定传给ethtool程序的网络设备的其他底层设置. | |
–essid=,无线网络的网络ID. | |
–wepkey=,无线网络的加密密钥. | |
–onboot=,是否在引导时启用该设备. | |
–class=,DHCP类型. | |
–mtu=,该设备的MTU. | |
–noipv4=,禁用此设备的IPv4. | |
–noipv6=,禁用此设备的IPv6. | |
multipath(可选) | multipath –name= –device= –rule= |
part或partition(对于安装是必需的,升级可忽略). | 在系统上创建分区.如果不同分区里有多个红帽企业Linux系统,安装程序会提示用户升级哪个系统.警告:作为安装过程的一部分,所有被创建的分区都会被格式化,除非使用了–noformat和–onpart.<mntpoint>,<mntpoint>是分区的挂载点,它必须是下列形式中的一种:/<path>,例如,/,/usr,/homeswap,该分区被用作交换空间,要自动决定交换分区的大小,使用–recommended选项.swap –recommended自动生成的交换分区的最小值大于系统内存的数量,但小于系统内存的两倍.raid.<id>,该分区用于 software RAID(参考 raid).pv.<id>,该分区用于 LVM(参考 logvol). |
–size=,以MB为单位的分区最小值.在此处指定一个整数值,如500.不要在数字后面加MB. | |
–grow,告诉分区使用所有可用空间(若有),或使用设置的最大值. | |
–maxsize=,当分区被设置为可扩充时,以MB为单位的分区最大值.在这里指定一个整数值,不要在数字后加MB. | |
–noformat,用–onpart命令来告诉安装程序不要格式化分区. | |
–onpart=或–usepart=,把分区放在已存在的设备上.例如:partition /home –onpart=hda1,把/home置于必须已经存在的/dev/hda1上. | |
–ondisk=或–ondrive=,强迫分区在指定磁盘上创建.例如:–ondisk=sdb把分区置于系统的第二个SCSI磁盘上. | |
–asprimary,强迫把分区分配为主分区,否则提示分区失败. | |
–type=(用fstype代替),这个选项不再可用了.应该使用fstype. | |
–fstype=,为分区设置文件系统类型.有效的类型为ext2,ext3,swap和vfat. | |
–start=,指定分区的起始柱面,它要求用–ondisk=或ondrive=指定驱动器.它也要求用–end=指定结束柱面或用–size=指定分区大小. | |
–end=,指定分区的结束柱面.它要求用–start=指定起始柱面. | |
–bytes-per-inode=,指定此分区上创建的文件系统的节点大小.不是所有的文件系统都支持这个选项,所以在其他情况下它都被忽略. | |
–recommended,自动决定分区的大小. | |
–onbiosdisk,强迫在 BIOS 找到的特定磁盘上创建分区. | |
注:如果因为某种原因分区失败了,虚拟终端3上会显示诊断信息. | |
poweroff(可选) | 在安装成功后关闭系统并断电.通常,在手工安装过程中,anaconda会显示一条信息并等待用户按任意键来重新启动系统.在kickstart的安装过程中,如果没有指定完成方法,将使用缺省的reboot选项. |
raid(可选) | 组成软件RAID设备.该命令的格式是:raid <mntpoint> –level=<level> –device=<mddevice><partitions*><mntpoint>,RAID文件系统被挂载的位置.如果是/,除非已经有引导分区存在(/boot),RAID级别必须是1.如果已经有引导分区,/boot分区必须是级别1且根分区(/)可以是任何可用的类型.<partitions*>(这表示可以有多个分区)列出了加入到RAID阵列的RAID标识符. |
–level=,要使用的RAID级别(0,1,或5). | |
–device=,要使用的RAID设备的名称(如md0或md1).RAID设备的范围从md0直到md7,每个设备只能被使用一次. | |
–bytes-per-inode=,指定RAID设备上创建的文件系统的节点大小.不是所有的文件系统都支持这个选项,所以对于那些文件系统它都会被忽略. | |
–spares=,指定RAID阵列应该被指派N个备用驱动器.备用驱动器可以被用来在驱动器失败时重建阵列. | |
–fstype=,为RAID阵列设置文件系统类型.合法值有:ext2,ext3,swap和vfat. | |
–fsoptions=,指定当挂载文件系统时使用的free form字符串.这个字符串将被复制到系统的/etc/fstab文件里且应该用引号括起来. | |
–noformat,使用现存的RAID设备,不要格式化RAID阵列. | |
–useexisting,使用现存的RAID设备,重新格式化它. | |
reboot(可选) | 在成功完成安装(没有参数)后重新启动.通常,kickstart会显示信息并等待用户按任意键来重新启动系统. |
repo(可选) | 配置用于软件包安装来源的额外的yum库.可以指定多个repo行.repo –name=<repoid> [–baseline=<url> |
–name=,repo id.这个选项是必需的. | |
–baseurl=,库的URL.这里不支持yum repo配置文件里使用的变量.可以使用它或者–mirrorlist,亦或两者都不使用. | |
–mirrorlist=,指向库镜像的列表的URL.这里不支持yum repo配置文件里可能使用的变量.可以使用它或者–baseurl,亦或两者都不使用. | |
rootpw(必需) | 把系统的根口令设置为<password>参数.rootpw [–iscrypted] <password> |
–iscrypted,如果该选项存在,口令就会假定已被加密. | |
selinux(可选) | 在系统里设置SELinux状态.在anaconda里,SELinux缺省为enforcing. |
–enforcing,启用SELinux,实施缺省的targeted policy. | |
–permissive,输出基于SELinux策略的警告,但实际上不执行这个策略. | |
–disabled,在系统里完全地禁用 SELinux. | |
services(可选) | 修改运行在缺省运行级别下的缺省的服务集.在disabled列表里列出的服务将在enabled列表里的服务启用之前被禁用. |
–disabled,禁用用逗号隔开的列表里的服务. | |
–enabled,启用用逗号隔开的列表里的服务. | |
shutdown(可选) | 在成功完成安装后关闭系统.在kickstart安装过程中,如果没有指定完成方法,将使用缺省的reboot选项. |
skipx(可选) | 如果存在,安装的系统上就不会配置X. |
text(可选) | 在文本模式下执行kickstart安装. kickstart安装默认在图形模式下安装. |
timezone(可选) | 把系统时区设置为<timezone>,它可以是timeconfig列出的任何时区.timezone [–utc] <timezone> |
–utc,如果存在,系统就会假定硬件时钟被设置为UTC(格林威治标准)时间. | |
upgrade(可选) | 告诉系统升级现有的系统而不是安装一个全新的系统.必须指定 cdrom,harddrive,nfs或url(对于FTP和HTTP而言)中的一个作为安装树的位置.详情请参考 install. |
user(可选) | 在系统上创建新用户.user –name=<username> [–groups=] [–homedir=] [–password=] [–iscrypted] [–shell=] [–uid=] |
–name=,提供用户的名字.这个选项是必需的. | |
–groups=,除了缺省的组以外,用户应该属于的用逗号隔开的组的列表. | |
–homedir=,用户的主目录.如果没有指定,缺省为/home/<username>. | |
–password=,新用户的密码.如果没有指定,这个帐号将缺省被锁住. | |
–iscrypted=,所提供的密码是否已经加密? | |
–shell=,用户的登录shell.如果不提供,缺省为系统的缺省设置. | |
–uid=,用户的UID.如果未提供,缺省为下一个可用的非系统 UID. | |
vnc(可选) | 允许通过VNC远程地查看图形化的安装.文本模式的安装通常更喜欢使用这个方法,因为在文本模式下有某些大小和语言的限制.如果为no,这个命令将启动不需要密码的VNC服务器并打印出需要用来连接远程机器的命令.vnc [–host=] [–port=] [–password=] |
–host=,不启动VNC服务器,而是连接至给定主机上的VNC viewer进程. | |
–port=,提供远程VNC viewer进程侦听的端口.如果不提供,anaconda将使用VNC的缺省端口. | |
–password=,设置连接VNC会话必需的密码.这是可选的,但却是我们所推荐的选项. | |
volgroup(可选) | 用来创建逻辑卷管理(LVM)组,其语法格式为:volgroup <name><partition><options>。这些选项如下所示:首先创建分区,然后创建逻辑卷组,再创建逻辑卷. |
–noformat,使用一个现存的卷组,不要格式化它. | |
–useexisting,使用一个现存的卷组,重新格式化它. | |
–pesize=,设置物理分区(physical extent)的大小. | |
xconfig(可选) | 配置X Window 系统.如果没有指定这个选项且安装了X,用户必须在安装过程中手工配置X;如果最终系统里没有安装X,这个选项不应该被使用. |
–driver,指定用于视频硬件的 X 驱动. | |
–videoram=,指定显卡的显存数量. | |
–defaultdesktop=,指定GNOME或KDE作为缺省的桌面(假设已经通过%packages安装了GNOME或KDE桌面环境). | |
–startxonboot,在安装的系统上使用图形化登录. | |
–resolution=,指定安装的系统上X窗口系统的默认分辨率.有效值有:640×480,800×600,1024×768,1152×864, 1280×1024,1400×1050,1600×1200.请确定指定与视频卡和显示器兼容的分辨率. | |
–depth=,指定安装的系统上的 X 窗口系统的默认色彩深度.有效值有:8,16,24,和 32.请确定指定与视频卡和显示器兼容的色彩深度. | |
zerombr(可选) | 如果指定了zerombr且yes是它的唯一参数,任何磁盘上的无效分区表都将被初始化.这会毁坏有无效分区表的磁盘上的所有内容.这个命令的格式应该如下:zerombr yes。其它格式均无效. |
zfcp(可选) | zfcp [–devnum=] [–fcplun=] [–scsiid=] [–scsilun=] [–wwpn=] |
%include | 使用 %include/path/to/file命令可以把其他文件的内容包含在kickstart文件里,就好像这些内容出现在kickstart文件的%include命令后一样. |
延伸阅读:
Cursor 最强竞争对手来了,专治复杂大项目,免费一个月
Augment Agent 发布后,国内的自媒体现在清一色都是上面的画风👆到处都是“再见 Cursor” 之类的言论👀什...
230块的至强神U!6核12线程+核显,垃圾佬狂喜!Intel这回输麻了?
兄弟们,230块能买到什么?一包华子?两杯奶茶?不不不!今天带你们开箱一颗 6核12线程、4.5GHz睿频、自...
2025年最新推荐的5款堡垒机,打造安全网络防线,秒收藏!
随着网络安全威胁的日益严峻,堡垒机(Bastion Host)作为一种加强远程访问安全管理的重要工具,越来越受到企业和组...