linux安装大致可以分为2个阶段第一阶段:anaconda 阶段此阶段是linux的预安装环境,提供linux安装选项的一个接口,可以将它比作是window中的PE环境第二阶段:install 阶段该阶段系统会按照anaconda 阶段设定的参数自动安装 anaconda有两种模式:交互式:和普通安装一样,按照提示选择选项一步步的安装非交互式:通过读取kickstart文件的配置,进行自动安装而在安装linux过程中,获取ks.cfg文件的方式有多种,如直接在cdrom中获取,常见的形式还有http,ftp,nfs等方式cdrom和硬盘:ks=cdrom:/dir/ks.cfgks=hd:/dir/ks.cfghttp和ftp:ks=http://domain.com/dir/ks.cfgks=ftp://domain.com/dir/ks.cfgNFS:ks=nfs:domain.com:/dir/ks.cfg 在使用ks.cfg之前,需要先引导启动环境,引导方式有cdrom、usb、PXE等。在引导进入anaconda后,即可通过读取ks.cfg来进行系统的自动安装 ks.cfg文件会在安装linux后,根据用户的安装选项自动生成在root家目录,即anaconda_ks.cfg ks.cfg文件组成大致分为3段1.命令段:键盘类型,语言,安装方式等系统的配置,有必选项和可选项,如果缺少某项必选项,安装时会中断并提示用户选择此项的选项2.软件包段:%packages@groupname #指定安装的包组package_name #指定安装的包-package_name #指定不安装的包3.脚本段(可选):%pre :预安装脚本 (由于只依赖于启动镜像,支持的命令很少)%post:后安装脚本(基本支持所有命令)更多关于Anaconda Kickstart的内容请看:http://fedoraproject.org/wiki/Anaconda/Kickstart
- [root@rhel6 ~]# cat /var/ftp/pub/ks.cfg
- ######################################################################
- ##############1 Main Begin
- ##############1.1 Text,Key,Keyboard,Lang,Net Begin
- ######################################################################
- # platform=x86, AMD64, 或 Intel EM64T# 通过文本界面进行安装
- text
- # 安装/升级
- install
- # 如果是RHEL5的系统,会要求输入key,这里配置为跳过,如果不配置安装时会停在那里要求用户输入key
- key--skip
- # 安装方式(cdrom/hdisk/http/ftp/nfs),指定安装源的路径
- nfs --server=192.168.0.90 --dir=/var/ftp/pub
- lang en_US.UTF-8
- keyboard us
- # 通过DHCP获取IP地址
- network --bootproto dhcp
- ######################################################################
- ##############1.1 Text,Key,Keyborad,Lang,Net End
- ##############1.2 Partition Begin
- ######################################################################
- # Partition 10000M
- %include /tmp/partitioning
- ######################################################################
- ##############1.2 Partition End
- ##############1.3 Timezone,X,passwd,security,bootloader Begin
- ######################################################################
- timezone --utc Asia/Shanghai
- graphical
- # 设置root用户的密码
- rootpw RedHat
- # 禁用防火墙
- firewall --disabled
- authconfig --useshadow--passalgo=md5
- # 激活SELINUX
- selinux --enforcing
- # 首次引导时,禁用设置代理
- firstboot --disable
- # 安装Grub到MBR
- bootloader --location=mbr
- # 安装完成后重启
- reboot
- ######################################################################
- ##############1.3 Timezone,X,passwd,security,bootloader End
- ##############1 Main End
- ##############2 Packages Begin
- ######################################################################
- %packages
- # 安装软件包组
- @Base
- @Core
- @basic-desktop
- @desktop-debugging
- @desktop-platform
- @fonts
- @general-desktop
- @graphical-admin-tools
- @input-methods
- @legacy-x
- @remote-desktop-clients
- @x11
- # 安装软件包
- coreutils
- elfutils
- elfutils-libelf
- elinks
- enscript
- firefox
- gcc
- gimp
- gimp-data-extras
- gimp-print-plugin
- gnome-icon-theme
- gstreamer
- gstreamer-tools
- libIDL
- libcap
- libgsf
- libraw1394
- mutt
- nautilus-cd-burner
- ntp
- openmotif
- openssh
- openssh-clients
- openssh-server
- pyorbit
- samba-client
- samba-common
- startup-notification
- ttmkfdir
- vim-enhanced
- vnc
- %end
- ######################################################################
- ##############2 Packages End
- ##############3 Post Begin
- ############## Network Begin
- ######################################################################
- %post
- # 固定安装后系统的IP地址
- cat > /etc/sysconfig/network-scripts/ifcfg-eth0 << EOF
- DEVICE=eth0
- BOOTPROTO=none
- ONBOOT=yes
- NETMASK=255.255.255.0
- IPADDR=XXX
- GATEWAY=192.168.0.90
- TYPE=Ethernet
- USERCTL=no
- IPV6INIT=no
- PEERDNS=yes
- EOF
- # 提取IP地址
- v_ip=`ifconfigeth0 | head -n 2 | tail -n 1 | cut -d ":" -f 2 | cut -d " " -f 1`
- # 替换ifcfg-eth0文件中IPADDR的xxx为$v_ip
- perl -pi -e "s,XXX,$v_ip," /etc/sysconfig/network-scripts/ifcfg-eth0
- %end
- ######################################################################
- ############## Network End
- ##############3 Post End
- ######################################################################
- %pre
- echo "Starting PRE" > /dev/tty2
- # 以下两行在push 64位系统的时候是必须的(Bug)
- cd /mnt/
- ln -s Source/Packages ./
- v_pci0=$(udevinfo -ap /sys/class/net/eth0 | grep "ID==" | head -n 1)
- v_driver0=$(udevinfo -ap /sys/class/net/eth0 | grep "DRIVER==" | head -n 1)
- v_mac0=$(ifconfig eth0 | grep HWaddr | cut -d " " -f 11)
- v_ip_short=$(grep $v_mac0 /mnt/stage2/workstation.list | cut -d "-" -f 1)
- v_ip=192.168.0.$v_ip_short
- if [ ! -z $v_ip_short ]
- then
- ifconfig eth0 $v_ip
- fi
- # partitions
- if
- grep -q hda /proc/partitions
- then
- disktype=hda
- else
- disktype=sda
- fi
- # 设置分区
- cat >>/tmp/partitioning <<EOF
- # 清除主引导记录MBR
- zerombr yes
- # 清除所有的分区
- clearpart --all
- # 设置/boot分区为50MB,文件系统格式为ext4
- part /boot --fstype=ext4 --size=50
- # 设置swqp分区为512MB
- part swap --size=512
- # 创建8GB的PV
- part pv.Lrhel6 --size=8000
- # 创建 VG
- volgroup Lrhel6 --pesize=32768 pv.Lrhel6
- # 创建 LV ,并挂载到根分区中
- logvol / --vgname=Lrhel6 --size=7000 --name=root
- EOF
- %end
DHCP+TFTP+PXE自动网络引导安装Linux操作系统通过rescue的Skip模式克隆Linux系统相关资讯 kickstart
- Linux运维自动化工具 Kickstart (04月09日)
- Nginx DHCP TFTP Kickstart搭建自 (10/29/2015 10:38:15)
- Kickstart 全自动安装部署RHEL 7.0 (09/20/2015 09:02:26)
| - PXE+Kickstart实现无人值守批量安 (11/11/2015 08:39:04)
- RHCSA 系列(十二): 使用 (10/02/2015 19:53:58)
- PXE+Kickstart实现自动安装CentOS (09/12/2015 18:25:42)
|
本文评论 查看全部评论 (0)