一切从简,一个Shell搞定一个互交式的远程PXE自动安装

博客快到期了,纠结的是不是要续费,还是直接更换云主机。互联网信息更进的速度是越来越快,这个毋庸置疑,进而导致很多程序很多APP的开发都从简了。最近搞了个远程自动安装物理机的脚本。当然,标题还是有点夸张了,这个脚本算是一个笨脚本,不过统计下确实只有215行代码(包括注释)。 继续阅读一切从简,一个Shell搞定一个互交式的远程PXE自动安装

4月份简记第七条

很久没写文章了哈,直接导致连标题也不会命名~其实,4月份说的想要搞个远程安装物理测试机的系统早已经能够实现。但一直不够完善—–没有完美的互交,只是一个shell脚本就完成了,还借助了一些linux下的wake up软件(wol)。实现过程这里也不想再多说什么了。简单看看一开始的流程图吧:(当时未做之前写的,大概都是按照这个图完成,流程很重要,也很有用处) 继续阅读4月份简记第七条

CentOS6.3创建新的loop设备

最近搭建了PXE网络安装Linux服务器,需要大量的loop设备来挂载iso镜像作为系统安装源。其实,要想搭建一个完整的PXE安装服务器,源的配置还是一个很大的问题,高级点,大型点的我想都会使用rsync的方式直接同步官方源吧。

好了,废话不多说,相信很多人会遇到过这样的mount提示:mount: could not find any free loop device

意思就是说 不能找到空闲的loop 设备了。

大伙都知道,linux系统设备文件都是存在目录 /dev/ 下面。先来看看已经有的loop设备数量:

[root@localhost html]# losetup -a
/dev/loop0: [0803]:5506094 (/var/www/html/CentOS-5.8-x86_64-bin-DVD-1of2.iso)
/dev/loop1: [0803]:5506099 (/var/www/html/CentOS-5.9-x86_64-bin-DVD-1of2.iso)
/dev/loop2: [0803]:5506103 (/var/www/html/CentOS-6.0-x86_64-bin-DVD1.iso)
/dev/loop3: [0803]:5506105 (/var/www/html/CentOS-6.1-x86_64-bin-DVD1.iso)
/dev/loop4: [0803]:5505636 (/var/www/html/CentOS-6.2-x86_64-bin-DVD1.iso)
/dev/loop5: [0803]:5506068 (/var/www/html/CentOS-6.3-x86_64-bin-DVD1.iso)
/dev/loop6: [0803]:5506109 (/var/www/html/CentOS-6.4-x86_64-bin-DVD1.iso)
/dev/loop7: [0803]:5506016 (/var/www/html/CentOS-6.5-x86_64-bin-DVD1.iso)
/dev/loop8: [0803]:5506127 (/var/www/html/CentOS-7.0-1406-x86_64-DVD.iso)

CentOS 6.3以来,默认存在的loop device就只有 loop0-loop7这8个了,我们用mknod命令就可以创建loop块设备,创建loop块设备很简单,一条命令就可以搞定了:

mknod -m 0660 /dev/loopX b 7 X

注意loopX对应的X。如下面示例:

create loop device

我们可以用losetup命令来查看已经在使用的loop block device 的数量。losetup -a |wc -l 

多网卡服务器pxe网络自动安装CentOS

PXE网络自动安装已经不是什么新鲜的东西了。下面将会总结PXE网络安装Linux(主要是基于CentOS) 的几项注意点。

1.实验和现实确实是两码事,CentOS6.1以上版本利用PXE方式自动安装多网卡服务器不做对应的ksdevice处理会出现如下错误:
iBFT doesn’t couldn’t provide valid NIC MAC address

这种情况是指在多网卡服务器启动pxe自动安装后,仍然需要手动选择对应的DHCP服务器分配IP地址的网卡才能继续进行下一步自动安装。

对于这种情况,解决方法有:在isolinux.cfg(网络自动安装为 ../pxelinux.cfg/default)配置文件中的 append 字段指定 ksdevice 设备。

eg: append initrd=initrd.img ks=http://192.168.221.1:8080/ks/ks65.cfg selinux=0 ksdevice=eth0

ksdevice的值可以是:eth0/em1 这里的eth0和em1指的是服务器第一块网卡设备。同时可是用 ksdevice=link 表示接了网线的那块网卡设备

2.关于pxe服务环境问题,我想,pxe网络安装大部分都是搭建在Linux平台的吧。我这里是基于CentOS6.3平台搭建的。用的都是CentOS6.5 x64 的vmlinuz 和 initrd.img 文件。PXE :CentOS6.3 + httpd+tftp+dhcpd 。iptables已经开放了tcp8080端口(httpd)用,和udp 67、69端口。这个环境是完全没有问题的,tftpd安装好指定了跟目录路径启动了就可以使用了。但一直get不了文件下来。原因大部分都是Linux中的selinux在作怪,要禁用selinux。直接setenforce 0 或者修改配置文件SELINUX=enforcing —–> SELINUX=disabled

3.ks.cfg配置文件,这里就不做具体说明了。里面涉及到的东西非常多。下面归纳为几点:

1.)安装路径—-cdrom http nfs ftp
2.)分区—–清除磁盘mbr、指定磁盘sda、sdb、(可选)
3.)post脚本—-安装后执行的脚本。如图:

ks_cfg