当前位置: 首页 > 编程日记 > 正文

centos6.6 Kickstart无人值守安装(一):原理篇

为什么80%的码农都做不了架构师?>>>   hot3.png

#为什么要自动化无人值守安装?

  • 偷懒……
  • nb……zb……
  • geek
  • no no no 瞬间完成大规模机器部署,提高生产力,节省时间精力,为公司谋取更多利益,实现社会和谐!

#怎么实现自动化安装的?   以前下载centos光盘的时候,看到那么多iso镜像,其中还有个network镜像,网络镜像。难不成还能通过网络安装?——yes   就是说你以前安装linux啊,用光盘啊,u盘啊,在这个教程里,用网络的方式安装。我们现在有两台服务器,一个是centos-server:我们给要装系统机器提供服务(dhcp、tftp、pxe、nfs/ftp/http)的机器;一个是centos-client,自定义的名字叫法,希望能理解。现在我们要给一批centos-client自动化的装上(自定义)centos6.6系统。

我们以前用装windows7系统的步骤:用u盘引导系统(pe,一个核心文件)——格式化系统+分区——载入iso镜像——设置硬件配置(鼠标、键盘等)——启动。   类似的说,我们这里自动化安装centos6.6的步骤是:从centos-server获取dhcp服务信息(暂时ip和tftp文件:相当于pe,一个小启动系统)——从刚才的文件中找到ks.cfg文件(具体的安装信息配置文件:规定从哪获取安装源、安装哪些软件、硬件、怎么安装、安装好了启动什么服务、就是一个自定义的文本文件)——从规定的地方下载文件,自动化安装centos。(结束)

为了更好地理解,引用下某博主的博客:([详细链接1)

PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。 既然是通过网络传输,就需要IP地址;也就是说在其启动过程中,客户端请求服务器分配IP地址,之后PXE Client使用TFTP Client 通过TFTP(Trivial File Transfer Protocol)协议下载启动安装程序所需的文件。 简单地说PXE网络安装,客户机通过支持PXE的网卡向网络中发送请求DHCP信息的广播请求IP地址等信息,DHCP服务器给客户端提供IP地址和其它信息(TFTP服务器、启动文件等),之后请求并下载安装需要的文件。在这个过程中需要一台服务器来提供启动文件、安装文件、以及安装过程中的自动应答文件等。下图中介绍了Linux中自动安装系统的详细工作过程: 详细流程图

##第一步:PXE Client向DHCP发送请求 首先,将支持PXE的网络接口卡(NIC)的客户端的BIOS设置成为网络启动,通过PXE BootROM(自启动芯片)会以UDP(简单用户数据报协议)发送一个广播请求,向网络中的DHCP服务器索取IP地址等信息。 ##第二步:DHCP服务器提供信息 DHCP服务器收到客户端的请求,验证是否来至合法的PXE Client的请求,验证通过它将给客户端一个“提供”响应,这个“提供”响应中包含了为客户端分配的IP地址、pxelinux启动程序(TFTP)位置,以及配置文件所在位置。 ##第三步:PXE客户端请求下载启动文件 客户端收到服务器的“回应”后,会回应一个帧,以请求传送启动所需文件。这些启动文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。 ##第四步:Boot Server响应客户端请求并传送文件 当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与服务器之间作应答, 用以决定启动参数。BootROM 由 TFTP 通讯协议从Boot Server下载启动安装程序所必须的文件(pxelinux.0、pxelinux.cfg/default)。default文件下载完成后,会根据该文件中定义的引导顺序,启动Linux安装程序的引导内核。 第五步:请求下载自动应答文件 客户端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序首先必须确定你通过什么安装介质来安装linux,如果是通过网络安装(NFS, FTP, HTTP),则会在这个时候初始化网络,并定位安装源位置。或许你会说,刚才PXE不是已经获取过IP地址了吗?为什么现在还需要一次?这是由于PXE获取的是安装用的内核以及安装程序等,而安装程序要获取的是安装系统所需的二进制包以及配置文件。由于它们需要的内容不同造成PXE模块和安装程序是相对独立的,PXE的网络配置并不能传递给安装程序。从而进行两次获取IP地址过程。 接着会读取该文件中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件。 ##第六步:客户端安装操作系统 将ks.cfg文件下载回来后,通过该文件找到OS Server,并按照该文件的配置请求下载安装过程需要的软件包。 OS Server和客户端建立连接后,将开始传输软件包,客户端将开始安装操作系统。安装完成后,将提示重新引导计算机。这个时候注意,在重新引导的过程中一定要将BIOS修改回从硬盘启动,不然的话又会重复的自动安装操作系统。 在上面介绍中PXE client是需要安装Linux的计算机,TFTP Server、DHCP Server和NFS Server运行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux内核都放置在Linux Server上TFTP服务器的根目录下。而Linux根文件系统存放于NFS Server的共享目录中。 PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux 内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。

转载于:https://my.oschina.net/VASKS/blog/389539

相关文章:

拿来就能用!如何用 AI 算法提高安全运维效率?

作者 | 黄龙责编 | 伍杏玲来源 | CSDN(ID:CSDNnews) 在整个安全工作中,安全运维是不可或缺的一环,其目的是保证各项安全工作持续有效地运作。除了对外的沟通和业务对接相关工作,大部分安全运维的日常工作相…

深度神经网络中Inception-ResNet模块介绍

之前在https://blog.csdn.net/fengbingchun/article/details/113482036 介绍了Inception,在https://blog.csdn.net/fengbingchun/article/details/114167581 介绍了ResNet,这里介绍下深度神经网络中的Inception-ResNet模块。 介绍Inception-ResNet的论文…

iOS 让UIView的左上角和右上角为圆角

-(UIView *)platFormBGV{ if (!_platFormBGV) { _platFormBGV [[UIView alloc] init]; _platFormBGV.backgroundColor [UIColor whiteColor]; _platFormBGV.frame CGRectMake(0, self.view.frame.size.height, APP_WIDTH, 220); // 左上和右上为圆角 UIBezierPath *cornerRa…

HttpUnit学习笔记

HttpUnit 能模拟浏览器的动作,如提交表单、JavaScript执行、基本HTTP认证、cookies建立以及自己主动页面重定向,通过编写代码能够处理取回来的文本、XML DOM或表单、表、链接。当与Junit等框架结合时,就能很easy地进行一个站点的功能測试了。…

C++11中头文件type_traits介绍

C11中的头文件type_traits定义了一系列模板类,在编译期获得某一参数、某一变量、某一个类等等类型信息,主要做静态检查。 此头文件包含三部分: (1).Helper类:帮助创建编译时常量的标准模板类。介绍见以下测试代码: …

反季大清仓,最低仅需34.9元

不知不觉已经12月份了还有一个月就要过年啦很多地方已经进入了寒冬的季节有的地方已经开启了下雪模式纷纷开始买冬天的商品棉衣、羽绒服、取暖器......但是.......今天我是来搞反季清仓的快来看看今天的反季清仓有啥商品~●反季清仓商品—程序员专属定制T ●专属定制T_shirt&am…

iOS 预览word pdf 文件

此类用于改变QLPreviewController 导航栏title #import <QuickLook/QuickLook.h> NS_ASSUME_NONNULL_BEGIN interface QLPreviewController (title) property (nonatomic, strong) NSString *qlpTitle; end NS_ASSUME_NONNULL_END #import "QLPreviewControllertitl…

Java过滤器模式

//创建一个类&#xff0c;在该类上应用标准 public class Person { private String name; private String gender; private String maritalStatus; public Person(String name, String gender, String maritalStatus) { this.name name; …

C++中指向类成员指针的用法

C中&#xff0c;指向类的成员指针包含两种&#xff1a; (1).指向类的成员函数的指针&#xff1a; 类型 (类名::* 函数成员指针名)(参数表); 函数成员指针名 &类名::函数成员名; 也可将以上两条语句调整为一条语句&#xff1a; 类型 (类名::* 函数成员指针名)(参数表) &…

多模态人物识别技术及其在爱奇艺视频场景中的应用 | 公开课笔记

【12月公开课预告】&#xff0c;入群直接获取报名地址12月11日晚8点直播主题&#xff1a;人工智能消化道病理辅助诊断平台——从方法到落地12月12日晚8点直播&#xff1a;利用容器技术打造AI公司技术中台12月17日晚8点直播主题&#xff1a;可重构计算&#xff1a;能效比、通用性…

JsonObject json字符串转换成JSonObject对象

字符串&#xff1a;{"code":"1004","msg":"请先添加系统靠勤人员信息&#xff01;","userRegistInfo":{"acc":"小谷","id":0,"phoneMac":"","phoneNum":"…

基于人脸关键点修复人脸,腾讯等提出优于SOTA的LaFIn生成网络

作者 | Yang Yang、Xiaojie Guo、Jiayi Ma、Lin Ma、Haibin Ling译者 | 刘畅编辑 | Jane出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;【导语】现实场景中&#xff0c;人脸的变化是很大的&#xff0c;例如不同的姿势、表情和遮挡等&#xff0c;因此在现…

在Ubuntu上编译opencv 2.4.13源码支持android平台操作步骤

之前在https://blog.csdn.net/fengbingchun/article/details/96430706中编译过opencv源码用于海思平台&#xff0c;这里通过修改脚本编译opencv 2.4.13.6源码&#xff0c;使其支持android平台。 1. 从https://github.com/opencv/opencv/releases下载opencv 2.4.13.6源码&#…

Java组合模式

组合模式&#xff1a;适用于把一组相似的对象当作一个单一的对象&#xff0c;组合迷失一句树形结构来组合对象&#xff0c;用来表示部分以及整体层次。这种类的设计模式属于结构型模式&#xff0c;他创建了对象组的树形结构 这种模式创建了一个包含自己对象组的的类。给类提供了…

SQL故障转移集群操作方法

SQL故障转移集群操作方法1 给SQL服务器配置IP地址,每台服务器需要两个IP,一个通讯用,一个作为心跳线,修改计算机的名称,关闭服务器的防火墙,开启远程桌面.2心跳网卡配置去掉ipv6,并去掉下列几项进行验证3域控制器服务器管理器 添加角色 AD域服务启动AD域服务加入到域中打开DNS服…

Windows/Linux上使用fopen相关函数读取大文件

在介绍读取大文件之前&#xff0c;先了解下<cstdint>文件&#xff0c;标准头文件&#xff0c;存放固定宽度整数类型&#xff0c;如int32_t, uint32_t&#xff0c;不管在32位上还是64位上&#xff0c;长度都为4个字节&#xff1b;int64_t, uint64_t&#xff0c;不管在32位…

蚂蚁金服提新概率图模型GLN,正确率提升8.2%,具备可解释性 | NeurIPS 2019

作者 | 蚂蚁金服编辑 | Jane出品 | AI科技大本营&#xff08;ID&#xff1b;rgznai100&#xff09;【导读】一年一度的国际顶级学术会议NeurIPS 2019将于12月8日至14日在加拿大温哥华举行。作为人工智能和机器学习领域最顶级的盛会之一&#xff0c;每年都会吸引来自全世界的AI大…

Java外观模式

外观模式&#xff1a;隐藏系统的复杂性&#xff0c;并向客户提供了一个客户端可以访问系统的接口&#xff0c;这种类型的设计模式属于结构型模式&#xff0c;他向现有的系统添加一个接口&#xff0c;来隐藏系统的复杂性 这种模式设计到一个单一的类&#xff0c;该类提供了客户请…

【spring框架】spring整合hibernate初步

spring与hibernate做整合的时候&#xff0c;首先我们要获得sessionFactory。我们一般只需要操作一个sessionFactory&#xff0c;也就是一个"单例"&#xff0c;这一点很适合交给spring来管理。下面的代码演示如何创建一个JDBC DataSource 和Hibernate SessionFactory:…

PyTorch简介

PyTorch是一个针对深度学习&#xff0c;并且使用GPU和CPU来优化的tensor library(张量库)。最新发布的稳定版本为1.9&#xff0c;源码在https://github.com/pytorch/pytorch 。它支持在Linux、Mac和Windows上编译和运行。调用Python接口可以通过Anaconda或Pip的方式安装&#x…

Java 责任链模式

顾名思义&#xff0c;责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;为请求创建了一个接收者对象的链。这种模式给予请求的类型&#xff0c;对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。 在这种模式中&#xff0c;通常每个接收者…

2019嵌入式智能国际大会圆满落幕,7大专场精彩瞬间释出!

全球第二大市场研究机构MarketsandMarkets报告称&#xff0c;2019年全球AIoT市场规模为51亿美元&#xff0c;到2024年&#xff0c;这一数字将增长至162亿美元。5G元年&#xff0c;人工智能开始更多地转向应用智能。基于此&#xff0c;12月6-7日&#xff0c;由哈尔滨工业大学&am…

ubuntu12.04 alternate win7 双系统安装

ubuntu alternate的安装比desktop复杂一点,因为alternate的安装过程有个步骤是检测cd-rom,如果你是刻盘安装,自然没问题,但是,现在的安装一般是将系统刻到U盘里,或者在硬盘中划出一个分区,将其制作成启动盘. 这里我是用U盘安装的... 安装前的准备: 1)在硬盘上分出一个空闲分区:…

C/C++包管理工具Conan简介

Conan是一个开源的、跨平台的、去中心化的C和C包管理器&#xff0c;它的源码在https://github.com/conan-io/conan &#xff0c;License为MIT&#xff0c;最新发布版本为1.38.0&#xff0c;由Python实现。版本更新较频繁&#xff0c;但保持向前兼容。 Conan特点&#xff1a; (1…

神经架构搜索在视频理解中研究进展的综述

作者 | Michael S. Ryoo 研究员与 AJ Piergiovanni 学生研究员&#xff08;Google 机器人团队&#xff09;来源 | TensorFlow&#xff08;ID&#xff1a;TensorFlow_official&#xff09;视频理解一直是项颇具挑战性的难题。视频中包含时空数据&#xff0c;因此要提取特征表示需…

Java命令模式

命令模式&#xff08;Command Pattern&#xff09;是一种数据驱动的设计模式&#xff0c;它属于行为型模式。请求以命令的形式包裹在对象中&#xff0c;并传给调用对象。调用对象寻找可以处理该命令的合适的对象&#xff0c;并把该命令传给相应的对象&#xff0c;该对象执行命令…

关于本分类(codeforces-好题系列)

前前后后花了将近半个月&#xff0c;终于将吴神的十场cf的50题目补完了&#xff0c;看到了各种技巧和DP的好题&#xff0c;为了方便以后查阅&#xff0c;新增一个分类便于查找&#xff0c;当然本分类的题目其他分类一般都有&#xff0c;先去吃个饭&#xff0c;回来刷题解转载于…

Conan客户端简单使用示例

在https://blog.csdn.net/fengbingchun/article/details/118443862 中对Conan进行了简单介绍&#xff0c;这里调用openssl的接口&#xff0c;写一个简单的test来说明Conan的使用步骤&#xff1a; (1).首先添加一个conanfile.txt文件&#xff0c;内容如下&#xff1a;依赖项为op…

Java解释器模式

解释器模式&#xff08;Interpreter Pattern&#xff09;提供了评估语言的语法或表达式的方式&#xff0c;它属于行为型模式。这种模式实现了一个表达式接口&#xff0c;该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。 意图&#xff1a;给定一个语言&…

为什么鲜有炫富的程序员?看看中国各阶级收入统计表

网上那些口口声声随随便便就能年入百万的&#xff0c;听听就行。作为开发者&#xff0c;可以不参加双11&#xff0c;但是花钱最多的地方就是买电子产品和“买课”。他们的炫富就是&#xff1a;你根本不知道有多贵的机械键盘&#xff0c;为了赚钱和幸福&#xff0c;又买了多少大…