如何高效地实现Linux批量布署Boot? (linux批量布署boot)

在现代企业中,Linux已成为一种不可或缺的操作系统,如何高效地实现Linux批量布署Boot成为管理员面临的一个重要问题,尤其是在大规模的部署场景下。本文将讲述如何高效地实现Linux批量布署Boot。

一、准备工作

在批量布署Boot之前,需要完成以下工作:

1.准备一台服务器,作为PXE服务器使用。PXE服务器是一种允许另一台电脑通过网络引导启动并执行一个程序的服务设备,常用于批量布署操作系统。

2.准备所需的Linux镜像。根据实际需求下载需要的Linux镜像,将其存放到PXE服务器所在的目录中。

二、安装和配置PXE服务器

PXE服务器可以使用开源软件Syslinux、GRUB、iPXE来实现,本文以Syslinux为例。

1.安装Syslinux

在PXE服务器上安装Syslinux。如果你运行的是Debian或Ubuntu等基于Debian的发行版,可以使用以下命令进行安装:

sudo apt-get update

sudo apt-get install -y syslinux

2.配置PXE服务器

Syslinux默认的配置文件是/syslinux.cfg,然而默认的/syslinux.cfg文件是不包含任何Linux镜像的,需要修改它来引导我们想添加的镜像。

需要将Linux镜像挂载到服务器上,可以使用mount命令挂载ISO文件:

mount /path/to/linux.iso /mnt

解压ISO文件:

mkdir /mnt/iso

tar xzvf /mnt/* /mnt/iso

如果ISO文件是Windows下下载的,并且回车符不同,则需要修改所有文件的回车符。否则在启动时可能会出现错误。

find /mnt/iso/* -type f | xargs dos2unix

接着,需要将Syslinux相关的配置文件和内核组件拷贝到TFTP根目录中:

cp /usr/lib/syslinux/modules/bios/ldlinux.c32 /var/lib/tftpboot/

cp /usr/lib/syslinux/modules/bios/menu.c32 /var/lib/tftpboot/

cp /usr/lib/syslinux/modules/bios/libutil.c32 /var/lib/tftpboot/

cp /usr/lib/syslinux/modules/bios/libcom32.c32 /var/lib/tftpboot/

cp /usr/lib/syslinux/modules/bios/vesamenu.c32 /var/lib/tftpboot/

cp /usr/lib/syslinux/modules/bios/pxelinux.0 /var/lib/tftpboot/

cp /mnt/iso/isolinux/vmlinuz /var/lib/tftpboot/

cp /mnt/iso/isolinux/initrd.gz /var/lib/tftpboot/

接着,创建一个配置文件/var/lib/tftpboot/pxelinux.cfg/default并编辑:

DEFAULT menu.c32

PROMPT 0

MENU TITLE Boot Menu

TIMEOUT 300

ONTIMEOUT local

MENU INCLUDE /var/lib/tftpboot/menu.cfg

LABEL local

MENU LABEL Boot from local hard drive

LOCALBOOT 0

LABEL Boot From Network

MENU LABEL Boot Menu

KERNEL vmlinuz

APPEND root=/dev/nfs initrd=initrd.gz nfsroot=192.168.5.5:/srv/nfs/data/rhel7

IPAPPEND 2

其中,192.168.5.5是PXE服务器的IP地址,如果你是将ISO镜像挂载到本地,则可以不使用nfsroot。以上配置将创建一个可以从PXE服务器引导的菜单,菜单中包含LABEL local选项(可以选择从本地硬盘引导),LABEL Boot From Network选项(从PXE服务器引导)。

需要将TFTP根目录的权限改为R+W:

chmod 777 /var/lib/tftpboot

三、引导客户端

在PXE服务器配置完毕后,可以使用任何支持PXE的设备来引导,包括计算机、虚拟机和网络硬盘等等。但是需要在BIOS或UEFI设置中将PXE设置为启动选项。

当成功引导客户端后,将会看到上面定义好的菜单,并可以选择引导到Linux镜像。如果选择引导到本地硬盘,则启动设备将会在本地硬盘引导,否则设备将会引导到该设备通知的PXE服务器,从而达到批量部署Linux的目的。

本文介绍了如何使用Syslinux在PXE服务器上构建可以批量部署Linux的环境。通过编写pxelinux.cfg文件并使用TFTP服务器,您可以轻松地向多个计算机分发预先配置好的系统,并大大缩短安装系统的时间。

相关问题拓展阅读:

centos/linux平台关于备份的问题

有多种方仿闹式戚大派实高贺现

以前的方法,可以定制自己的linux镜像文件实现

现在有更好的办法,就是使用docker,只需要制作docker镜像,就可以轻松实现只需要安装一次就可以批量部署了

linux基础知识有哪些

Linux启动过程

启动流程:操作系统->/boot -> init进程 -> 运行级别 -> /etc/rc.d->用户登录->login shell

内核的引导:首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动,操作系统接管硬件以后,首先读入 /boot 目录下的内核文件

运行init进程:init 进程是系统所有进程的起点,没有这个进程,系统中任何进程都不会启动,init程序首先是需要读取配置文件 /etc/inittab,init进程的任务之一是运行开机启动的程序;许多程序需要开机启动。它们在Windows叫做”服务”(service),在Linux就叫做”守护进程”(daemon)

Linux关机

正确的关机流程为:sync>shutdown>reboot>halt

sync:将数据有内存同步到硬盘中

shutdown:关机指令;

Linux文件属性

通过命令 ll或 ls-l可以查看某个目录下所有的文件以及仔森文件类型、权限、属组等

更为详细芦咐的介绍可以查阅下相关资料,比如《Linux就该这么念哗亩学》。

之一阶段:linux基础入蔽氏门

Linux基础入门主要包括: Linux硬件基础、Linux发展历史、Linux系统安装、xshell连接、xshell优化、SSH远程连接故障问题排查、L inux基础优化、Linux目录结构知识、Linux文件属性、Linux通配符、正则表达式、Linux系统权限等

第二阶段:linux系统管理进阶

linux系统管理进阶包括:Linux定时任务、Linux用户管理、Linux磁盘与文件系统、Linux三剑客之sed命令等。

第三阶段:Linux Shell基础

Linux Shell基础包括:Shell编程基础、Linux三剑客之awk命令等。

第四阶段:Linux网络基础

第五阶段:Linux网络服务

Linux网络服务包括:集群实战架构开始及环境准备、rsync数据同步服务、Linux全网备份项目、nfs网络存储服务精讲、inotify/sersync实时数据同步/nfs存储实时备份项目等。

第六阶段:Linux重要网络服务

Linux重要网络服务包括:http协议/www服务基础、nginx web介绍及基础实践、nginx web、lnmp环境部署/数据库异机迁移/共享数据异机迁移到NFS系统、nginx负载均衡、keepalived高可用等。

第指雀七阶段:Ansible自动化运维与Zabbix监控

Ansible自动化运维与Zabbix监控包括: SSH服务秘钥认证、ansible批量自动化管理集群、 zabbix监控等。

第九阶段:大规模集群高可用服务(Lvs、Keepalived)

第十阶段:Java Tomcat服务及防火墙Iptables

第十一阶段:MySQL DBA高级应用实践

MySQL DBA高级应用实践包括:MySQL数据库入门基础命令、MySQL数据库进阶备份恢复、MySQL数据库深入事务引擎、MySQL数据库优化SQL语句优化、MySQL数据库集群主从复制/读写分离、MySQL数据库高可用/mha/keepalved等。

第十二阶段:高宏逗散性能数据库Redis和Memcached课程

第十三阶段:Linux大规模集群架构构建(200台)

第十四阶段:Linux Shell编程企业案例实战

第十五阶段:企业级代码发布上线方案(SVN和Git)

第十六阶段企业级Kvm虚拟化与OpenStack云计算

第十七阶段公有云阿里云8大组件构建集群实战

第十八阶段:Docker技术企业应用实践

第十九阶段:Python自动化入门及进阶

第二十阶段:职业规划与高薪就业指导

一、Linux的磁盘分区及目录

Linux的配置是通过修改配置文件来完成。

1.1、Linux磁盘分区

Linux可以将磁盘分为多个分区,每个分区可以被当做一个独立的磁盘使用,磁盘类型:主分毁厅区、扩展分区、逻辑分区。

主分区标记为活动,用于操作滚银系统的引导,一块磁盘最多划分4个主分区,主分区存放操作系统的文件或用户数据。

扩展分区:主分区小于4个时才可以划分扩展分区,一块磁盘最多有一个扩展分区,扩展分区不能保存任何数据,必须在扩展分区中进一步划分逻辑分区,用户数据只能保存在逻辑分区中。

逻辑分区:扩展分区中可以建立多个逻辑分区。

Linux中大多数硬件都是以文件的方式进行管理,这些硬件设备被映射到”/dev”目录下对应的文件中,在‘/dev’目录下每个磁盘分区映射为一个文件,这些文件采用字母加数据的形式,如:

/dev/xxyN

其中的xx表示区名所在磁盘的设备类型,一般hd代表IDE接口的磁盘,sd代表SCSI或SATA即可的磁盘(光盘驱动器及U盘),fd代表软盘驱动器,tty是一种字符型的终端设备ttySn是串口设备。“y”表示分区所在的磁盘是当前接口的第几个设备比如之一个SCSI硬盘就是“/dev/sda”,第二个SCSI硬盘就是“/dev/sdb”。“N”表示分区的序号,前四个分区(主分区或扩展分区)使用1-4表示,逻辑分区从5开始。

分区完成后,用户并不能直接使用这些分区,需要格式化后再通过 mount命令挂载后才能使用,如使用mount命令将“/dev/sdb2”挂载到“/mnt/disk”目录,所有保存到/mnt/disk目录下的数据就会被保存到/dev/sdb2分区中。

1.2、Linux文件系统及目录结构

文件系统是一种存储和组织计算机文件及数据的方法,文件系统通常使用硬盘和光盘的存储设备,并维护设备中的物理位置。

Linux操作系统默认操作FAT、FAT32两种文件系统,默认情况下不支持NTFS系统,推荐使用ext3(第三版的扩展文件系统)文件系统。ext3是一种日志文件系统,在对系统数据进行写操作前,会把写操作内容写入一个日志文件中,一旦操作被意外中止,系统能够在重新启动时根据日志完成该写操作。

Linux文件系统中,文件是存储信息的基本结构。文件、目录、硬件设备都以文件的形式表示,文件名可以由字符、数据、原点、下划线组成,长度不超过256个字符。Linux中通过圆点区分文件名和扩展名帮助用户区分文件类型,用户可以根据自己需要随意假如自己的扩展名。Linux中有4种文件类型:普通文件,如文本文件、图片文件、视频纤备隐文件、shell脚本文件;目录文件:特殊的文件;链接文件;特殊文件;

文件系统采用树形的结构。

Linux中每个用户有个家目录,如果是管理员(root用户)家目录是/root,若是普通用户家目录是/home。路径,从一个目录到另一个目录或文件的道路被称为路径,“.”表示当前目录,“..”当前目录的父目录,“~”当前用户的家目录,“-”上一个目录。

二、常用命令

poweroff:关闭系统 reboot:重启计算机clear:清除终端显示 pwd :显示当前目录cd:改变当前目录. :表示当前目录.. : 表示当前目录的父目录 ~“”表示home目录

– 上一个工作目录

mv :移动命令cp:复制命令rm:删除命令 mount:挂载命令 chamod:改变权限命令

cat:打印命令mkdir:新建文件夹 lod:查询设备

netstate -nl :查看网络状态 netstate -nlu :查看UDP状态

ifconfig 查看网络配置 ifconfig -a:所有的网卡 ifconfig eth0 up/down 打开或关闭eth0设备 ifconfig 可以用来配置IP和网络掩码。 ping:查看网络是否通date:查询时间 date -s :修改系统时间 cal:日历

man 命令:查看命令的使用方法。 kill 进程号:结束一个进程

2.1、vim命令

命令模式,启动后默认处于该模式,其他模式用ESC键或者Ctrl+C切换到命令模式。

插入模式,和txt文档编辑一样编辑,在命令模式下用i、o、a命令进入该模式。

可视模式,该模式下可用方向键进行内容选择,然后进行复制、粘贴和其他操作,在命令模式下使用v进入该 模式。

块操作模式,该模式下可用方向键进行内容选择,选择时可模拟鼠标选择的方式。在命令模式下使用ctrl+v进入该模式

修改模式,该模式下,类似于其他软件用insert键来完成切换。命令模式下用R进入该模式。

扩展命令模式,该模式下可以执行一些扩展命令。命令模式下使用‘:’进入该模式。

vim几种操作选择:“o” 可以只读方式打开该文件,“e”可正常编辑,使用该方式注意确定其他用户没有正在编 辑这个文件,“r”从临时交换文件中回复,“q”退出编辑该文件,“a”放弃并同时撤销后续命令的执行,“d”删除临时交换文件。

文件编辑完成,希望关闭需要首先切换到命令模式,击中退出方式::q 直接退出,:q!强行退出,如果文件内容发生改变则不保存,:wq保存并退出,:wq!强行保存并退出,一般用于文件是只读的情况下,但是文件的拥有者是当前用户。

2.2、Vim常用的操作键

命令模式常用的操作键:

G:移动到文件的最后一行

nG:n为数字,移动到文件的第n行。

/word: 向下查找关键字word

?word: 向上查找关键字word

n:重复前一个查找

N:反复重复前一个查找

:n,$s/a/b: 替换第n行开始到最后一行中每一行的之一个a为b。

:n$s/a/b/g: 替换第h开始到最后一行每一行所有的a为b,n位数字,若n为.表示从当前行开始到最后一行

d$: 删除光标所在位置到该行最后一个字符。

dd: 剪切当前行。

yy: 复制所选内容

nyy: 复制从光标开始n行内容

p: 将已经复制的内容粘贴到光标下一行。

P: 将已经复制的内容粘贴奥光标上一行。

u: 复原上一个操作。

ctrl+R: 重复前一个操作。

o: 当前下插入空行,并进入插入模式。

O: 当前下插入空行,并进入插入模式。

. : 重复前一个动作。

i : 进入插入模式,从当前光标所在位置插入。

I : 插入模式,从当前行之一个非空格处插入。

r : 插入模式,替换光标所在字符。

R: 进入修改模式。

ESC键:返回命令模式。

(2) 扩展命令模式常用操作键

:w保存。

:w!文件为只读时强制保存,不过能否保存还要看文件的权限。

:q离开vim。

:q!强制退出。

:wq保存后离开。

😡 保存后离开。

:w另存为新文件。

v- 进入可视模式。

ctrl+V进入块操作模式。

:r将文件名的文件读到光标后面。

n1,n2 w将n1到n2另存为新文件

:new新增水平窗口

:new filename — 新增水平窗口,并在新增的窗口加载filename文件。

:v new新增垂直窗口。

:v filename新增垂直窗口,并在新增窗口加载filename文件。

ctrl+W+方向键切换窗口。

:only —- 紧保留目前的窗口。

:set nu显示行号

:set nonu不显示行号

:set readonly文件只读,除非使用!可写。

:set ic查找是忽略大小写。

:set noic查找时不忽略大小写。

三、桌面环境

Linux的桌面图形界面有很多种,GNOME KDE Fluxbox Xfce FVWM sawflish WindowMaker等,最常用的是GNOME和KDE两种。

3.1、远程管理

Telnet协议是Internet远程登录服务的标准协议,提供了在本地计算机上完成远程主机工作的能力,用户可以在Telnet程序中输入命令,这些命令会在远程服务器上运行。传统的Telnet安全性差,许多服务器会将Telnet服务关闭,使用更安全的SSH。

ubuntu 开启Telnet服务步骤,

SSH是Secure Shell 的缩写,为建立在应用层和传输层上的安全协议,SSh对所传数据进行加密保证了数据的安全而且数据是经过压缩的提高了传输速度。SSH可以代替Telnet,又可以为TFP、POP提供一个安全通道。

Linux及windows客户端通过SSH链接到服务器的方法:

(1) Linux客户端

Linux客户访问SSH服务器通过以下几个命令完成:

① ssh SSH服务器 ,

SSH服务器指定要链接的服务器,可以使用FQDN或IP地址。

用户名@:指定链接SSH服务器的用户名,不指定用户时默认以root用户链接。

命令:使用ssh命令可以链接到服务器,有时需要在SSH服务器上执行一个命令时,可以直接通过此参数指定需要执行的命令。

-C:启用压缩功能

-f: 在询问密码之后且在执行之前,将ssh转到后台运行。

-L:将本地系统中的某个端口转发到远程系统。

-R: 将远程系统 的某个端口转发到本地端口

-v: 显示与连接和传送有关的调试信息。

例如: ssh 192.168.159.11 通过ssh连接到远程计算机,默认使用root用户。如果是之一次连接到远程计算机,本地主机的用户需要生成连接远程主机的RSA公钥,在此出现的警告输入yes。退出远程连接服务器,输入exit。

② SCP命令可以使用SSH的方式在远程主机和本地主机复制文件或目录,语法如下,

scp 复制源主机:>复制源文件复制目标主机:>

如果是windows客户端,可以用putty。

(2) RDP

在Windows中可通过“远程桌面”功能连接到远程的计算机进行管理。

四、Linux命令基础

4.1、Linux命令分类

Linux操作系统中,命令分为两种:Shell内部命令、Shell外部命令。

Shell内部命令:shell内部命令是一些较为简单的又常用的命令,如cd、mkdir、rm等,这些命令在shell启动时载入内存。

Shell外部命令:Linux中大多数命令属于外部命令,每一个shell外部命令都一个独立的可执行程序,也就是shell的外部命令是一些实用工具程序,管理员可以独立的在shell环境下安装或卸载这些shell外部命令。

Linux的内部命令可以在任何目录任何时间执行,而外部命令在执行时,Linux必须找到对应的可执行程序。Shell中一个名为PATH的环境变量,该变量包括一些路径用于shell自动搜索。

cat /etc/shells 来查看系统中的shell种类。

Shell中的引号分为三种:单引号,双引号,反引号

由单引号引起来的符号都作为普通字符出现。特殊字符用单引号引起来后,失去原来的意义,变为普通字符解释。

双引号的作用与单引号类似,区别在于没那么严格,单引号忽略所有的特殊字符,双引号中的3中特殊字符不被忽略 $ \ ‘。

反引号· 位于键盘的左上角,被反引号引起来的被shell解释为 命令行

用#做注释。

4.2、Linux命令格式

Shell解释器在用户和内核之间相当于一个翻译的角色,负责解释用户输入的命令。shell是操作系统和用户进行交互的界面。命令的基本格式:

命令

命令是需要执行的操作,选项是对命令的要求,参数用于描述命令的作用对象。比如 ls -l /root ,命令是ls,选项-l表示要以长格式显示文件信息,/root 是 ls的命令参数,表示ls命令作用的对象是 /root目录。

五、Linux的目录及文件管理

5.1、Linux的主要目录

/ :根目录,一台计算机只有一个根目录,所有内容都是从跟目录开始。如/etc ,先从根目录开始在进入etc目录

/root:系统管理员的家目录。

/bin:存放了标准的Linux工具,如ls、cp、rm等。该目录已经包含在PATH中,使用该目录程序无需使用路径

/boot:用于加载程序的文件。

/proc:操作系统运行时,进程信息及内核信息,如果CPU、硬盘分区、内存信息等存放在该目录。

/etc:存放系统的配置方面的文件,如在系统安装vsftpd这个软件,你想要修改vstpd配置文件的时候,vstpd的配置文件就在/etc/vstpd目录下。

/etc/init.d 存放系统或以system V模式启动的服务脚本。

/etc/xinetd.d: 如果服务是通过xinetd模式运行的,服务的脚本要放在这个目录下。

/etc/rc.d : 存放BSD方式启动脚本,如定义网卡开启脚本等。

/etc/X11:存放X-Windows相关的配置文件

/dev :主要存放与设备(包括外设)有关的文件。

/home :存放每个用户的家目录。每个用户的设置文件,桌面文件夹、用户数据都放在这里。

/tmp :临时目录。

/bin、/usr/bin:大部分系统命令都是二进制文件形式保存。一般用户使用的命令都在这两个目录,系统核心命令工具,如cd、ls、cp、等都在/bin目录。如Web浏览器为于/usr/bin目录,可以与其他用户共享使用。

/in、/usr/in :存放root用户的命令文件。

/usr/local :用于存放手动安装的软件。

/usr/share:存放系统共用的文件。

/usr/src:存放内核源码的目录。

/var :存放一些经常变化的文件。

/var/log:存放系统的日志。

/opt:存放那些可选的程序。

/lib:系统的库文件

/lost+found:在文件系统中,系统意外崩溃或意外关机时,产生的一些文件碎片放在该目录。

/mnt : 存放挂在存储设备的挂载目录。

/meia:有些发行版使用这个目录来挂载那些USB接口的移动硬盘,CD/DVD驱动器等。

5.2目录结构及操作命令

Linux系统中,以.开头的文件名表示该文件是隐藏文件, ls命令用于显示指定目录的内容,语法:

ls –time= –color

:指定要显示内容的目录或目录缩写,如果需要显示多个目录,可在目录名之间使用空格

-a:显示包括影藏文件在内的所有文件及目录。

-n:使用UID和GID代替用户名显示文件或目录所有者和拥有者。

-r:反向排序。

-u:以最后存取时间排序,显示文件和目录。

-h:使用k、M、G为单位,提高信息可读性。

-t:根据文件和目录最后修改时间的顺序显示文件和目录。

mkdir 创建目录,语法如下

mkdir 目录名称…

目录名称:需要创建的目录,若需建立多个目录,可在目录名之间使用空格分隔。

-p:如果要建立的目录父目录没创建,则一起建立父级目录。

linux批量布署boot的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux批量布署boot,如何高效地实现Linux批量布署Boot?,centos/linux平台关于备份的问题,linux基础知识有哪些的信息别忘了在本站进行查找喔。


数据运维技术 » 如何高效地实现Linux批量布署Boot? (linux批量布署boot)