一 系统装机的三种安装方式
1.u盘启动
2.光驱:CD DVD 光盘
3.PXE 远程安装
安装操作系统必备的四个文件:
pxelinux.0:
vmlinuz:
initrd.img:
pxelinux.cfg:
内核
驱动
grub配置文件(需手动配置):
网络引导:grub程序——syslinux(软件集合)
PXE:预安装操作系统的环境,通过网络来引导安装操作系统
允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。
pxe通过 网卡引导启动
PE:小型操作系统(在操作系统上安装操作系统)
initramfs:小型的linux操作系统
系统安装过程
-
加载boot loader
-
加载启动安装菜单
-
加载内核及initrd系统
-
加载根系统
-
运行anacondad的安装向导
Linux安装光盘的安装相关文件
boot.cat | 相当于grub的第一阶段 |
isolinux.bin | 光盘引导程序 |
isolinux.cfg | |
vesamenu.c32 | |
memtest | 内存检测程序 |
splash.png | |
vmlinuz | 内核映像 |
initrd.img | |
pxe通过网卡引导启动 实现的硬件条件
1.BIOS支持
2.网卡支持(现在基本都已支持)
3.需要在bios中开启开关,服务器一般没打开(bmc界面里打开)
4.网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置 网卡自带DHCP功能 dhcp 指明分配的ip地址
PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能 够向客户机裸机发送 PXE 引导程序、Linux 内核、启动菜单等数据,以及提供安装文件
TFTP:
(简单文件传输协议);内核和引导文件
是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。
pxe优点
1.规模化:同时装配多台服务器
2.自动化:安装系统、配置各种服务
3.远程实现:不需要光盘、U盘等安装介质
PXE装机操作过程
-
分配给同一局域网内新加机器的地址(配置文件) dhcp 分配地址 指明tftp 服务器的地址
-
tftp服务端开启 udp 配置 默认关闭
-
安装syslinux 取得 pxelinux.0 文件
-
安装vsftpd服务挂载软件安装源(mount /dev/sr0 /var/ftp/centos7)
-
将四大文件拷入 (/var/lib/tftpboot )
-
initrd.img
-
pxelinux.0
-
pxelinux.cfg/default
-
vmlinuz
将服务器开启,关闭防火墙,selinux
二 搭建 pxe远程安装服务器
服务器安装软件:
tftp-server作用:
简单文件传输协议;内核和引导文件
是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。
vsftpd:
安装系统镜像文件获取方式
syslinux:
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。
dhcp:
DHCP是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码,同时也能配合DNS解析使用,让指定范围内的客户机能够自动获取解析域名的后缀。
[root@localhost ~]#yum install tftp-server vsftpd syslinux dhcp -y 安装三款软件
[root@localhost ~]#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y 将配置文件模板复制到DHCP目录下
[root@localhost ~]#vim /etc/dhcp/dhcpd.conf
[root@localhost ~]#vim /etc/xinetd.d/tftp
[root@localhost ~]#cd /var/lib/tftpboot
[root@localhost tftpboot]#mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost tftpboot]#ls /mnt/isolinux/
boot.cat grub.conf isolinux.bin memtest TRANS.TBL vmlinuz
boot.msg initrd.img isolinux.cfg splash.png vesamenu.c32
[root@localhost tftpboot]#cp /mnt/isolinux/initrd.img /mnt/isolinux/vmlinuz . 注意点
[root@localhost tftpboot]#rpm -ql syslinux | grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost tftpboot]#cp /usr/share/syslinux/pxelinux.0 .
[root@localhost tftpboot]#mkdir pxelinux.cfg
[root@localhost tftpboot]#cd pxelinux.cfg
[root@localhost pxelinux.cfg]#vim default
[root@localhost pxelinux.cfg]#cat default
default linux
timeout 600
label linux
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.11.9/centos7
[root@localhost pxelinux.cfg]#cd ..
[root@localhost tftpboot]#ls
initrd.img pxelinux.0 pxelinux.cfg vmlinuz
[root@localhost tftpboot]#mkdir /var/ftp/centos7
[root@localhost tftpboot]#mount /dev/sr0 /var/ftp/centos7
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost tftpboot]#setenforce 0
setenforce: SELinux is disabled
[root@localhost tftpboot]#systemctl stop firewalld
[root@localhost tftpboot]#systemctl start tftp
[root@localhost tftpboot]#systemctl start vsftpd
[root@localhost tftpboot]#systemctl start dhcp.d
[root@localhost ~]#vim /etc/dhcp/dhcpd.conf
[root@localhost ~]#vim /etc/xinetd.d/tftp
配置文件重启之后进入另一台虚拟机进入BIOS菜单,内存大于2G
进入页面即为成功,基本实现了半自动化安装
三 kickstart 无人值守安装
[root@localhost ~]#yum install tftp-server vsftpd syslinux dhcp -y
在配置文件添加 ks =..cfg [root@localhost pxelinux.cfg]#vim default
重启敲指令虚拟机
登录界面测试是否成功
kickstart 实现了真正的全自动化。搭配PXE使用,实现一键批量装机。
# 安装 kickstart 服务程序
yum install system-config-kickstart -y
# 查看kickstart 形成的脚本
cat /var/ftp/ks.cfg
kickstart 文件主要包括三个部分:命令段,程序段,脚本段
keyboard 设定键盘类型
lang 语言类型
zerombr 清除mbr
clearpart 清除分区
part 创建分区
rootpw 指明root的密码
timezone 时区
text 文本安装界面
network 指定网络设置
firewall 设置防火墙设置
selinux 设置selinux设置
reboot 安装完自动重启
user 安装完成后为系统创建新用户
url 指明安装源
四 cobbler 部署
1 在cobbler之前,微软曾开发过另一项类似的基于C/S工作模式的技术PXE(Prebot eXecute Environment,预启动执行环境),其支持通过网络启动操作系统,亦可以让需要安装系统的带支持PEX技术网卡的裸机通过网络从http服务器下载映像来安装,
在启动过程中,客户端需要从dhcp服务器得到IP地址、掩码、网关以及相关的配置文件路径,再用TFTP(trivial file transfer protocol)协议从服务器下载一个引导启动的软件包(类似linux光盘的isolinux文件夹下的文件)并加载到本机内存中执行,经过启动软件包中配置文件指定的ks应答文件指明服务器中的操作系统位置,进而找到安装源,并在ks文件的指导下完成操作系统的安装。
2 实质是PXE的二次封装,将多种安装参数封装到一起,并提供统一的管理方法。
Cobbler属于C/S模型,是一款Linux生态的自动化运维工具,用于自动化批量部署安装操作系统;其提供基于CLI的管理方式和WEB配置界面
3 主要用于快速网络安装linux操作系统,支持众多的Linux发行版如:Red Hat、Fedora、 CentOS、Debian、Ubuntu和SuSE等。
一句话概括:Cobbler实质是PXE的二次封装,将多种安装参数封装到一起,并提供统一的管理方法
Cobbler的工作原理
- client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器发送其分配好的一个IP
- DHCP服务器收到请求后发送responese,包括其ip地址
- client裸机拿到ip后再向cobbler server发送请求OS引导文件的请求
- cobbler server告诉裸机OS引导文件的名字和TFTP server的ip和port
- client裸机通过上面告知的TFTP server地址通信,下载引导文件
- client裸机执行执行该引导文件,确定加载信息,选择要安装的os,期间会再向cobbler server请求kickstart文件和os image
- cobbler server发送请求的kickstart和os iamge
- client裸机加载kickstart文件
- client裸机接收os image,安装该os image
cobbler安装之前要先部署PXE配置
yum install epel-release.noarch -y #安装yum额外源
yum install cobbler dhcp -y #安装软件包
systemctl enable --now cobblerd httpd tftp dhcpd #开启服务
cobbler check #查看Cobbler服务器的配置
openssl passwd -1 "123456" #生成一个加密密码
vim /etc/cobbler/settings #编辑配置文件
101 default_password_crypted: "$1$sfAXRcPG$4Q2ko.mlKbf6Fx5J9Cg4H/"
242 manage_dhcp: 1
278 next_server: 192.168.10.11
298 pxe_just_once: 1
390 server: 192.168.10.11
#101行:将密码替换成生成的加密密码
#242行:将值改为1,表示通过cobbler工具生成dhcp.conf配置文件
#278行:地址改成自己的ip地址
#298行:将值改为1,表示如果客户端有系统,则该工具不生效,防止重复安装系统
#390行:地址改成自己的ip地址
vim /etc/cobbler/dhcp.template #编辑配置文件
21 subnet 192.168.11.0 netmask 255.255.255.0 {
22 option routers 192.168.11.2;
23 option domain-name-servers 8.8.8.8;
24 option subnet-mask 255.255.255.0;
25 range dynamic-bootp 192.168.11.10 192.168.11.80;
#修改内容跟dhcp服务配置文件一致
cobbler sync #同步生成的配置文件
systemctl restart cobblerd.service #开启服务
tree /var/lib/tftpboot/ #查看给目录下生成的文件
mount /dev/sr0 /mnt #挂载
cobbler import --name=centos-7-x86_64 --path=/mnt --arch=x86_64 #将/mnt目录下的所有文件,复制到固定目录/var/www/cobbler/ks_mirror/,文件名为centos-7.7-x86_64
重启一下 systemctl restart cobbler
du -sh /var/www/cobbler/ks_mirror/* #实时查看该目录下文件的大小
#客户机以网络方式启动,进入显示界面,选择之前复制的文件名centos-7-x86_64
五 装屌渣天的逼
yum -y install epel-release
yum install -y linux_logo
root@localhost ~]# linux_logo
2 oot@localhost ~]# linux_logo -L 6
3 [root@localhost ~]# linux_logo -L 14
4 [root@localhost ~]# linux_logo -L 16
5 curl http://wttr.in 此网站进行在屏幕上面显示天气情况
6 cal 此命令以日历表的方式显示日期
7 要先安装额外元
yum install epel-release.noarch -y 额外源
yum install pssh -y
小火车
[root@centos7 ~]#yum -y install epel-release
[root@centos7 ~]#yum -y install sl
[root@centos7 ~]#sl -a