首页 > 代码库 > linux基础学习第二十一天之自动化安装linux系统(kickstart)

linux基础学习第二十一天之自动化安装linux系统(kickstart)

内容:

利用kickstart进行自动化安装linux系统

制作光盘、U盘启动盘

一、系统自动化安装

1、anaconda

由前面的学习我们知道,系统的启动流程:

bootloader-->kernel(initramfs)-->rootfs-->/sbin/init

所以,bootloader完全可以由光盘来进行引导,在引导的过程中在借助kickstart来进程自动安装

Anaconda是RedHat、CentOS、Fedora等Linux的安装管理程序。它可以提供文本、图形等安装管理方式,并支持Kickstart等脚本提供自动安装的功能。

此外,其还支持许多启动参数,熟悉这些参数可为安装带来很多方便。该程序的功能是把位于光盘或其他源上的数据包,根据设置安装到主机上。

为实现该定制安装,它提供一个定制界面,可以实现交互式界面供用户选择配置(如选择语言,键盘,时区等信息)。Anaconda的大部分模块用Python编写,有少许的载入模块用C编写。


2、kickstart文件的格式可以分为三个部分

命令段:指明各种安装前配置,如键盘类型等;

程序包段:指明要安装的程序包组或程序包,不安装的程序包等;

%packages

@group_name

package

-package

%end

脚本段:

%pre: 安装前脚本

运行环境:运行于安装介质上的微型Linux环境

%post: 安装后脚本

运行环境:安装完成的系统;

Anaconda支持的管理模式: 

(1)Kickstart提供的自动化安装; 

(2)对一个RedHat实施upgrade; 

(3)Rescuse模式对不能启动的系统进行故障排除。 

要进入安装步骤,需要先有一个引导程序引导启动一个特殊的Linux安装环境系统;引导有多种方式: 

(1)基于网络方式的小型引导镜像,需要提供小型的引导镜像; 

(2)U盘引导,通过可引导存储介质中的小型引导镜像启动安装过程;  

(3)基于PXE的网络安装方式,要提供PXE的完整安装环境; 

(4)其他bootloder引导(如GRUB)。 

可用的安装方式:本地CDROM、硬盘驱动器、网络方式(NFS、FTP、HTTP)。 

3、kickstart文件创建

创建kickstart文件的方式:

(1) 直接手动编辑;

依据某模板修改:

在系统安装完成后都会在/root/目录下生成一个anaconda-ks.cfg的配置,配置记录了安装系统的选项和参数:

[20:29 root@Centos6.8~]# cat anaconda-ks.cfg 
# Kickstart file automatically generated by anaconda.
#version=DEVEL
install
cdrom
lang en_US.UTF-8
keyboard us
network --onboot no --device eth0 --bootproto dhcp --noipv6
rootpw  --iscrypted $6$dC0KOoM3deDYui88$dudZzmHQdSg.J.pQkxe1XSxC4Plkq/DEMO1Pj/PBBJEh/GvdZQ1HzFp4LXbvEO5bWhhmEiAuweoLqvCHMxu0J.
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --enforcing
timezone --utc Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --none
#part /boot --fstype=ext4 --size=200
#part / --fstype=ext4 --size=50000
#part /testdir --fstype=ext4 --size=20000
#part swap --size=4000
repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100
%packages
@base
@core
@debugging
@basic-desktop
@desktop-debugging
@desktop-platform
@directory-client
@fonts
@general-desktop
@graphical-admin-tools
@input-methods
@internet-applications
@internet-browser
@java-platform
@kde-desktop
@legacy-x
@network-file-system-client
@office-suite
@print-client
@remote-desktop-clients
@server-platform
@server-policy
@workstation-policy
@x11
mtools
pax
python-dmidecode
oddjob
wodim
sgpio
genisoimage
device-mapper-persistent-data
abrt-gui
qt-mysql
samba-winbind
certmonger
pam_krb5
krb5-workstation
xterm
xorg-x11-xdm
libXmu
rdesktop

(2) 可使用图形化的创建工具:system-config-kickstart(该工具系统没有自带,需要安装system-config包)

推荐使用图形化的工具来进行创建:

在图形终端输入命令:system-config-kickstart来运行kickstart脚本创建向导

技术分享

输入要安装的linux镜像文件的位置,支持多种方式

技术分享

grub选项

技术分享

提前做好分区计划

技术分享

配置网络信息

技术分享

配置其他选项

技术分享

选择需要安装的软件包

技术分享

可编写系统安装前后的脚本

技术分享

重要的一步:在光盘启动时,按esc键进入boot模式,输入kickstart的配置文件路径

技术分享

回车后自动安装

技术分享


编写完成后自动生成的kickstart脚本如下:

[21:09 root@Centos6.8~]# cat mylinux-ks.cfg 
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
url --url="http://10.1.0.1/cobbler/ks_mirror/CentOS-6-x86_64/"
# Root password
rootpw --iscrypted $1$LY.D8e4v$UnqW3SAJSZyg9hxr.YjAo/
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --enforcing
# Do not configure the X Window System
skipx
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone --isUtc Asia/Shanghai
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all  
# Disk partitioning information
part / --fstype="ext4" --size=20000
part /boot --fstype="ext4" --size=200
part swap --fstype="swap" --size=4000
%post
echo "welcome to use mylinux" >> /etc/issue
echo -e "[base]\nbaseurl=/msic/cd\ngpgcheck=0" > /etc/yum.repo.d/base.repo
%end
%packages
@base
@basic-desktop
@desktop-debugging
@desktop-platform
@fonts
@general-desktop
@graphical-admin-tools
@input-methods
@kde-desktop
@legacy-x
@remote-desktop-clients
@x11
%end



4、kickstart文件使用(自动安装系统):

挂载光盘进入救援模式,在选择菜单出按esc间,进入命令模式,输入kickstart文件的位置:linux ks=

eg.

DVD drive: ks=cdrom:/PATH/TO/KICKSTART_FILE

Hard drive: ks=hd:device:/directory/KICKSTART_FILE

HTTP server: ks=http://host:port/path/to/KICKSTART_FILE

FTP server: ks=ftp://host:port/path/to/KICKSTART_FILE

HTTPS server: ks=https://host:port/path/to/KICKSTART_FILE

NFS server:ks=nfs:host:/path/to/KICKSTART_FILE

二、制作光盘和U盘启动盘

创建引导光盘:

#cp/media/cdrom/isolinux/ /tmp/myiso/

#vi /tmp/myiso/isolinux/isolinux.cfg

initrd=initrd.imgtext ks=cdrom:/myks.cfg

#cp/root/myks.cfg/tmp/myiso/

#cd /tmp

# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.6 x86_64 boot" -b isolinux/isolinux.bin-c isolinux/boot.cat -o /root/boot.isomyiso/

  创建U盘启动盘

#ddif=/dev/sr0 of=/dev/sdb


本文出自 “6638225” 博客,转载请与作者联系!

linux基础学习第二十一天之自动化安装linux系统(kickstart)