Linux系统自动安装
Linux系统安装类型:
1、手动安装
-
图形化界面安装
-
命令行界面安装
2、自动安装
-
图形化、命令行界面的安装
- 利用kickstart文件脚本加载安装配置信息,安装方式可以为:
本地CDROM
磁盘驱动器
FTP
HTTP
NFS
- 利用kickstart文件脚本加载安装配置信息,安装方式可以为:
注意:Linux的安装程序是由Anaconda程序提供,其中kickstart只是其安装方法的一种,大多的场景可以利用PXE架构方法,实现全自动安装部署方案。
什么是anaconda?
简介:
Anaconda是Red Hat、CentOS、Fedora等Linux的安装管理程序。它可以提供文本、图形等安装管理方式,并支持Kickstart等脚本提供自动安装的功能。此外,其还支持许多启动参数,熟悉这些参数可为安装带来很多方便。该程序是把位于光盘或其他源上的数据包,根据设置安装到主机上的一个程序;为实现该定制安装,其提供一个定制界面,可以实现交互式界面供用户选择配置(如选择语言,键盘,时区等信息)
进入安装步骤的引导方式:
- 光盘小型镜像的网络安装模式
- U盘浮点型镜像的网络安装模式
- PXE的网络安装模式
- 光盘完整镜像的本地安装模式
可用的安装方式:
- 本地CDROM
- 磁盘驱动器
- NFS
- HTTP
- FTP
安装引导的选项
dvd drive : ks=cdrom:/path/to/kickstart_file
hard drive : ks=hd:/device/path/to/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
常规的网络方式可以省去端口,除非有特定指定的端口,才需要添加
Anaconda的支持的启动选项
-
进入启动选项的方法
- 1、到开机引导界面点击
ESC
,就会弹出boot:
的黑色界面窗口,格式如下:- LABEL <命令|方法> #LABEL为光盘中isolinux/isolinux.cfg中定义的标签
- 2、选中相关的label,然后点击
TAB
,编辑选项,直接在后面添加,格式如下:-
vmlinuz initrd=initrd.img ks=cdrom:/ks.cfg ip=" " [......]
注意:也可以将此选项写入到光盘中的isolinux/isolinux.cfg行中的append后面,可以实现自动加载选项,勿需手动输入
-
- 1、到开机引导界面点击
-
支持的启动选项
- 文本方式安装
text
- 与网络相关的引导的选项
ip=ADDR
netmask=NETMASK
gateway=GATEWAY
dns=DNS
- 远程访问功能相关的引导选项
vnc
vncpassword=‘PASSWORD’
- 启动紧急救援模式
rescue
- 装载额外驱动程序
dd
- 指定ks文件
ks=[device]:/PATH
- 文本方式安装
注意:以上选项使用以上进入启动选项的方法1时,需要指定标签,如"linux rescue",进入启动选项的方法2时,不需要指定标签,直接在append后面指明选项,各选项使用空格隔开
什么是kickstart?
简介
kickstart是一个利用Anconda工具实现服务器自动化安装的方法;通过生成的kickstart配置文件ks.cfg,服务器安装可以实现从裸机到全功能服务的的非交互式(无人值守式)安装配置。ks.cfg是一个简单的文本文件,文件包含Anconda在安装系统及安装后配置服务时所需要获取的一些必要配置信息(如键盘设置,语言设置,分区设置等);Anconda直接从该文件中读取必要的配置,只要该文件信息配置正确无误且满足所有系统需求,就不再需要同用户进行交互获取信息,从而实现安装的自动化。
kickstart的优势
- 1、流线化自动化的安装;
- 2、快速大量的裸机部署;
- 3、强制建立的一致性(软件包,分区,配置,监控,安全性)
- 4、减少人为的部署失误
使用Kickstart方法安装的过程:
- 1、创建一个kickstart文件
- 2、创建有kickstart文件的引导介质或者使这个文件在网络上可用;
- 3、筹备一个安装树
- 4、开始ks安装:anconda自身启动 -->选取ks安装模式--> 从ks文件读取配置 --> 最后安装
- 如果使用的是小型cdrom安装方式,为了读取网络安装树做的引导,可以将ks文件放置到光盘上,在光盘isolinux/isolinux.cfg文件中,配置append后添加 ks=cdrom:/ks.cfg(需要将ks.cfg文件放到cdrom的根目录下)
Kickstart文件的配置方法
- vim
- system-config-kickstart
kickstart的配置文件格式
-
1、命令部分(必选项)
- 配置系统的属性及安装中的各种必要设置信息,如语言、键盘类型、时区等信息
-
2、设定需要安装的软件包及包组,Anaconda会自动解决依赖关系
- 使用
%packages
指明开始,%end
指明结束.包组以@
开始标明,软件名可以直接写,但每个之间需要换行
- 使用
-
3、安装前脚本
- 使用
%pre
指明开始,%end
指明结束,将每个命令写一行
- 使用
-
4、安装后脚本
- 使用
%post
指明开始,%end
指明结束,将每个命令写一行
- 使用
Kickstart文件参数说明
-
Install
- 可选,指明此次是全新安装
-
cdrom
- 可选,指明安装源为本地的光驱
-
url
- 可选,指明安装源为远程的ftp、http方式安装
- url --url ftp://
: @install.example.com/iso - url --url http://install.example.com/iso
- url —url=http://172.16.0.1/cobbler/ks_mirror/Centos-6.7-x86_64
-
harddrive
- 可选,指明安装源为本地的硬盘
- harddrive --partition=/dev/sdb2 --dir=/data/iso
-
nfs
- 可选,指明安装源为NFS服务
- nfs --server=192.168.1.254 --dir=/data/iso
-
bootloader
- 设定bootloader安装选项
- bootloader --location=mbr --append=“rhgb quiet” --driveorder=sda,sdb
- --append= 可以指定内核参数
- --driveorder= 设定设备BIOS中的开机设备启动顺序
- --location= 设定引导记录的位置; mbr:默认值;partition:将boot loader安装于包含kernel的分区超级快
-
clearpart
- 在建立新分区前清空系统上原有的分区表,默认不删除分区
- clearpart --all
- clearpart --drives=hda,hdb --all --initlabel
- -all 擦除系统上原有所有分区;
- --drives 删除指定驱动器上的分区
- --initlabel 初始化磁盘卷标为系统架构的默认卷标
- --linux 擦除所有的linux分区
- --none(default)不移除任何分区
-
zerombr
- 可选,清除mbr信息,会同时清空系统原有分区表
-
drivedisk
- 可选,如果使用特殊存储方式时,需要指定驱动程序盘位置以便加载存储驱动
- 1、将驱动盘拷贝到本地硬盘某分区根目录:
- drivedisk
[ --type= ]
- drivedisk
- 2、 也可以指定一个网络位置加载驱动程序盘
- drivedisk --source=ftp://path/to/drive.img
- drivedisk --source=http://path/to/drive.img
- drivedisk --source=nfs:host://path/to/drive.img
- 1、将驱动盘拷贝到本地硬盘某分区根目录:
- 可选,如果使用特殊存储方式时,需要指定驱动程序盘位置以便加载存储驱动
-
firewall
- 可选,配置防火墙选项
- firewall --enable --trust eth0 --trust eth1 --port=80:tcp
- firewall —service=ssh :表示启用防火墙,但行了ssh
- firewall —disabled
- --enable 拒绝外部发起的任何主动连接;
- --disable 不配置任何iptables防御规则;
- --trust 指定完全信任网卡设备;
- --port 使用port:protocol格式指定可以通过防火墙的服务;
-
selinux
- 可选,配置selinux选项,默认选项为enforcing
- selinux [ --disabled|–enforcing|--premissive ]
-
reboot
- 可选,在系统成功安装完成后默认自动重启系统(kickstart方法时);在装系统完成后,会提示按任意键进行重启;在配置中没有指明其他方法时,默认完成就会reboot
-
halt
- 可选,在系统安装完成后关机,默认为reboot
-
graphical
- 可选,安装时使用图形化界面,默认为graphical
-
text
- 可选,安装时使用文本方式界面安装,默认为graphical
-
key
- 设置一个安装码,用于获取redhat的官方支持服务
- --skip,表示跳过key设置,如果不设备会跳到交互模式,让用户选择
-
keyboard
- 设置键盘类型,一般为us
- keyboard us
-
lang
- 设置系统语言,默认为en_US
- lang en_US
-
timezone
- 设置系统时区
- timezone Asia/Shanghai
-
auth
- 设置系统的认证方式
- auth --useshadow --passalgo=sha512
-
rootpw
- 设置root的密码
- rootpw abcde123
- rootpw rootpw --iscrypted $1$iRHppr42$VMesh73wBqhUTjKp6OYOD.
- 可以使用 openssl passwd -1 -salt
openssl rand -hex 4
生成加密的密码串
- 可以使用 openssl passwd -1 -salt
-
network
- 设置主机的网络,在远程安装的模式下,必须指定
- network —onboot no —device eth0 —bootproto dhcp —noipv6
-
service
- 可选,设置禁用或允许列出的服务
- services --disabled autid,cups,smartd,nfslock
- --disabled 设置服务为禁用
- --enabled 启动服务
-
part
-
设置磁盘分区
part /boot --fstype="ext4" --size=200 part pv.008 --size=10240 volgroup vg0 --pesize=8192 pv.008 logvol / --fstype=ext4 --name=root --vgname=vg0 --size=1024 logvol swap --name=swap --vgname=vg0 --size=1024 logvol /usr --fstype=ext4 --name=usr --vgname=vg0 --size=1024 logvol /var --fstype=ext4 --name=var --vgname=vg0 --size=2048 part
|swap|pv.id|rdid.id options mntpoint:挂载点,是在创建普通分区时指定新分区挂载位置的项;挂载点需要格式正确 swap: 创建swap分区; raid.id: 表示创建的分区类型为raid型;必须用id号进行唯一区别; pv.id: 表示所创建的分区类型为LVM型;必须用唯一id号进行区别; --size= 设置分区的最小值,默认单位为M,但是不能写单位; --grow 让分区自动增长利用可用的磁盘空间,或是增长到设置的maxsize值; --maxsize 设置分区自动增长(grow)时的最大容量值,以M为单位,但不能写单位; --onpart=/--usepart= 设置使用原有的分区; --noformat 设置不格式化指定的分区,在跟—onpart一同使用时,可以避免删除原有分区上的数据,在新安装的系统中保留使用数据; --asprimary 强制制定该分区为主分区;若指定失败,分区会失败,导致安装停止; --fstype= 新增普通分区时指定分区的类型,可以为ext2、ext3、ext4、swap、vfat及hfs; --ondisk=/--ondrive= 设定该分区创建在一个具体的磁盘上; --start 指定分区以磁盘上那个磁道开始;需要跟--ondisk参数一块使用; --end 指定分区以磁盘上那个磁道结束;需要跟上述两个参数一起使用; --recommended:让系统自行决定分区的大小;在创建swap分区时,若RAM<2G,则分区大小为2*RAM;若RAM>=2G时,分区大小为RAM+2G; --bytes-pre-inode= 指定分区格式化时inode的大小;默认值为4096 --fsoptions= 指定创建fstab文件时该分区挂载参数项; 例: part /boot --fstype=“ext3” --size=100 part swap --fstype=“swap” –size=512 part / --bytes-pre-inode=4096 --fstype=“ext4”--size=10000 part /data --onpart=/dev/sdb1 --noformat part raid.100 --size=2000 part pv.100 --size=1000
-
使用软件定制kickstart文件
1、yum install system-config-kickstart
2、system-config-kickstart
需依赖于图形环境,确保x window服务运行
Centos 6.7光盘isolinux下文件及作用:
- vmlinuz
- 内核文件
- initrad.img
- 虚根文件系统映像
- isolinux.cfg
- Linux内核引导参数配置文件,定义了启动界面的相关信息,如超时时间(毫秒)、背景颜色、title、内核及虚根的文件位置
- splash.jpg
- 定义了引导界面的图片
- isolinux.bin
- boot.cat
- boot.msg : 引导时的各种提示信息文件
- grub.conf
- mem.test
以小型光盘引导读取远程文件服务器安装树,完成系统自动化安装
1、复制光盘中的isolinux目录到myboot目录下
2、把制作好的ks文件放到isolinux同级目录,名为ks.cfg
3、修改isolinux/isolinux.cfg文件中的append行后添加 ks=cdrom:/ks.cfg
4、退出myboot目录,执行如下命令:
mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "Centos 6 x86_64 Boot" -c isolinux/boot.cat -b isolinux/isolinux.bin -o /root/boot.iso /root/myboot/
5、完成后,加载boot.iso即可以完成安装。
ks.cfg配置实例如下:
# Kickstart file automatically generated by anaconda.
#version=DEVEL
install
url --url="http://172.16.0.1/cobbler/ks_mirror/CentOS-6.7-x86_64/"
text
lang en_US.UTF-8
keyboard us
network --onboot no --device eth0 --bootproto dhcp --noipv6
rootpw --iscrypted $6$yhbmeil2c47tl6x6$BPp9Qcl2kB8u2gJ0GG/RMFwf6Bm98eiFIi4qy7mEcVN.8Dm6gN0ICwK9ibfuv8EkdKinEuuHmS3I6O2EgFw2O/
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 --all
part /boot --fstype=ext4 --size=500
part pv.008002 --grow --size=10240
volgroup vg_zhenping --pesize=4096 pv.008002
logvol / --fstype=ext4 --name=lv_root --vgname=vg_zhenping --grow --size=1024 --maxsize=5120
logvol swap --name=lv_swap --vgname=vg_zhenping --grow --size=1984 --maxsize=1024
#repo --name="CentOS" --baseurl=http://172.16.0.1/fedora-epel/6/x86_64/ --cost=100
%packages
@core
@server-policy
@workstation-policy
%end