Kickstart

1、安装所需软件包  yum -y install createrepo mkisofs isomd5sum

上传centos6.9原始镜像内容

mkdir /mnt/centos   创建挂载目录

mount -o loop centos6.9 /mnt/centos   上传centos6.9镜像并且挂载至centos目录

mkdir /tmp/iso   创建定制目录

cp -r /mnt/centos/.  /tmp/iso    注意要复制整个目录(除了Packages,repodata 目录),尤其是目录下的二个          隐藏文件.discinfo和.treeinfo

或者rsync -a –exclude=Packages –exclude=repodata  /mnt/centos   /tmp/iso

mkdir /tmp/iso/{Packages,repodata}   创建软件包目录和repodata目录

如缺少这二个隐藏文件,会导致安装是找不到disc,如下图:

QQ截图20180326204951

参考当前系统的软件包, 拷贝至定制目录  awk ‘/Installing/ {print $2}’ install.log | xargs -i cp                                    /mnt/centos/Packages/{}.rpm  ./tmp/iso/Packages

install.log文件可以从/root目录下获取,目的是可以删除不必要的rpm包

# 执行createrepo程序生成repodata下的comps.xml文件(重要)

#comps.xml 文件中包含了安装时用户所见到的与rpm相关的所有内容,它会检查Packages下

# 的RPM包的依赖关系,安装时如果缺少依赖包,它会提示您哪个RPM 包需要哪些依赖库。

2、#编辑shell脚本

#!/bin/bash

ISO_DIR=/tmp/iso

cd  ${ISO_DIR}

declare -x discinfo=$(head -1 .discinfo)

cp  /mnt/centos/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目录下。

如果你新增或删除了Packages目录的RPM包,请重新生成comps.xml文件。

3、修改 isolinux.cfg 配置文件,指定 ks 路径

chmod +w  isolinux.cfg

vi /tmp/iso/isolinux/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      如果使用U盘需要改成hd:sdb4:/isolinux/ks.cfg

手动增加kickstart文件

touch /tmp/iso/isolinux/ks.cfg

4、必填项

ks.cfg文件内容:

#表示是安装,而不是升级

install

#文本方式安装

text

graphical  使用图形安装

#使用网络安装

url –url=ftp://ip/centos

#使用光盘安装

cdrom

#使用U盘安装

harddrive –partition=/dev/sdb4 –dir=/      若有多块硬盘,则U盘的盘符可能不是sdb,而是sdd,或sdg或是其          他的等。这里U盘的盘符一定要写对,要不然系统找不到ks.cfg文件。

#如果是RedHat的系统,会要求输入key,这里配置为跳过,如果不配置安装时会停在那里要求用户输入key

key –skip

#使用美式英语

lang en_US.UTF-8

#lang zh_CN.UTF-8

#使用美式键盘

keyboard us

#网络配置

network –device eth0 –bootproto dhcp –noipv6 –hostname qidian    自动获取IP同时设置主机名为qidian

network –bootproto=static –device=eth0 –gateway=192.168.1.1 –ip=192.168.1.252 –netmask=255.255.255.0 –onboot=on  设置静态IP

#root密码

rootpw Aa123456

rootpw –iscrypted $6$6OUksX3K$vWTIM663H    使用加密

#禁用防火墙

firewall –disabled

#禁用selinux

selinux –disabled

#禁用第一次启动时设置系统的向导

firstboot –disable

#用户认证配置,useshadow表示使用本地认证,–passalgo表示密码加密算法

authconfig –enableshadow –passalgo=sha512

#设置时区为上海

timezone –utc Asia/Shanghai

#指明bootloader的安装位置,指明驱动器的排序,指明操作系统安装完成之后,向内核传递的参数

bootloader –location=mbr –driveorder=sda –append=”crashkernel=auto rhgb quiet”

#通常情况下,kickstart安装时跳过了不必要的屏幕显示。该选项可以让安装过程简单地显示每一步的屏幕。autostep多用于调试。

在安装过程中,将每一步的屏幕截图并在安装完成后将这些截图拷贝到/root/anaconda-screenshots目录下。这对写文档非常有帮助

–autoscreenshot

#清除MBR引导记录

zerombr yes     使用 clearpart –all 时,需要加上这个选项,否则安装过程会被暂停,需要手动选择

#清除硬盘上的所有数据

clearpart –all –initlabel

#例如,下面的命令清除了前指定两个驱动器上所有分区

clearpart –drives=sda,sdb –all

#自动创建分区–一个根分区(/)、一个swap分区,以及一个适合体系架构(architecture)的boot分区。如果磁盘驱动器足够大,也会创建/home分区。

选择自动分区机制。必须是lvm, btrfs, plain, thinp中的一个。Plain意味着常规分区,没有btrfs和lvm.

autopart –type=<type>

#自定义分区

#创建一个200M大小的分区挂载/boot类型为ext4

part /boot –fstype=ext4  –size=200 –ondisk=sda

#创建一个2000M大小的SWAP分区

part swap –size=2000 –ondisk=sda

#创建/目录

part / –fstype=ext4 –grow –size=1 –ondisk=sda

–grow   会让逻辑卷使用所有可用空间(若有)

#U盘安装千万不要格式化U盘

part None –fstype efi –label=”Centos_6.9″ –onpart=sdb4 –noformat

#仅有列出的磁盘可以在安装过程中被使用

ignoredisk –only-use=sda

#控制anaconda对系统磁盘的访问。下面的两个选项中可能只有一个被用到。

ignoredisk –drives=[disk1,disk2,…]

#只分区sda硬盘,每个分区后面加上–ondisk=sda

#设置完成之后重启

reboot

#定制软件包

%packages –nobase

@base

@core

#安装前允许自定义脚本

%pre表示系统安装前,此时ISO镜像文件被挂载到内存中Linux的/mnt/source

#安装后运行自定义脚本

%post   在系统安装后执行

–不带参数,其实就是在真实的操作系统里操作。

–nochroot 已安装的真实操作系统被挂载到内存虚拟操作系统中的/mnt/sysimage目录。这个参数的用途主要是配合%pre使用的。先将光盘里的文件copy到内存运行的虚拟操作系统,再从内存虚拟操作系统copy到已安装的真实操作操作。

%post –nochroot

mkdir /media

mount /dev/cdrom /media/

cp /media/test1.txt /mnt/sysimage/root/

%end

上面命令实现了从ISO镜像中拷贝文本文件到安装好的真实操作系统中。

#config service

#自定义服务

service NetworkManager stop

chkconfig NetworkManager off

#执行完毕后重启

#reboot

#结束自动化部署

%end

5、生成iso镜像

mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -o /root/CentOS-6.9-x86_64–minimal.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table /tmp/iso

此时会在 /root/目录创建一个名为CentOS-6.9-x86_64–minimal.iso 的镜像文件

6、生成md5效验码

implantisomd5  CentOS-6.9-x86_64–minimal.iso

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/93168

(4)
ControlControl
上一篇 2018-03-26 20:43
下一篇 2018-03-26 20:44

相关推荐

  • PHP异常处理详解

    PHP异常处理详解          异常处理(又称为错误处理)功能提供了处理程序运行时出现的错误或异常情况的方法。   异常处理通常是防止未知错误产生所采取的处理措施。异常处理的好处是你不用再绞尽脑汁去考虑各种错误,这为处理某一类错误提供了一个很有效的方法,使编程效率大大提高。当异常被触发时,通常会发生:&…

    Linux干货 2015-06-02
  • https介绍

    什么是https HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。SSL目前的版本是3.0,被IETF(Internet Engineering T…

    Linux干货 2017-12-04
  • Linux上命令使用格式及如何获取帮助信息

    Linux系统上命令使用: 命令本身是一个可执行的程序文件,二进制格式的文件,有可能会调用共享库文件,发起一条命令,请求内核将某一个二进制程序运行为一个进程。   命令的语法格式:   ~]#COMMAND(命令)   OPENTIONS(选项)   ARGUMENTS(参数) command 命令…

    Linux干货 2016-10-30
  • 初识Linux基础

    一:计算机的组成及其基本功能 计算机主要由五大基础部件组成:控制器,运算器,存储器,输入设备,输出设备。 1、控制器:计算机的核心组件,协调各程序的运行,对计算机的各项资源进行控制分配; 2、运算器:计算机实现算术运算以及逻辑运算的部件; 3、存储器:计算机用来存放数据和程序的基本部件,存储器由若干存储单元组成,每个存储单元都有一个             …

    Linux干货 2018-03-04
  • Linux下的find命令详解

    Linux下的find命令详解 在linux下有两种查找符合条件文件的命令,是locate和find。我们来说说find这个命令。 find: 实时查找工具,遍历查找指定路径下的所有的文件来找到符合条件的文件。 特点:查找文件比locate速度略慢,查找文件很精确,并且是实时进行查找的。 使用方法:find [OPTIONS] [查找起始路径] [查找条件]…

    Linux干货 2018-03-20
  • 一键获取MySQL账户及相关的权限

    有时候,运维同学可能在做grant授权时候,给的用户权限太高了,有风险。因此,我们接手服务器后有必要检查一遍用户权限。 #!/bin/bash# 一键获取MySQL账户及相关的权限 user=’root’ password=’123456′ MYSQL_CMD=’/usr/local/mysql/b…

    Linux干货 2017-05-07