Welcome 微信登录

首页 / 操作系统 / Linux / 基于 Kickstart 自动化安装 CentOS 实践

前言因为需要在浪潮的 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/centosmount /dev/sr0 /mnt/centosmkdir /tmp/isocp -r /mnt/centos/* /tmp/iso

增加 Kickstart 配置文件

文件路径和安装方式可自由定义
cd /tmp/iso/isolinux# 修改引导 , 注意 ks= 部分 vi isolinux.cfglabel linuxmenu label ^Install or upgrade an existing systemmenu defaultkernel vmlinuzappend 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-8lang 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# 禁用 selinuxselinux --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 类型为 ext4part /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 stopchkconfig NetworkManager off#eject cdrom# 安装完成弹出光碟#eject#reboot# 执行完毕后重启#reboot -f # 结束自动化部署 %end

生成依赖关系和 ISO 文件

注意路径和命令的准确性
cd /tmp/isocreaterepo -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.htmLinux 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.htmRHCE认证之无人值守安装Linux系统(FTP+TFTP+DHCP+Kickstart+PXE) http://www.linuxidc.com/Linux/2013-10/91013.htmPXE网络装机(有人值守与无人值守安装) http://www.linuxidc.com/Linux/2013-07/87456.htm更多CentOS相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14本文永久更新链接地址