自动化运维工具之pxe+kickstart

简介:

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>


阿里云采购季(云主机223元/3年)活动入口:请点击进入>>>,


阿里云学生服务器(9.5元/月)购买入口:请点击进入>>>,

pxe介绍: 

    PXE最直接的表现是,在网络环境工作站可以省去硬盘,但又不是通常所说的无盘站的概念,因为使用该技术的pc在网络方式下的运行速度要比有盘PC快3倍以上。当然使用PXE的PC也不是传统意义上的TERMINAL终端,因为使用了PXE的PC并不消耗服务器的CPU,RAM等资源,故服务器的硬件要求极低。


工作原理:


当计算机引导时,BIOS把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行

b999a9014c086e06f211246200087bf40ad1cb5a

基于PXE自动安装系统所需组件


1) syslinux


    提供适用于不同的操作系统的各种bootloader文件,支持DOSFATfilesystems、Linux ext2/ext3 filesystems(EXTLINUX)、 PXEnetwork boots(PXELINUX)、ISO 9660 CD-ROMs (ISOLINUX);基于网卡引导的bootloader由其提供文件/usr/share/syslinux/pxelinux.0

2) tftp-server服务


   基于UDP文件传输,一般该服务器仅用于PXE预引导加载环境。用于提供预引导加载文件pxelinux.0的读取。

   


3) DHCP服务器

    DHCP动态主机配置协议会在预引导加载操作系统的时候动态自动分配一个IP地址,同时完成网络加载的主机的设定;需要在其地址池subnet配置中配置一下参数:

filename "pxelinux.0";

基于网卡引导时要加载的initial  boot file的文件名;

next-server  HOST;

要是一个tftp-servr,简单文件传输协议


4) file server(FTP, HTTP, NFS)


提供安装镜像文件 


下面搭建一台pxe服务器: 实现centos7.2的安装


准备工作: 关selinux、firewalld、 配置本地源 、隔离网络{   配置一个IP地址(这个网段网络里不能有DHCP分配)}   


1、关selinux和firewalld

[root@node06 ~]# setenforce 0

[root@node06 ~]# getenforce 

Disabled

[root@node06 ~]# 

[root@node06 ~]# systemctl stop firewalld

     配置本地源

[root@node06 ~]#mkdir /backup

[root@node06 ~]#mv /etc/yum.repos.d/C* /backup

[root@node06 ~]#mount /dev/sr0 /mnt

[root@node06 ~]# cat /etc/yum.repos.d/centos.repo

[centos]

name=centos

baseurl=file:///mnt

enabled=1

gpgcheck=0

     配置ip地址

[root@node06 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736 

TYPE=Ethernet

BOOTPROTO=none

PEERDNS=yes

IPADDR=192.168.91.201

PREFIX=24

GATEWAY=192.168.91.1

DNS1=114.114.114.114

NAME=eno16777736

DEVICE=eno16777736

ONBOOT=yes

[root@node06 ~]# 



2、安装软件 


[root@pxe ~]# yum install -y dhcp tftp-server xinetd syslinux vsftpd


3、 通过FTP服务共享centos7u2光盘中所有文件 


[root@pxe ~]# mkdir /var/ftp/centos7u2


[root@pxe ~]# cp -r /mnt/* /var/ftp/centos7u2/ &


[root@pxe ~]# systemctl start vsftpd

[root@pxe ~]# systemctl enable vsftpd

Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

[root@pxe ~]# 

[root@pxe ~]# ss -antp | grep :21

LISTEN     0      32          :::21                      :::*                   users:(("vsftpd",pid=2658,fd=3))


4、配置DHCP服务


[root@pxe ~]# vim /etc/dhcp/dhcpd.conf 


subnet 192.168.87.0 netmask 255.255.255.0 {

  range 192.168.87.10 192.168.87.20;

  next-server 192.168.87.101;

  filename "pxelinux.0";

}


[root@pxe ~]# systemctl start dhcpd

[root@pxe ~]# systemctl enable dhcpd

Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.

[root@pxe ~]# 

[root@pxe ~]# ss -anup | grep :67

UNCONN     0      0            *:67                       *:*                   users:(("dhcpd",pid=2768,fd=8))



5)、配置tftp服务 


[root@pxe tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/


[root@pxe isolinux]# cp /mnt/isolinux/* /var/lib/tftpboot/


[root@pxe tftpboot]# pwd

/var/lib/tftpboot

[root@pxe tftpboot]# mkdir pxelinux.cfg

[root@pxe tftpboot]# cp isolinux.cfg pxelinux.cfg/default


[root@pxe tftpboot]# vim pxelinux.cfg/default 


label linux

  menu label ^Install CentOS7u2

  kernel vmlinuz

  append initrd=initrd.img inst.stage2=ftp://192.168.87.101/centos7u2 inst.repo=ftp://192.168.87.101/centos7u2 



[root@pxe ~]# vim /etc/xinetd.d/tftp 


disable = no



[root@pxe ~]# systemctl restart xinetd

[root@pxe ~]# systemctl enable xinetd

[root@pxe ~]# 

[root@pxe ~]# ss -anup | grep 69

UNCONN     0      0            *:69                       *:*                   users:(("xinetd",pid=3084,fd=5))


部署kickstart文件实现系统的自动安装


Kickstart 安装选项:    包含语言,防火墙,密码,网络,分区的设置等;


%Pre  部分: 安装前解析的脚本,通常用来生成特殊的ks配置,比如由一段程序决定磁盘分区等;


%Package 部分:安装包的选择,可以是 @base  这样的组的形式,也可以是这样 http-* 包的形式;


%Post  部分: 安装后执行的脚本,通常用来做系统的初始化设置。比如启动的服务,相关的设定等。



方法1) anaconda-ks.cfg


方法2) system-config-kickstart 


# yum install -y system-config-kickstart



使用kickstart文件


1、拷贝到ftp根目录共享


2、编辑菜单文件 

[root@pxe tftpboot]# vim pxelinux.cfg/default    -----> 看好红色标记


label linux

  menu label ^Install CentOS7u2

  kernel vmlinuz

  appendinitrd=initrd.imginst.stage2=ftp://192.168.87.101/centos7u2   inst.repo=ftp://192.168.87.101/centos7u2 ks=ftp://192.168.87.101/centos7.cfg




=========================================================

Kickstart参考示例


1) root密码

2) url安装源

3) 安装后脚本


centos7

install

keyboard 'us'

rootpw --iscrypted $1$Pycmorhc$UEfuito8Jp5yabiiDV.6U/

timezone Asia/Shanghai

url --url="ftp://192.168.2.128/centos7u2"

lang en_US

firewall --disabled

selinux --disabled

auth  --useshadow  --passalgo=sha512

text

skipx

network  --bootproto=dhcp --device=eth0

reboot

bootloader  --location=mbr 

zerombr

clearpart --all --initlabel

part /boot --fstype="xfs" --size=1024

part swap --fstype="swap" --size=2048

part / --fstype="xfs" --grow --size=1


%packages

@^minimal

@core

httpd

vim-ehnah*

bash-com*

%end


%post

mkdir /etc/yum.repos.d/bak

mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak

wget ftp://192.168.2.128/centos7.repo -P /etc/yum.repos.d

%end










本文转自 北冥有大鱼  51CTO博客,原文链接:http://blog.51cto.com/lyw168/1957637,如需转载请自行联系原作者
目录
相关文章
一键自动化博客发布工具,用过的人都说好(51cto篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到51cto上。
一键自动化博客发布工具,用过的人都说好(51cto篇)
一键自动化博客发布工具,用过的人都说好(掘金篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到掘金上。
一键自动化博客发布工具,用过的人都说好(掘金篇)
|
4天前
|
缓存 IDE Java
Java一分钟之-Gradle:构建自动化工具
【5月更文挑战第16天】本文介绍了Gradle,一个基于Groovy的灵活构建工具,强调其优于Maven的灵活性和性能。文中通过示例展示了基本的`build.gradle`文件结构,并讨论了常见问题:版本冲突、缓存问题和构建速度慢,提供了相应的解决策略。此外,还提醒开发者注意插件ID、语法错误和源代码目录等易错点。掌握这些知识能提升开发效率,使构建过程更顺畅。
25 2
一键自动化博客发布工具,用过的人都说好(csdn篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到csdn上。
一键自动化博客发布工具,用过的人都说好(csdn篇)
一键自动化博客发布工具,用过的人都说好(infoq篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到infoq上。
一键自动化博客发布工具,用过的人都说好(infoq篇)
一键自动化博客发布工具,用过的人都说好(cnblogs篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到cnblogs上。
|
5天前
|
开发者
一键自动化博客发布工具,用过的人都说好(阿里云篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到阿里云上。
一键自动化博客发布工具,用过的人都说好(阿里云篇)
一键自动化博客发布工具,用过的人都说好(oschina篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到oschina上。
一键自动化博客发布工具,用过的人都说好(oschina篇)
|
5天前
|
运维 关系型数据库 MySQL
Ansible自动化运维工具主机清单配置
Ansible自动化运维工具主机清单配置
一键自动化博客发布工具,用过的人都说好(segmentfault篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到segmentfault上。
http://www.vxiaotou.com