前言
因为需要在浪潮的 x86 服务器中集中部署 CentOS 搭建基于 Hadoop 的大数据平台 , 平时接触 SLES(SUSE Linux Enterprise Server) 较多并且已经实现基于 Autoyast 方式使用光盘或者 PXE 网络自动化安装 ( 后续会分享具体实现方法 )。 这次主要通过学习 Kickstart 实现最简单的光盘方式自动化安装 CentOS, 而网上的大多数教程并不完全适用于自身的环境 , 本文将不再赘述 Kickstart 相关概念 , 细节可参考扩展阅读 。
Kickstart 是最为通用的 Linux 自动化安装方法之一
扩展阅读
- CentOS – http://wiki.centos.org/zh/TipsAndTricks/KickStart
- Fedora – https://fedoraproject.org/wiki/Anaconda/Kickstart/zh-cn
环境准备
定制系统
CentOS-6.4-x86_64
官方下载地址
安装软件包
代理上网小技巧 :
export http_proxy=ip:port
yum -y install createrepo mkisofs
制作流程
目录结构
拷贝 CentOS 原始镜像内容 , 不做任何精简
mkdir /mnt/centos mount /dev/sr0 /mnt/centos mkdir /tmp/iso cp -r /mnt/centos/* /tmp/iso
增加 Kickstart 配置文件
文件路径和安装方式可自由定义
cd /tmp/iso/isolinux # 修改引导 , 注意 ks= 部分 vi isolinux.cfg label linux menu label ^Install or upgrade an existing system menu default kernel vmlinuz append initrd=initrd.img ks=cdrom:/isolinux/ks.cfg # 手动增加 Kickstart 配置文件 vi ks.cfg
#Kickstart file automatically generated by anaconda. #version=DEVEL #Install OS instead of upgrade # 表示是安装 , 而不是升级 install #Use text mode install # 文本方式安装 text #Use network installation # 使用网络安装 #url --url=ftp://ip/centos #Local installation Use CDROM installation media # 使用光盘安装 cdrom #Installation Number configuration # 如果是 RedHat 的系统 , 会要求输入 key, 这里配置为跳过 , 如果不配置安装时会停在那里要求用户输入 key #key –skip #System language # 语言环境 #lang en_US.UTF-8 lang zh_CN.UTF-8 #System keyboard # 键盘类型 keyboard us #Network information # 网络配置 #network --device eth0 --bootproto dhcp --onboot yes #Root password #root 密码 rootpw chinaums #Firewall configuration # 禁用防火墙 firewall --disabled #SELinux configuration # 禁用 selinux selinux --disabled #Run the Setup Agent on first boot # 禁用第一次启动时设置系统的向导 firstboot --disable #System authorization information # 用户认证配置 ,useshadow 表示使用本地认证 ,--passalgo 表示密码加密算法 authconfig --enableshadow --passalgo=sha512 #System timezone # 设置时区为上海 timezone --isUtc Asia/Shanghai #System bootloader configuration # 指明 bootloader 的安装位置 , 指明驱动器的排序 , 指明操作系统安装完成之后 , 向内核传递的参数 bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" #Clear the Master Boot Record # 清除 MBR 引导记录 zerombr yes #Partition clearing information # 清除硬盘上的所有数据 clearpart --all --initlabel #Disk partitioning information # 自定义分区 # 创建一个 200M 大小的分区挂载 /boot 类型为 ext4 part /boot --fstype=ext4 --size=200 --ondisk=sda # 创建一个 20000M 大小的 SWAP 分区 part swap --size=20000 --ondisk=sda # 创建 / 目录 part / --fstype=ext4 --grow --size=1 --ondisk=sda #Reboot after installation # 设置完成之后重启 reboot --eject #This packages is for CentOS 6.4 # 为 CentOS 6.4 定制的软件包 %packages @base @core @chinese-support # 增加安装后运行脚本 %post #config service # 自定义服务 service NetworkManager stop chkconfig NetworkManager off #eject cdrom # 安装完成弹出光碟 #eject #reboot # 执行完毕后重启 #reboot -f # 结束自动化部署 %end
生成依赖关系和 ISO 文件
注意路径和命令的准确性
cd /tmp/iso createrepo -g repodata/*comps.xml . mkisofs -o /tmp/CentOS-6.4_64_auto.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -joliet-long -R -J -v -T /tmp/iso/
测试和建议
Linux 基础教程:Linux Kickstart 自动安装 http://www.linuxidc.com/Linux/2015-05/117877.htm
使用PXE+DHCP+Apache+Kickstart无人值守安装CentOS5.8 x86_64 http://www.linuxidc.com/Linux/2012-12/76913p4.htm
Linux PXE无人值守安装出现 PXE-E32:TFTP OPen timeout的解决办法 http://www.linuxidc.com/Linux/2014-03/98986.htm
使用PXE结合kickstart 自动安装Linux系统 http://www.linuxidc.com/Linux/2014-03/98014.htm
RHCE认证之无人值守安装Linux系统(FTP+TFTP+DHCP+Kickstart+PXE) http://www.linuxidc.com/Linux/2013-10/91013.htm
PXE网络装机(有人值守与无人值守安装) http://www.linuxidc.com/Linux/2013-07/87456.htm
更多CentOS相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14
本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-05/117901.htm