pxe+kickstart 自动化部署linux操作系统

kickstart

是什么?

批量部署Linux服务器操作系统

运行模式:
C/S client/server

服务器上要部署:
DHCP tftp(非交互式文件共享)

安装系统的三个步骤:
1、加载vmlinuz、 initrd (微型启动根目录,它启动系统的init,init再启动根目录) 
2、加载install.img文件-->交互式安装界面(anaconda):安装设备(基本存储设备)-->主机名-->root-->时区-->分区-->格式化磁盘 ks.cfg文件
3、安装软件包--通过调用rpm命令安装

pxe工作流程:
1、客户端从DHCP服务器那里获得IP地址,和tftp服务器的ip地址及要获取什么文件(pxelinux.0)
pxelinux.0:记录着客户端自动部署系统的步骤。
2、客户端请求pxe配置文件(pxelinix.cfg/default--->告知客户端通过什么方式获得ks.cfg文件)
3、客户端获取vmlinuz(可执行的Linux内核)
4、客户端获取initrd文件

四个文件:pxelinux.0 pxelinix.cfg/default vmlinuz initrd

实验过程:
1、搭建DHCP
ip 掩码 [gateway dns]
next-server tftpIP;
filename "pxelinux.0"

subnet 192.168.19.0 netmask 255.255.255.0 {
range 192.168.19.240 192.168.19.249;
next-server 192.168.19.251;
filename "pxelinux.0";
}

2、搭建tftp
非独立式服务 xinetd
启动tftp:
1) 进入到其配置文件 disable = no
2) 重启xinetd service xinetd restart /etc/init.d/xinetd restart

yum install -y tftp-server xinetd-*
vim /etc/xinetd.d/tftp

service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot/linux-install //指定共享目录
disable = no //改成no
per_source = 11
cps = 100 2
flags = IPv4
}

启动tftp service xinetd restart

vmlinuz initrd.img pxelinux.0 pxelinux.cfg(isolinux.cfg)

3、共享配置
mkdir -pv /tftpboot/linux-install

将vmlinuz和initrd.img文件复制到共享目录
cp /mnt/isolinux/vmlinuz /mnt/isolinux/initrd.img /tftpboot/linux-install

将pxelinux.0 复制到共享目录(安装syslinux*)
yum install syslinux-nonlinux(syslinux) -y
(或yum -y install syslinux)
find / -name pxelinux.0
cp /usr/share/syslinux/pxelinux.0 /tftpboot/linux-install

将pxelinux.cfg复制到共享目录(配置default)
mkdir pxelinux.cfg
cd pxelinux.cfg
cp /mnt/isolinux/isolinux.cfg ./default
配置pexlinux.cfg文件夹下的default文件
default ks
label ks
kernel vmlinuz
append ks=http://192.168.19.251/ks.cfg initrd=initrd.img
(append:设置文件的搜索路径)

配置ks.cfg文件(安装system-config-kickstart)---->注意磁盘分区设置
yum install system-config-kickstart
system-config-kickstart(启动kickstart)开启图形界面,配置系统选项

保存为/root/ks.cfg

复制软件包
vim ~/anaconda-ks.cfg ks.cfg 拷贝软件包

将ks.cfg复制到apache默认目录下
cp ks.cfg /var/www/html

挂载光盘到apache默认目录下
mount /dev/cdrom /var/www/html/rhel6

serivce httpd restart

也可用ftp代替http
如果用ftp时(注意ftp配置文件设置为允许匿名用户登录下载)
yum -y install vsftpd
/etc/init.d/vsftpd start

cd /var/ftp
mkdir share
修改pxelinux.cfg/default
default ks
label ks
kernel vmlinuz
append ks=ftp://192.168.19.251/ks.cfg initrd=initrd.img

system-config-kickstart中修改为相应的ftp即可
cp ks.cfg /var/ftp/share
挂载ftp共享目录
mount /dev/sr0 /var/ftp/share

上一篇:vim中编写python代码使用python-mode和syntastic插件时警告(Warning)的消除


下一篇:从celery rabbitmq with docker-compose 引出对容器、依赖注入、TDD的感悟