利用Kickstart自动化安装CentOS的教程

09-28

前言

因为需要在浪潮的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/