64、自动化系统部署

时间:2023-02-15 15:10:21
系统安装过程
Linux系统安装过程

加载boot loader-加载启动安装菜单-加载内核和initrd文件-加载根系统-运行anaconda的安装向导

linux安装镜像中的文件

在系统光盘isolinux目录下有和安装相关的文件

1、boot.cat 相当于grub的第一阶段
2、isolinux.bin 光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于syslinux项目
3、isolinux.cfg 启动菜单的配置文件,当光盘启动(即运行isolinux.bin),会自动去找isolinux.cfg文件
4、vesamenu.c32 是光盘启动后的启动菜单图形界面,也属于syslinux项目,menu.c32提供存文本菜单
5、memtest 内存检测程序
6、splash.png 光盘启动菜单界面背景图
7、vmlinuz 内核映像
8、initrd.img ramfs文件

64、自动化系统部署

安装菜单的内核参数

isolinux/isolinux.cfg加载内核参数

加载内核 isolinux/vmlinuz
向内核传递参数 append initrd=initrd.img 参数设置

64、自动化系统部署

在启动菜单界面,选中一种安装方法,按tab键,在后面增减参数
在启动菜单界面,选中一种方案,按esc键,boot:linux 参数设置
常见内核参数
text:默认启动GUI安装接口,可以指定文本方式的安装界面
rescue:进入救援模式
inst.repo=path:指定安装源文件的路径,可以是以下格式
Centos 6
DVD drive repo=cdrom :device
Hard Drive repo=hd:device/path
HTTP Server repo=http://host/path
HTTPS Server repo=https://host/path
FTP Server repo=ftp://username:password@host/path
NFS Server repo=nfs:server:/path
ISO images on an NFS Server repo=nfsiso:server:/path
Centos 7
Any CD/DVD drive inst.repo=cdrom
Hard Drive inst.repo=hd:device:/path
HTTP Server inst.repo=http://host/path
HTTPS Server inst.repo=https://host/path
FTP Server inst.repo=ftp://username:password@host/path
NFS Server inst.repo=nfs:[options:]server:/pathaskmethod:选择安装源文件的获取方法,提供了光盘,本地硬盘,NFS,FTP,HTTP多种安装源,此项Centos 7 以后版已废弃
ks=path: 指定自动化安装应答文件路径,如:initrd=initrd.img inst.ks=http://192.168.8.8/ksdir/ks8.cfg
ip= : 指定IP地址信息
ip=method,method 可以为dhcp
ip=interface:method 指定特定接口
ip=ip::gateway:netmask:hostname:interface:none 静态IP
自动应答文件kickstart

kickstart文件格式说明

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

keyboard: 设定键盘类型
lang: 语言类型
zerombr:清除mbr
clearpart:清除分区
part: 创建分区
rootpw: 指明root的密码
timezone: 时区
text: 文本安装界面
network:指定网络设置
firewall:设置防火墙设置
selinux:设置selinux设置
reboot:安装完自动重启
user:安装完成后为系统创建新用户
url: 指明安装源

程序包段:指明要安装的程序包

%packages
@^environment group: 指定环境包组,如:@^minimal-environment
@group_name
package
-package
%end

脚本段

%pre: 安装前脚本
%post: 安装后脚本

注意:CentOS 8,7,6 不同版本的kickstart文件格式不尽相同,不可混用;%addon, %packages, %onerror, %pre 、 %post 必须以%end结束,否则安装失败

kickstart文件创建

创建kickstart文件的方式

可使用创建工具:system-config-kickstart ,注意:此方法 CentOS 8 不再支持

依据某模板修改并生成新配置,CentOS安装完后,会自动参考当前系统的安装过程,生成一个kickstart文件 /root/anaconda-ks.cfg

使用 ksvalidator 工具可以检查kickstart的文件格式是否有语法错误,来自于 pykickstart 包

格式:ksvalidator /PATH/TO/KICKSTART_FILE

yum install system-config-kickstart
执行system-config-kickstart

64、自动化系统部署

64、自动化系统部署

#Basic Configuration
========================================================
#platform=x86, AMD64, or Intel EM64T
#Default Language默认语言
│lang en_US
# Keyboard 键盘
│keyboard 'us'2. Installation Method
# timezone 时区(勾选了"Use UTC clock" 会追加[--isUtc])
│timezone Asia/Shanghai
# Root password
│rootpw --iscrypted $1$DBk7xfJp$Agxd303XUAfRKIf7gB8DG/
└──────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────┐
#Advanced Configuration
│勾选就有,不勾没有
========================================================
# Reboot after installation
│reboot
# Use text mode install
│text

64、自动化系统部署

#Installation Method
========================================================
# Install OS instead of upgrade
│install
# Upgrade existing installation
│upgrade
└────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────┐
#Installation source
│选了哪项就写哪项
# Use CDROM installation media
│cdrom3. Boot Loader Options
# Use NFS installation media
│nfs --server=服务器 --dir=目录
# Use network installation
│url --url="ftp://用户名:密码@服务器/目录"
# Use network installation
│url --url="http://服务器/目录"
# Use hard drive installation media
│harddrive --dir=目录 --partition=分区

64、自动化系统部署

#Installation Method&GRUB options&Install Options
=================================================================
│ ┌────────────────────────────────────┐
│ │ 选择了Do not install a boot loader │
│ └────────────────────────────────────┘
# System bootloader configuration
│ bootloader --location=none

│ ┌────────────────────────────────────┐
│ │ 选择了install new boot loader │
│ └────────────────────────────────────┘
│ bootloader --append="ker" --location=mbr --password="123"
#append是内核参数,location是bootloader安装位置,password是GRUB密码

64、自动化系统部署

# Master Boot Record
#Master Boot Record选择了clear... 否则就没有
======================================================
# Clear the Master Boot Record
│zerombr
└─────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────┐
# Partitions&Disk Label
======================================================
# Partition clearing information
│clearpart --linux --initlabel
# Layout 分区
│part 挂载点 --fstype=文件系统 --size=大小(单位M)
======================================================
# Disk partitioning information
│part / --fstype="xfs" --size=10240
│part /boot --fstype="ext4" --size=1024
│part swap --fstype="swap" --size=2048

64、自动化系统部署

Network Configuration
│Centos7如果要写eth0,要加内核参数net.ifnames=0
======================================================
# Network information
│network --bootproto=dhcp --device=eth0

64、自动化系统部署

# Authentication
│如果勾选Enable Fingerprint reader则追加参数 --enablefingerprint
===============================================================
# System authorization information
│auth --useshadow --passalgo=md5

64、自动化系统部署

# Firewall Configuration
===============================================================
# SELinux configuration
│selinux --disabled或permissive或enforcing
│ │
# Firewall configuration
│firewall --disabled或enabled
#如果是enable,可以在追加:--http --ftp --telnet --smtp --ssh
#还可以追加端口:--port=555:tcp,444:udp

64、自动化系统部署

# Display Configuration
===============================================================
│如果选了安装图形界面,就没有下面这句话
# Do not configure the X Window System
│skipx
# Run the Setup Agent on first boot
│firstboot --enable或disable

64、自动化系统部署

如果你的界面是什么都没有,那么需要把你现使用的yum仓库配置文件改一下
[root]#vim /etc/yum.repos.d/***.repo
[development]
#把原来"[]"内的内容改成development就可以了,其它不变

配置文件如下
%packages
@development
-byacc
-cscope
-ctags
-diffstat
-doxygen
-elfutils
-gcc-gfortran
-git
-indent
-intltool
-patchutils
-rcs
-subversion
-swig
-systemtap
%end


64、自动化系统部署

%pre
i am pre
%end

64、自动化系统部署

%post --nochroot
i am post
%end
制作引导光盘

可以将定制安装光盘,并结合kickstart实现基于光盘启动的半自动化安装

64、自动化系统部署

64、自动化系统部署

将应答文件放入到iso文件中

vim /data/myiso/isolinux/isolinux.cfg
cp /root/ks.cfg myiso/



#方法1:应答方件放在ISO文件里
label linux
menu label ^Auto Install CentOS Linux 8
kernel vmlinuz
initrd=initrd.img text ks=cdrom:/ks.cfg
#方法2:应答方件放在http服务器上
label linux
menu label ^Auto Install CentOS Linux 8
kernel vmlinuz
append initrd=initrd.img quiet ks=http://10.0.0.8/ksdir/centos8.cfg
label rescue
menu label ^Rescue a CentOS Linux system
kernel vmlinuz
append initrd=initrd.img inst.repo=http://10.0.0.8/centos/8 rescue quiet
label local
menu default
menu label Boot from ^local drive
localboot 0xffff

制作iso文件

mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --bootinfo-table -V "CentOS 8.0 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso /mnt1/myiso/

64、自动化系统部署

64、自动化系统部署

mkisofs选项说明

64、自动化系统部署