基于 Kickstart 自动化安装 CentOS 实践

因为需要在浪潮的 x86 服务器中集中部署 CentOS 搭建基于 Hadoop 的大数据平台 , 平时接触 SLES(SUSE Linux Enterprise Server) 较多并且已经实现基于 Autoyast 方式使用光盘或者 PXE 网络自动化安装 ( 后续会分享具体实现方法 )。 这次主要通过学习 Kickstart 实现最简单的光盘方式自动化安装 CentOS, 而网上的大多数教程并不完全适用于自身的环境 , 本文将不再赘述 Kickstart 相关概念 , 细节可参考扩展阅读 。

Kickstart 是最为通用的 Linux 自动化安装方法之一

扩展阅读

环境准备 定制系统

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 文件

注意路径和命令的准确性

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/16277.html