系统安装步骤自动化
1.关于http
- http(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上
- 它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应
- 请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式
- 这个简单模型是早期Web成功的有功之臣,因为它使得开发和部署是那么的直截了当
- http是应用层协议,同其他应用层协议一样,是为了实现某一类具体应用的协议,并由某一运行在用户空间的应用程序来实现其功能
- http协议是基于C/S架构进行通信的,而http协议的服务器端实现程序有httpd、nginx等,其客户端的实现程序主要是Web浏览器
- Web服务是基于TCP的,因此为了能够随时响应客户端的请求,Web服务器需要监听在80/TCP端口。这客户端浏览器和Web服务器之间就可以通过http协议进行通信了
- httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池
- 通常,httpd不应该被直接调用,而应该在类Unix系统中由 apachectl 调用,在Windows NT/2000/XP/2003中作为服务运行和在Windows 95/98/ME中作为控制台程序运行
- httpd服务是为了提供自己想要的操作系统配置
2.关于kickstart
- 许多系统管理员宁愿使用自动化的安装方法来安装红帽企业 Linux.为了满足这种需要,红帽创建了kickstart安装方法.使用kickstart,系统管理员可以创建一个文件,这个文件包含了在典型的安装过程中所遇 到的问题的答案
- Kickstart文件可以存放于单一的服务器上,在安装过程中被独立的机器所读取.这个安装方法可以支持使用单一kickstart文件在多台机器上安装红帽企业Linux,这对于网络和系统管理员来说是个理想的选择
- Kickstart给用户提供了一种自动化安装红帽企业Linux的方法
- Kickstart是一个定义了Linux安装过程的配置文件
- 有了这个文件可以解放双手,让Linux安装过程按照我们预先定义的要求进行自动化安装,同时对于大量部署主机时十分有用
3.利用kickstrat工具做一个简单的自动安装脚本来自动装一个新系统
1.在虚拟机上搭建 dhcp服务器
- 在安装前系统应有官方软件与第三方软件的仓库
yum install dhcp -y | 安装dhcp软件 |
---|---|
cd /etc/dhcp | 切换到dhcp目录下 |
ls | 查看配置文件dhcpd.conf是否存在 |
vim dhcpd.conf | 编辑dhcp的配置文件 |
cp /usr/share/doc/dhcp*/dhcpd.conf.example dhcpd.conf | 给dhcp的配置文件中写入配置内容 |
vim dhcpd.conf | 再次编辑dhcp的配置文件 |
systemctl restart dhcpd | 重启dhcp服务 |
systemctl status dhcpd | 查看dhcp服务的状态 |
-
编辑内容如下:删除27、28行及35行以后的内容,更改域名、dns服务、网络位、子网掩码、动态分配的范围、网关等
-
第一次编辑如下:
-
第二次编辑如下:
2.搭建httpd服务
yum install httpd -y | 安装httpd |
---|---|
systemctl start httpd | 开启httpd服务 |
systemctl status httpd | 查看httpd服务的状态 |
3.安装工具system-config-kickstart并开启
yum install system-config-kickstart -y | 安装该工具生成自动安装脚本 |
---|---|
system-config-kickstart | 开启这个工具 |
- 开启之后会跳出如下界面:
- 操作步骤如下图所示:
- 保存完成后进行查看是否存在
- 检测自动安装脚本有没有问题
- 在浏览器中可以查看文件ks.cfg检测内容有没有问题
4.利用PXE实现批量无人值守安装linux操作系统
1.关于PXE协议(在部署服务器过程中起着至关重要的作用,它涉及到tftp服务)
- PXE 是由 Intel 设计的协议,计算机可以通过 PXE 协议从网络引导系统启动
- PXE 协议在启动过程分为 client 和 server 端
- PXE 协议运行过程主要解决两个问题:
首先解决 IP 地址的问题,然后解决如何传输操作系统启动文件和安装文件的问题 - 对于第一个问题,可以通过在服务端搭建DHCP服务器解决,DHCP 服务器主要用于动态分配 IP 地址给客户端,PXE 环境下,DHCP 服务器在给客户端一个ip地址的同时需要额外加载 PXE 的相关配置给客户端,这样客户端才会知道自己下一步要干嘛
- 针对第二个问题,在启动初期因为 PXE客户端中有相应的 TFTP 客户端,可以通过 TFTP 协议到 TFTP 服务器(服务端)中下载相关文件启动计算机
- 我所使用的协议是http协议,客户端共享服务端的yum源软件仓库与ks.cfg文件给客户端,从而引导客户端自动装系统
- PXE是预启动执行环境,全名是Pre-boot Execution Environment
- 通过网络接口启动计算机,不需要依赖本地存储设备或本地已安装的操作系统
- 由Intel和Systemsoft公司于1999年9月20日公布的技术,采用C/S的工作模式
- PXE客户端会调用网际协议(IP)、用户数据协议(UDP)、动态主机分配协议(DHCP)、小型文件传输协议(TFTP)等网络协议
2.在上述实验的基础上进行如下操作
yum whatprovides */pxelinux.0 | 查找软件syslinux |
---|---|
yum install dhcp httpd syslinux -y | 安装软件dhcp、httpd、syslinux |
yum search tftp | 查询tftp服务所需安装的软件 |
yum install tftp-server.x86_64 | 安装软件 |
systemctl status tftp | 查看tftp服务的状态 |
rpm -ql tftp-server | 查栈tftp服务的配置文件 |
cd /var/lib/tftpboot/ | 进到配置目录下 |
cp /var/www/html/westos/isolinux/* /var/lib/tftpboot/ | 从iso中拷贝内核镜像和文件系统镜像到tftp服务的配置目录下,让server主机在pxe程序的引导下知道自己的内核等安装信息 |
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ | 拷贝pxelinux.0文件到tftp根目录,该操作的目是让server主机得到ip地址的同时也会有pxe程序引导它下一步要去哪里 |
mkdir /var/lib/tftpboot/pxelinux.cfg | 准备默认的菜单配置文件,创建这个目录是因为pxelinux.0默认其为配置目录,创建pxelinux.cfg目录,固定目录名称 |
cd /var/lib/tftpboot | 切换到tftp的配置目录下面 |
cp isolinux.cfg pxelinux.cfg/default | default文件,必须为这个名称,创建一个pxe程序默认的读取文件default,其内容与isolinux.cfg一样,因此直接复制 |
- 查询pxelinux.0文件所在目录
- initrd.img 文件系统镜像,vmlinuz 内核镜像文件
- 编辑内容如下:
- systemctl restart dhcpd #重启dhcp服务,使设置生效
- 编辑default文件,让server主机自动装系统时去读取包含其安装参数的ks.cfg文件,编辑内容如下:
3.测试
4.编辑文件改变安装系统时的驱动时间以及标题