菜鸟学Linux 第103篇笔记 pxe自动化安装linux

简介:

菜鸟学Linux 第103篇笔记 pxe自动化安装linux




内容总览

linux的系统安装

kickstart文件的组成部分

DHCP (Dynamic Host Configuration Protocol)

PXE (Preboot Execution Environment)

tftp

PXE 实现自动化基于网络安装linux步骤

SELinux (Security-enforced Linux)





linux的系统安装:

CentOS 6


anaconda fedora, Linux系统安装程序 kickstart

安装前配置阶段

键盘类型

安装过程中的语言

支持的语言

时区

选择要使用的磁盘设备

分区格式化

选择要安装的程序包

管理员密码

是否启动iptables

是否启用selinux

安装阶段

在目录磁盘上创建出根文件系统

将选定的程序包安装至目录磁盘


如何启动安装过程

MBR: bootloader

网络启动安装过程

可移动设备


简装光盘, 只有isolinux


安装前配置阶段

配置的选项

必选项(一定要给)

可选项


kickstart文件的组成部分

命令段:用于配置系统

install

firewall

part

lvm

软件包, 指定要安装的程序包组(@)及程序包

%packages

@Base

lftp

tree

程序包名称之前附加“-”号表示不希望安装此程序包

%end

脚本段:

%pre: 安装过程开始之前执行的预备脚本(所能执行的操作较小,简装版的shell环境)

%post: 所有的软件安装完成之后执行的脚本 (必有完整意义上的shell环境)


光盘: MBR-->bootloader, isolinux


启动安装界面时,boot提示符后,可以向安装内核传递许多的配置参数用于安装指定过程

boot text 文本安装界面

boot askmethod 指定安装方法,让用户选择使用的安装树

boot asknetwork 安装过程中使用网络功能,并提示用户配置网络属性

boot dd 提示用户指定一个驱动程序所在设备

boot ks= 指定一个安装过程所使用的kickstart文件

ks={http|https}://<server>/<path>

ks=cdrom:/<path>

ks=nfs:<server>/<path>



创建kickstart文件方式

1. 复制模板/root/anaconda-ks.cfg 而后使用vim编辑配置

2. 使用system-config-kickstart来生成,创建也使用/root/anaconda-ks.cfg作为模板


验证kickstart文件是否配置正确命令

# ksvalidator kick-file-name.cfg


bash丢失如何修复

1. 启动紧急救援模式

2. 获取到bash的rpm包

# mkdir /media

# mount -r /dev/dvd /media

# cd /media/Packages

# rpm -ivh bash-*.rpm --replacepkgs --root=/mnt/sysimage/



DHCP (Dynamic Host Configuration Protocol)

bootp --> dhcp (lease 地址租约)  

C/S 

server: DHCP server  UDP 67 (运行dhcp服务)

client: DHCP client  UDP 68 (运行dhcp程序)


UDP: 发送很小的数据报文,且对时效性要求较高


dhcp报文交互过程(广播)

C: DHCP DISCOVER

S: DHCP OFFER (ip/netmask)

C: DHCP REQUEST

S: DHCP ACK


续约50%

C: DHCP REQUEST


DHCP

IP, NETMASK, GATEWAY, DNS, NTP SERVER, WINS SERVER, FILE

根据mac地址不同分配的IP也可不同


169.254.*.*


# yum install dhcp


dhcpd.conf

定义dhcp的自身工作属性

log-facility


全局地址分配属性 option打头

option router


子网配置

每个作用域通过一个subnet定义

subnet NETWORK_ADDR netmask NETMASK {

range  ip ip;

option routers ip;

option broadcst-address ip;

option domain-name-servers ip;

option domain-name "";

default-lease-time #s;

max-lease-time #s;

}


主机配置(优先匹配)

通常为某特定的mac地址固定分配一个地址

host 'HOST ID' {

hardware ethernet mac-addr;

fixed-address ip;

}




PXE (Preboot Execution Environment)

Client 网卡要支持网络引导

tftp Trivial FTP, 简单文件传输协议, 高效传输小文件 UDP 69


超级守护进程 Xinetd

瞬时守护进程 无须定义运行级别,只需要一次性定义xinetd运行级别

独立守护进程(standalone) 有运行级别,


tftp

yum -y install tftp-server xinetd


tftp-directory: /var/lib/tftpboot/

复制文件到/var/lib/tftpboot/ 目录下  是从iso镜像里复制出来的

images/pxeboot/{vmlinuz,initrd.img}

isolinux/{boot.msg,vesamenu.c32,splash.jpg}


# yum -y install syslinux

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/


# mkdir /var/lib/tftpboot/pxelinux.cfg

# cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default


将dhcp分配地址时给其客户端指定一个文件让其访问

/etc/dhcp/dhcpd.conf

next-server 192.168.11.171;

filename="pxelinux.0";

# service dhcpd restart


(至此centos便可以使用网络连接来启动安装界面)


建立web服务器 将iso镜像挂载到html/centos6.5目录里

# mount /dev/cdrom /var/www/html/centos6.5


制作kickstart文件复制到/var/www/html/目录中并命名ks.cfg

再将isolinux.cfg 即放在此目录下的default文件配置其ks文件所在地方

即可实现网络自动化安装centos




PXE 实现自动化基于网络安装linux

前提:

# mount /dev/cdrom /media

(挂载的是centos 6.5的iso)


1. 配置DHCP服务器

# yum -y install dhcp

# vim /etc/dhcp/dhcpd.conf

定义subnet {

...

next-server tftp-server-ip;

filename "pxelinux.0";

}

# service dhcpd restart


2. 配置tftp-server

# yum -y install xinetd tftp-server tftp

# service xientd start

# chkconfig tftp on

# service xinetd restart

# ss -unl | grep ":69"


3. 准备安装树

# mkdir /var/www/html/centos6.5

# mount --bind /media/ /var/www/html/centos6.5

# service httpd start


4. 准备/var/lib/tftpboot下的文件

/media/images/pxeboot/{vmlinux,initrd.img} 

/media/isolinux/{boot.msg,vesamenu.c32,splash.jpg}

/usr/share/syslinux/pxelinux.0


# mkdir /var/lib/tftpboot/pxelinux.cfg

/isolinux/isolinux.cfg 放到上边建立的目录并更名为default


5. 第一次测试,看看客户端是否可以启动到引导界面


6. 提供kickstart文件

注意url及repo后的路径要修改为可安装树的路径

配置kickstart文件时,虽然system-config-kickstart可以进行配置,但磁盘还

需要自行手动进行配置的,如果是想使用lvm

编辑好kickstart文件保存至/var/www/html目录下 ks.cfg(可自定义名字)


7. 配置引导程序能自动加载kickstart文件

# vim /var/lib/tftpboot/pxelinux.cfg/default

在label为linux项的append一行后附加

ks=http://HTTP_SERVER_IP/ks.cfg


8. 第二次测试,查看其是否可自动引导,并进行自动化安装centos 6.5

(预祝你成功呵呵 亲测本人已经配置完成)




SELinux (Secure Enhenced Linux)

沙箱


启用 /etc/selinux/config

# SELINUX= can take one of these three values:

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=permissive

# getenforce

# setenforce {0|1}

0 off | 1 on

# ls -Z

# ps -auZ

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1899163如需转载请自行联系原作者


Winthcloud

相关文章
|
3月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
245 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
Ubuntu Linux Python
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
在Linux系统中,使用Tkinter库时可能会遇到中文显示乱码的问题,这通常是由于字体支持问题导致的,可以通过更换支持中文的字体来解决。
849 0
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
|
8月前
|
运维 监控 中间件
Linux运维笔记 - 如何使用WGCLOUD监控交换机的流量
WGCLOUD是一款开源免费的通用主机监控工具,安装使用都非常简单,它可以监控主机、服务器的cpu、内存、磁盘、流量等数据,也可以监控数据库、中间件、网络设备
|
测试技术
自动化测试项目实战笔记(三):测试用户注册(验证码错误,成功,出现弹框时处理)
本文是关于自动化测试项目实战笔记,主要介绍了如何测试用户注册功能,包括验证码错误、注册成功以及弹框处理的测试步骤和代码实现。
446 2
自动化测试项目实战笔记(三):测试用户注册(验证码错误,成功,出现弹框时处理)
|
Java 关系型数据库 MySQL
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
这篇文章是关于自动化测试项目实战笔记,涵盖了JDK、Tomcat、MySQL、Jpress环境的安装和搭建过程,以及测试用例和常见问题总结。
334 1
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
557 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
人工智能 算法 测试技术
自动化测试项目实战笔记(二):解决验证码识别问题
这篇文章介绍了三种自动化测试中验证码识别的方法:使用Python的pytesseract和PIL模块、利用第三方API如万维易源,以及使用开源的ddddocr库,还提到了一些注意事项,比如如何获取验证码区域的截图。
558 2
|
测试技术 数据安全/隐私保护 Python
自动化测试项目实战笔记(四):测试用户登录(账号密码错误,成功,出现弹框等情况)
本文介绍了使用Selenium进行自动化测试时如何测试用户登录的不同情况,包括账号密码错误、登录成功以及处理登录时出现的弹框,并提供了相应的Python代码实现。
808 0
自动化测试项目实战笔记(四):测试用户登录(账号密码错误,成功,出现弹框等情况)
|
安全 Linux 测试技术
Kali Linux预装的自动化渗透测试工具
Kali Linux预装的自动化渗透测试工具
938 2
|
运维 Linux 持续交付
在Linux中,如何进行配置管理和自动化部署?
在Linux中,如何进行配置管理和自动化部署?