64 系统定制自动化部署

一、制作环境准备
实验环境:
VMware Workstation
CentOS-6.5-x86_64-minimal 最小化安装
安装后,我们会使用系统 /root 目录下 install.log 和 anaconda-ks.cfg 这两个文件(在此基础上修改比较方便)

1.1 定制步骤
1、安装最小化的操作系统.包括基本的系统和所需要的工具等.
比如:对于http,mysql等软件,建议使用编译的方式安装, 然后打包放进去,可以减少许多依赖包的麻烦.
2、安装系统后,收集系统已安装的软件包,使用脚本统一转存到一个目录中.
3、在安装光盘复制images镜像,从光盘启动centos安装所需的文件等.
4、定义自己的kickstart安装脚本.
5、按照之前转存的软件(rpm)包, 重新生成光盘的report信息.
6、打包生成ISO文件,及MD5效验码.

1.2 安装所需工具包
[root@linuxidc ~]#  yum -y install anaconda repodata createrepo mkisofs rsync

1.3 下载CentOS 6.5镜像

为了方便制作,我们可以在VMware、vbox、xen等虚拟环境中进行安装,这里我们选用了VMware作为制作环境。我们可以在官网或者其他比较近的镜像站点下载CentOS 镜像文件。CentOS-6.4-x86_64-minimal.iso

二、定制系统
2.1 光盘目录结构

*isolinux 目录存放光盘启动时的安装界面信息
*images 目录包括了必要的启动映像文件
*Packages 目录存放安装软件包及信息
*.discinfo 文件是安装价质的识别信息
 
MediaCentOS 目录存放媒体中心安装包
Repodata 目录存放rpm包依赖信息
 
5.x 系列, boot.iso 存在于 images/ 这个目录。
6.x 系列, 存放于 /isolinux 目录下
6.x 网络安装需要在官网下载:netinstall.iso 镜像文件。

2.2 挂载并拷贝文件

目录规划:
挂载目录为: /mnt

定制光盘文件目录: /root/iso

[root@linuxidc ~]# pwd
/root
[root@linuxidc ~]# mkdir iso                            # 建立iso文件制作目录
[root@linuxidc ~]# mkdir -p  ./iso/{Packages,repodata}  # 建立软件包目录和repodata目录 
[root@linuxidc ~]# mount /dev/cdrom /mnt                # 挂载 DVD
mount: block device /dev/sr0 is write-protected, mounting read-only
 
# 拷贝 源DVD镜像中,除了Packages,repodata 目录外的所有文件到 iso 目录
[root@linuxidc ~]# /usr/bin/rsync -a --exclude=Packages --exclude=repodata  /mnt/  ./iso/
[root@linuxidc ~]# ls iso
CentOS_BuildTag  GPL      Packages                  RPM-GPG-KEY-CentOS-6          RPM-GPG-KEY-CentOS-Testing-6
EFI              images    RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-Debug-6    TRANS.TBL
EULA            isolinux  repodata                  RPM-GPG-KEY-CentOS-Security-6
 
# 参考当前系统的安装包,拷贝
[root@linuxidc ~]# awk '/Installing/ {print $2}' install.log | xargs -i cp /mnt/Packages/{}.rpm  ./iso/Packages/
[root@linuxidc ~]# ls iso/Packages/ | wc -l
205
 
# 执行createrepo程序生成repodata下的comps.xml文件(重要)
#comps.xml 文件中包含了安装时用户所见到的与rpm相关的所有内容,它会检查Packages下
# 的RPM包的依赖关系,安装时如果缺少依赖包,它会提示您哪个RPM 包需要哪些依赖库。
 
[root@linuxidc ~]# pwd
/root
# 编辑 shell 脚本, 并执行
#!/bin/bash
 
ISO_DIR=/root/iso
cd  ${ISO_DIR}
declare -x discinfo=$(head -1 .discinfo)
 
cp  /mnt/repodata/*-minimal-x86_64.xml ${ISO_DIR}/repodata/minimal-x86_64.xml
 
createrepo  -g  ${ISO_DIR}/repodata/minimal-x86_64.xml  ${ISO_DIR}
 
createrepo -u "media://$discinfo" -g ${ISO_DIR}/repodata/*-minimal-x86_64.xml ${ISO_DIR}
 
### 
到这里,comps.xml文件和其他相关联的文件已被重新生成到repodata目录下。
Tips2:如果你新增或删除了Packages目录的RPM包,请重新生成comps.xml文件。


三、制作 ks.cfg 脚本
    ks文件由系统安装所创建的 anaconda-ks.cfg进行修改,当然也可以用system-config-kickstart工具制作而得。这里大家需要根据实际情况进行修改:
默认root用户密码: 123456

静态获取地址

硬盘至少15G

[root@linuxidc ~]# pwd
/root
[root@linuxidc ~]# cp anaconda-ks.cfg  ./iso/isolinux/ks.cfg
[root@linuxidc ~]# vim ./iso/isolinux/ks.cfg
## 请根据实际情况进行调整
 
# Kickstart file automatically generated byanaconda.
 
#version=DEVEL
install
cdrom
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto static --noipv6 --ip=192.168.3.132 --netmask=255.255.255.0 --gateway=192.168.3.254
rootpw --iscrypted$6$060kt9rryFXbrlgx$WWWNQYLnpz0Es8dTlouy3LXqjTdHIRToojidbpYoZrd2ETOJ.JsNbgnMylQVbFRThPZwSdRKJcrAml7LQDdR00
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone --utc Asia/Chongqing
 
text
firstboot --disable
logging --level=info
reboot
 
 
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
zerombr
 
# The following is the partitioninformation you requested
# Note that any partitions you deleted arenot expressed
# here so unless you clear all partitionsfirst, this is
# not guaranteed to work
#clearpart --none
 
#part /boot --fstype=ext4 --size=200
#part swap --size=2048
#part / --fstype=ext4 --grow --size=200
 
clearpart --all --initlabel
part /boot --fstype=ext4 --size=200
part swap --size=2048
part / --fstype=ext4 --size=10240
part /data --fstype=ext4 --size=1 --grow
 
# repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100
 
%packages --nobase
@core
%end

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

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