时间:2023-06-02 16:16:41 来源: 人气:
前言, 因为需要在浪潮的x86服务器中集中部署CentOS搭建基于Hadoop的大数据平台,平时接触SLES(SuSE Linux Enterprise Server)较多并且已经实现基于Autoyast方式使用光盘或者PXE网络自动化安装(后续会分享具体实现方法)。这次主要通过学习Kisckstart实现最简单的光盘方式自动化安装CentOS,而网上的大多数教程并不完全适用于自身的环境,本文将不再赘述Kickstart相关概念,细节可参考扩展阅读。, Kickstart是最为通用的Linux自动化安装方法之一, 环境准备, 定制系统, CentOS-6.4-x86_64, 官方下载地址 - http://wiki.centos.org/Download, 安装软件包, 代理上网小技巧,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,< p> #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/,