很多朋友也都使用光盘安装过操作Centos操作系统,光盘启动之后也就会给一个选择界面一步一步的选择好之后就开始正式安装了,如果是安装一台服务器的操作系统,这样也倒好说,如果等着我们安装的是成百上千的时候,还能这样一台的去手动选择第一个台的配置选项吗,很显然这样操作是很愚蠢的,所以我们能否让它按着一个标准划的模板自动化去配置后进行安装了。Centos系列的操作系统的光盘安装管理器anaconda已经给我们提供了这一功能,只是大家没有去做过多的研究罢了,那么今天就带大家来了解一下如何使用anaconda实现一些自动化安装过程。
一、光盘安装的启动过程:
bootloader――>kernel(initramfs)――>anaconda(自动化安装管理程序)
anaconda:tui基于cureses的文本配置界面
gui基于图形界面
MBR:boot.cat
stage2:isolinx/isolinux.bin
配置文件:isolinux/isolinux.cfg(菜单文件)
每个对应的菜单选项:
加载内核:isolinux/vmlinuz
向内核传递参数:append initrd=initrd.img
装载根文件系统,并启动anaconda(默认界面是gui,使用gui,RAM>=512MB)
如若需要启动tui界面,需要向内核传递参数text即可
手动启动tui:光盘启动菜单――>按ESC键――>输入:linux text――>按ENTER键启动即可
二、anaconda的工作过程:
(一)安装前配置阶段
1,操作系统使用的语言
2,键盘类型
3,安装目标存储设备
basic storage:本地磁盘
Special storage:指定其它存储设备
4,设定主机名
5,配置网络接口
6,设定时区
7,设定管理密码
8,设定分区方式及MBR安装位置
9,选择安装模式(图形界面|字符界面)以及仓库位置
(二)安装阶段
1,在目录磁盘创建分区并执行格式化
2,安装选定模式所包含的程序包
3,安装bootloader
三、安装的最后阶段:首次启动――>(图形界面)配置iptables、selinux、coredump
四、anaconda的配置方式:
1,交互式配置方式
kickstart文件生成工具:system-config-kickstart
kickstart文件语法检查工具:ksvaliadator
五、安装引导选项:
(一)ks:指明kickstart文件的路径
DVD drive:ks=cdrom:/path/to/kickstart_file
hard drive:ks=hd:/dev/sd#/path/to/kickstart_file
http server:ks=http://host[:port]/path/to/kickstart_file
https server:ks=https://host[:port]/path/to/kickstart_file
ftp server:ks=ftp://host[:port]/path/to/kickstart_file
(二)kickstart文件格式:
1、命令段:指定各种安装前配置选项,如键盘类型、时区等
2、程序包段:指明要安装的程序包、包组、,也包括不安装的程序包
%packages 程序包段起始符
@group_name 安装的包组
package 安装的包
-package 不安装的包
%end 程序包段结束符
3、脚本段:
%pre 安装前执行的脚本
运行环境:安装介质上的微型linux系统环境,只能运行简单命令
%post 安装后执行的脚本
运行环境:安装完成的系统,命令可以写的比较复杂
4、命令段中的必备命令:
authconfig:认证方式配置
authconfig --enableshadow --passalgo=sha512
bootloader:定义bootloader的安装位置及相关配置
bootloader --local=mbr --driveorder=sda --addend="crashkernel=auto rhgb quiet"
keyboard:设置键盘类型
keyboard us
lang:语言类型
lang zh_CN.UTF-8
part:分区布局
part /boot --fstype=ext4 --size=500
part pv.008002 --size=51200
rootpw:管理员密码
rootpw --iscrypted $6$OxcPHgKqhYOJeoEV$x/STAbkJOh7ULnlo1RCik
如何生成加密密码:openssl passwd -1 -salt `openssl rand -hex 4`
timezone:时区设定
timezone Asia/Shanghai --isUtc --nontp
补充:分区相关的其它指令
clearpart:清除分区
clearpart --none --drives=sda 清空磁盘分区
volgroup:创建卷组
volgroup myvg --peesize=4096 pv.008002
logvol:创建逻辑卷
logvol /home --fstype=ext4 --name=lv-home --vgname=myvg --size=5120
5、可选命令:
install OR upgrade:安装或升级
test:安装界面类型 text为tui 默认为gui
network:配置网络接口
network --onboot yes --device eth0 --bootproto dhcp --noipv6
firewall:防火墙
firewall --disabled
selinux:linux安全策略
selinux --disabled
(三)系统安装完成之后禁用防火墙
Centos 6:
service iptables stop
chkconfig iptables off
Centos 7:
systemctl stop firewalld
systemctl disable firewall
(四)系统安装完成后禁用selinux:
编辑/etc/sysconfig/selinux/或/etc/selinux/config文件
修改selinux参数为disabled或permissive
获取selinux当前状态:getenforce
立即生效方式:setforce=0
(五)repo:指明安装时使用的仓库
repo --name=“Centos” --baseurl=cdrom:sr0 --cost=100
url --url=http://10.10.1/cobbler/ks_mirror/centos-6.8-x86-64/
halt、poweroff或reboot:安装完成之后的行为
参考官方文档:《Installation Guide》
六、手工制作linux引导光盘:
1,复制官方光盘下的isolinux目录到/root/myiso目录
2,添加写入权限给/root/myiso/isolinux的所有文件
3,修改/root/myiso/isolinux目录下的isolinux.cfg文件,append initrd=initrd.img后面添加一个参数ks=cdrom:/ks.cfg
4,制作kickstart自动应答配置文件,放置于myiso目录下,指定repo使用网络仓库
5,将/root/myiso目录制作成ISO文件
mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "mybootcd" -c isolinux/boot.cat -b isolinux/isolinux.bin -o root/mybootcd.iso mysio
当然这也只是使用光盘启动安装管理器anconda之后,使用ks自动应答文件实现了一个半自动化安装的效果,当然我们完全可以使用网卡的PXE模块,直接连接网络,通过提前已经搭建好的DHCP服务器自动分配一个IP地址,再次连接上系统镜像服务器实现全自动化的无人值守安装,光盘启动这一过程也就完全免掉了。当然在后续的服务器板块中我也会给大家分享的,敬请期待。