2018-06-03 运维自动化之系统安装 1

1、安装程序

CentOS系统安装
系统启动流程:
bootloader-->kernel(initramfs)-->rootfs-->/sbin/init
anaconda: 系统安装程序
gui:图形窗口
tui: 基于图形库curses的文本窗口

2、安装程序启动过程

MBR:isolinux/boot.cat ---之所以可以用光盘启动是因为在光盘目录下有这个文件,相当于硬盘的MBR
stage2: isolinux/isolinux.bin ----当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件
配置文件:isolinux/isolinux.cfg ---是isolinux.bin的配置文件
每个对应的菜单选项:
加载内核:isolinuz/vmlinuz
向内核传递参数:append initrd=initrd.img...
装载根文件系统,并启动系统安装程序anaconda
默认启动GUI接口
若是显式指定使用TUI接口:向内核传递text参数即可
(1)按tab键,在后面增加text
(2)按ESC键:在boot:后面加 linux text
进入救援模式的几种方式:
第一种直接在光盘引导界面下进入救援模式
第二种在光盘引导界面下的第一行按tab键,输入rescue ---相当于直接在isolinux.cfg文件中label linux中的 append initrd=initrd.img后面加内核参数rescue
第三种在光盘引导界面下按ESC,输入linux rescue ---相当于直接在isolinux.cfg文件中label linux后面加recure,也就是加内核参数

3、anaconda工作过程

Anaconda安装系统分成三个阶段:
安装前配置阶段
安装过程使用的语言
键盘类型
安装目标存储设备
Basic Storage:本地磁盘
特殊设备:iSCSI
设定主机名
配置网络接口
时区
管理员密码
设定分区方式及MBR的安装位置
创建一个普通用户
选定要安装的程序包
安装阶段
在目标磁盘创建分区,执行格式化操作等
将选定的程序包安装至目标位置
安装bootloader和initramfs
图形模式首次启动
iptables
selinux
core dump

4、系统安装

启动安装过程一般位于引导设备;后续的anaconda及其安装用到的程序包等可来自下面几种方式:
本地光盘
本地硬盘
NFS:远程存储设备
URL:ftp server: yum repository、http server: yum repostory
如果想手动指定安装源:
boot: linux askmethod
anaconda的配置方式:
(1) 交互式配置方式
(2) 通过读取事先给定的配置文件自动完成配置
按特定语法给出的配置选项
kickstart文件
安装boot引导选项:boot:
text: 文本安装方式
askmethod: 手动指定使用的安装方法
与网络相关的引导选项:

ip=IPADDR
netmask=MASK
gateway=GW
dns=DNS_SERVER_IP
ifname=NAME:MAC_ADDR

指明kickstart文件的位置:ks=

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

系统安装过程总结:isolinux/boot.cat(相当于硬盘的mbr)----->isolinux/isolinux.bin(光盘引导程序)---->读取isolinux/isolinux.cfg---->加载内核:isolinuz/vmlinuz并向内核传递参数:append initrd=initrd.img...---->装载根文件系统----->启动anaconda系统安装程序

5、kickstart文件的格式

命令段:指明各种安装前配置,如键盘类型等
程序包段:指明要安装的程序包组或程序包,不安装的程序包等
%packages
@group_name
package
-package
%end
脚本段:
%pre: 安装前脚本
运行环境:运行于安装介质上的微型Linux环境
%post: 安装后脚本
运行环境:安装完成的系统

命令段中的命令:
必备命令
authconfig: 认证方式配置
authconfig --useshadow --passalgo=sha512
bootloader:bootloader的安装位置及相关配置
bootloader --location=mbr--driveorder=sda–
append="crashkernel=auto rhgbquiet"
keyboard: 设定键盘类型
lang: 语言类型
part: 创建分区
rootpw: 指明root的密码
timezone: 时区
可选命令
install OR upgrade
text: 文本安装界面
network
firewall
selinux
halt
poweroff
reboot
repo
user:安装完成后为系统创建新用户
url: 指明安装源
key –skip 跳过安装号码,适用于rhel版本

6、kickstart文件创建

创建kickstart文件的方式:
直接手动编辑
依据某模板修改
可使用创建工具:system-config-kickstart ---必须在图形界面下使用此命令
依据某模板修改并生成新配置
/root/anaconda-ks.cfg
检查ks文件的语法错误:ksvalidator
ksvalidator/PATH/TO/KICKSTART_FILE

7、系统光盘中isolinux目录列表

solinux.bin:光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目
isolinux.cfg:isolinux.bin的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件
vesamenu.c32:是光盘启动后的安装图形界面,也属于SYSLINUX项目,menu.c32版本是纯文本的菜单
Memtest:内存检测,这是一个独立的程序
splash.jpg:光盘启动界面的背景图
vmlinuz是内核映像
initrd.img是ramfs (先cpio,再gzip压缩)

8、制作引导光盘和U盘

创建引导光盘:
cp -r /misc/cd/isolinux/ /tmp/myiso/
vim /tmp/myiso/isolinux/isolinux.cfg
initrd=initrd.img text 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.9 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.isomyiso/
注意:以上命令的路径都是相对于光盘的根,而和工作目录无关
创建U盘启动盘
dd if=/dev/sr0 of=/dev/sdb
mkisofs选项
-o 指定映像文件的名称。
-b 指定在制作可开机光盘时所需的开机映像文件。
-c 制作可开机光盘时,会将开机映像文件中的no-eltorito-catalog 全部内容作成一个文件。
-no-emul-boot 非模拟模式启动。
-boot-load-size 4 设置载入部分的数量
-boot-info-table 在启动的图像中显示信息
-R 或-rock 使用Rock RidgeExtensions
-J 或-joliet 使用Joliet 格式的目录与文件名称
-v 或-verbose 执行时显示详细的信息
-T 或-translation-table 建立文件名的转换表,适用于不支持Rock Ridge Extensions 的系统上

9、用kickstart文件自动安装centos6.9系统实验

1、生成mkstart文件
在图形界面下输入命令system-config-kickstart,按照如下图所示进行操作


2018-06-03 运维自动化之系统安装 1_第1张图片
image.png

2018-06-03 运维自动化之系统安装 1_第2张图片
image.png

也可以对gurb设置密码,也就是设置进单用户密码,这里为了方便就不设置了


2018-06-03 运维自动化之系统安装 1_第3张图片
image.png

创建分区
2018-06-03 运维自动化之系统安装 1_第4张图片
image.png

2018-06-03 运维自动化之系统安装 1_第5张图片
image.png

2018-06-03 运维自动化之系统安装 1_第6张图片
image.png

2018-06-03 运维自动化之系统安装 1_第7张图片
image.png

2018-06-03 运维自动化之系统安装 1_第8张图片
image.png

2018-06-03 运维自动化之系统安装 1_第9张图片
image.png

2018-06-03 运维自动化之系统安装 1_第10张图片
image.png

2018-06-03 运维自动化之系统安装 1_第11张图片
image.png

点击file保存和退出既可以生成kickstart文件。
生成的kickstart文件如下

[root@centos6 app]#cat 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://172.18.21.106/centos6"  ---基于网络路径安装,也就
后面安装的时候安装的各种包和包组来自哪里,这里是自己搭建的一
个http服务,在/var/www.html/目录下创建了一个centos6目录,将光
盘挂载到这个目录下,当成安装源,也可以在网络上找各种centos安
装源,比如搜狐、阿里云等
# Root password
rootpw --plaintext 123456ab
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone  Asia/Shanghai
# Network information
network  --bootproto=static --device=eht0 --gateway=172.18.0.1 --ip=172.18.21.100 --netmask=255.255.0.0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record  ---清空原有的mbr
zerombr
# Partition clearing information  ---清空分区信息
clearpart --all --initlabel 
# Disk partitioning information   ---设置分区
part /boot --fstype="ext4" --size=500
part / --fstype="ext4" --size=50000
part /app --fstype="ext4" --size=40000
part swap --fstype="swap" --size=2048

%post   ---安装后脚本
rm /etc/yum.repos.d/*
cat >/etc/yum.repos.d/base.repo<

2、搭建一个hhtp服务或者ftp服务,将生成的kickstart文件存放到网络路径下,这里使用http服务,比如/var/www/html/anacondam目录下,centos7中用命令生成kickstarts文件时,要把yum仓库的名称[base]改为[development]才能看到安装的包,如果不更改yum仓库的名称如下图所示,是看不到安装包的。

2018-06-03 运维自动化之系统安装 1_第12张图片
image.png

3、新建一个虚拟机,挂载centos6.9的光盘做为启动光盘,然后进行如下界面设置
2018-06-03 运维自动化之系统安装 1_第13张图片
image.png

2018-06-03 运维自动化之系统安装 1_第14张图片
image.png

总结:centos6.9的自动化安装和centos7.3中,不同的是centos7.3虚拟机的内存要大于1G才能安装。不然安装的时候会出问题。

10、制作引导光盘和U盘

生成kickstart文件后要有引导光盘才能安装系统,上述方法安装系统时用的是系统光盘做为引导,下面我们将制作一个引导光盘和U盘做为引导来自动安装系统。
1、将光盘isolinux目录中的内容拷贝到/app/isolinux目录下,并定制引导界面

[root@centos6 ~]#cd /misc/cd/isolinux/
[root@centos6 isolinux]#ls
boot.cat  boot.msg  grub.conf  initrd.img  isolinux.bin  isolinux.cfg  memtest  splash.jpg  TRANS.TBL  vesamenu.c32  vmlinuz
[root@centos6 isolinux]#mkdir /app/isolinux
[root@centos6 isolinux]#cp * /app/isolinux   ---把光盘isolinux/目录里
面的文件拷贝到这个目录下
[root@centos6 isolinux]#vim isolinux.cfg ---定制安装界面,可以以原
来光盘里面的安装界面为模板进行修改,修改后格式如下
2018-06-03 运维自动化之系统安装 1_第15张图片
image.png

主要修改标签行,并在内核参数处指明ks文件的路径,kickstart文件可以用命令生成,也可以自己修改。
2、将引导文件制作成iso镜像文件

[root@centos6 isolinux]#mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.9 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/centos6.9_boot.iso /app/myiso/ ----将/app/目录中的内容制作成
iso镜像文件,并保存为 /root/centos6.9_boot.iso文件
[root@centos7 app]#tree
.
└── isolinux
    ├── boot.cat
    ├── boot.msg
    ├── grub.conf
    ├── initrd.img
    ├── isolinux.bin
    ├── isolinux.cfg
    ├── memtest
    ├── splash.png
    ├── TRANS.TBL
    ├── vesamenu.c32
    └── vmlinuz

这里需要注意的是目录结构, 从光盘拷贝的文件的文件要放到
isolinux目录下,至于它的父目录是谁,不做要求,但制作镜像文件的
时候,命令中要制作成镜像文件的目录为isolinux的父目录
3、将 /root/centos6.9_boot.iso镜像文件导出
4、新建一个虚拟机或者在原来虚拟机上将这个镜像文件光盘挂载上
5、开启虚拟机,进入如下图界面就可以自动安装了


2018-06-03 运维自动化之系统安装 1_第16张图片
image.png

如果要创建U盘启动,这里新加了一块硬盘来模拟U盘。在虚拟机上新加一块硬盘,进行如下操作

[root@centos6 isolinux]#!echo
echo '- - -' >/sys/class/scsi_host/host2/scan 
[root@centos6 isolinux]#lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  5.8G  0 rom  /media/CDROM
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0 1000M  0 part /boot
├─sda2   8:2    0 48.8G  0 part /
├─sda3   8:3    0 39.1G  0 part /app
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    2G  0 part [SWAP]
sdb      8:16   0  100G  0 disk 
sdc      8:32   0  150G  0 disk 
sdd      8:48   0   80G  0 disk 
sr1     11:1    1  7.7G  0 rom  /media/CentOS 7 x86_64
sde      8:64   0   20G  0 disk 
[root@centos6 isolinux]#cd 
[root@centos6 ~]#ls
anaconda-ks.cfg   Desktop    Downloads    install.log.syslog  Music     Public     Videos
centos6_boot.iso  Documents  install.log  mbr                 Pictures  Templates
[root@centos6 ~]#dd if=centos6_boot.iso of=/dev/sde   ---如果/dev/sde换成U盘,操作相同,也可以用cp命令
91372+0 records in
91372+0 records out
46782464 bytes (47 MB) copied, 0.997652 s, 46.9 MB/s

将硬盘拆除后安装到另外一个虚拟机上,然后开机后进行如下设置。进入entersetup,进入硬盘驱动,将新装的硬盘设置为第一个启动。


2018-06-03 运维自动化之系统安装 1_第17张图片
image.png

2018-06-03 运维自动化之系统安装 1_第18张图片
image.png

2018-06-03 运维自动化之系统安装 1_第19张图片
image.png

11、DHCP服务

DHCP: (Dynamic Host Configuration Protocol)动态主机配置协议,传输层协议,UDP协议
主要用途:
用于内部网络和网络服务供应商自动分配IP地址给用户
用于内部网络管理员作为对所有电脑作集中管理的手段
DHCP共有八种报文
1、DHCP DISCOVER:客户端到服务器
2、DHCP OFFER :服务器到客户端
3、DHCP REQUEST:客户端到服务器
4、DHCP ACK :服务器到客户端
5、DHCP NAK:服务器到客户端,通知用户无法分配合适的IP地址
6、DHCP DECLINE :客户端到服务器,指示地址已被使用
7、DHCP RELEASE:客户端到服务器,放弃网络地址和取消剩余的租约时间
8、DHCP INFORM:客户端到服务器,客户端如果需要从DHCP服务器端获取更为详细的配置信息,则发送Inform报文向服务器进行请求,极少用到
续租
50% :租赁时间达到50%时来续租,刚向DHCP服务器发向新的DHCPREQUEST请求。如果dhcp服务没有拒绝的理由,则回应DHCPACK信息。当DHCP客户端收到该应答信息后,就重新开始新的租用周期
87.5%:如果之前DHCP Server没有回应续租请求,等到租约期的7/8时,主机会再发送一次广播请求
同网段多DHCP服务
DHCP服务必须基于本地
先到先得的原则
相关协议
Arp 地址解析协议,把ip地址解析成mac地址
rarp 反向的,把mac地址解析成ip地址
跨网段
RFC 1542 Compliant Routers:符合1542标准的路由器是允许dhcp广播通过的,这种路由器就不需要中继器了。
dhcrelay: 中继 ---中继器就是个dhcp服务器的代理,当dhcp服务器和客户端之间有路由器时,跨网段,客户端发广播申请ip地址时,dhcp服务器收不到,通过中继器将客户端的请求发给dhcp服务器,因为他们之间的通讯是单播,可以穿过路由器,dhcp服务器收到请求后,把ip地址发给中继器,中继器再转发给客户端。

你可能感兴趣的:(2018-06-03 运维自动化之系统安装 1)