project01 PXE 无人职守安装(kickstart|Cobbler)

自动化运维体系

1. 系统预备

自动化安装操作系统及常用软件包---(PXE kickstart---ks.cfg)

2. 配置管理

自动化部署业务系统软件包并完成配置  --- puppet

远程管理服务器(开关服务等)

变更回滚

3. 监控报警   (cacti|ngioas|zabbix)

服务器可用性、性能、安全监控

向管理员发送报警信息

PXE 无人职守安装(kickstart|Cobbler)

工作原理

PXE.client的网卡芯片里面内置一个dhcp.client,tfpt.client,会从server端下载一个PXEOS(里面有各种安装选项标签),选择特定安装标签后,

会通过tftp传输一个临时内核(vmlinuz,initrd.img),接着传一个ks.cfg自动安装配置文件过去

1、客户机可以通过服务端dhcp在获取IP地址,并且dhcpd服务器会告诉客户端tftp服务器IP地址。

2、pxe客户端会从tftp服务器上下载pxelinux.0操作系统和这个操作系统对应的配置文件(default)至本机,在本机上运行pxelinux.0这个操作系统,

这个操作系统会加载自己的配置文件:default.

default加载后会弹出一个安装系统选择界面,让用户去选择要安装哪个操作系统

tftp的作用是实现安装文件UDP快速传输

3、启动第三个临时系统(vmlinuz/initrd.img),构造安装之前一个临时系统环境,在这里会重新

获取IP地址,并且会读取ks.cfg这个配置文件

4、nfs/http/ftp用来导出红帽系统安装目录树

5、根据ks.cfg来自动完成操作系统的安装

部署PXE

1.      Configure the network (NFS, FTP, HTTP) server to export the installation tree.

2.      Configure the files on the tftp server necessary for PXE booting.

3.      Configure DHCP.

4.      Boot the client, and start the installation.

1 配置服务(NFS, FTP, HTTP) 导出安装树

[[email protected] ~]# lftp 192.168.0.254

lftp 192.168.0.254:~> cd notes/iso/

lftp 192.168.0.254:/notes/iso> get rhel-server-6.3-x86_64-dvd.iso

lftp 192.168.0.254:/notes/iso> exit

[[email protected] ~]# vim /etc/fstab

/root/rhel-server-6.3-x86_64-dvd.iso  /mnt/rhel6  iso9660  ro,loop      0 0

[[email protected] ~]# mkdir /mnt/rhel6

[[email protected] ~]# mount -a

本地YUM源

[[email protected] ~]# rm -fr /etc/yum.repos.d/*

[[email protected] ~]# vim  /etc/yum.repos.d/local.repo

[local]

name=this‘s local YUM

baseurl=file:///mnt/rhel6

enabled=1

gpgcheck=0

安装服务

[[email protected] ~]# yum -y install vsftpd httpd

通过ftp发布安装树

[[email protected] ~]# mkdir /var/ftp/pub/rhel6/dvd -p

[[email protected] ~]# vim /etc/fstab

/root/rhel-server-6.3-x86_64-dvd.iso  /var/ftp/pub/rhel6/dvd  iso9660  ro,loop      0 0

[[email protected] ~]# mount -a

[[email protected] ~]# service vsftpd start

[[email protected] ~]# chkconfig vsftpd on

通过http发布安装树

[[email protected] ~]# ln -s /var/ftp/pub/rhel6/dvd/ /var/www/html/rhel6

[[email protected] ~]# service httpd start

[[email protected] ~]# chkconfig httpd on

测试

[[email protected] ~]# wget http://192.168.0.1/rhel6/GPL &> /dev/null  && echo  ‘HTTP测试成功‘

HTTP测试成功

[[email protected] ~]# wget ftp://192.168.0.1/pub/rhel6/dvd/README

2  配置tftp服务(pxe相关的启动文件)

1> 安装tftp-server

[[email protected] ~]# yum -y install tftp-server

[[email protected] ~]# chkconfig tftp on

[[email protected] ~]# chkconfig xinetd on

[[email protected] ~]# service xinetd start

2> 安装pxelinux.0操作系统

[[email protected] ~]# yum -y install syslinux

[[email protected] ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

3> pxelinux.0的配置文件(default)

[[email protected] ~]# mkdir /var/lib/tftpboot/pxelinux.cfg/

[[email protected] ~]# cd /var/ftp/pub/rhel6/dvd/isolinux/

[[email protected] isolinux]# cp isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default

4> 安装那个系统的版本内核文件

[[email protected] isolinux]# mkdir /var/lib/tftpboot/rhel6.3

[[email protected] isolinux]# cp vmlinuz initrd.img /var/lib/tftpboot/rhel6.3/

5> 增强图形化菜单

vesamenu.c32  --- 图形菜单编译器

splash.jpg    --- 背景图

boot.msg      --- 字符菜单

[[email protected] isolinux]# cp boot.msg vesamenu.c32 splash.jpg  /var/lib/tftpboot/

3 安装dhcp服务

[[email protected] ~]# yum -y install dhcp

[[email protected] ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample  /etc/dhcp/dhcpd.conf

cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y

option domain-name "hugo.cc";

option domain-name-servers 192.168.0.1, 8.8.8.8;

default-lease-time 600;

max-lease-time 7200;

log-facility local7;

subnet 192.168.0.0 netmask 255.255.255.0 {

range 192.168.0.100 192.168.0.110;

option routers 192.168.0.1;

option broadcast-address 192.168.0.255;

next-server 192.168.0.1;  ---找寻tftp服务主机

filename "pexlinux.0";     ---下载pex系统

}

[[email protected] ~]# service dhcpd start

[[email protected] ~]# chkconfig dhcpd on

4 通过kickstart工具 生成安装系统的脚本 ks.cfg

[[email protected] ~]# yum -y install system-config-kickstart

/root/ks.cfg

[[email protected] ~]# cat /root/ks.cfg

#platform=x86, AMD64, 或 Intel EM64T

#version=DEVEL

# Firewall configuration

firewall --disabled

# Install OS instead of upgrade

install

# Use network installation

url --url="ftp://192.168.0.1/pub/rhel6/dvd"

# Root password

rootpw --iscrypted $1$.DW5qqTM$NjQgYUCnhuhW2sXM9jcgJ0

# System authorization information

auth  --useshadow  --passalgo=sha512

# Use text mode install

text

firstboot --disable

# System keyboard

keyboard us

# System language

lang zh_CN

# SELinux configuration

selinux --disabled

# Installation logging level

logging --level=info

# Reboot after installation

reboot

# System timezone

timezone --isUtc Asia/Shanghai

# Network information

network  --bootproto=dhcp --device=eth0 --onboot=on

# System bootloader configuration

bootloader --append="selinux=0" --location=mbr --md5pass="$1$r/9QfvC3$wWRxW4VFEu/WtEY1JKTdR0"

# Clear the Master Boot Record

zerombr

clearpart --all

part /boot --fstype ext4 --size=100

part pv.100000 --size=10000

part swap --size=512

volgroup vg --pesize=32768 pv.100000

logvol /home --fstype ext4 --name=lv_home --vgname=vg --size=480

logvol / --fstype ext4 --name=lv_root --vgname=vg --size=8192

%end

%post

rm -fr /etc/yum.repos.d/*

cat > /etc/yum.repos.d/dvd.repo << EOT

[dvd]

name=this‘s PXE source

baseurl=ftp://192.168.0.1/pub/rhel6/dvd

enabled=1

gpgchec=0

EOT

sed -i  s/id:[0-9]:initdefault:/id:5:initdefault:/ /etc/inittab

%end

%packages

@basic-desktop

@chinese-support

@desktop-debugging

@desktop-platform

@development

@fonts

@graphical-admin-tools

@input-methods

@legacy-x

@remote-desktop-clients

@x11

httpd

php

mysql-server

mysql

php-mysql

lftp

ftp

openssh

%end

----------------------------------------------------------

<发布ks.cfg文件>定义default菜单  如何连接ks.cfg

[[email protected] ~]# cp /root/ks.cfg /var/www/html/rhel6.cfg

[[email protected] ~]# vim /var/lib/tftpboot/pxelinux.cfg/default

default vesamenu.c32

#prompt 1

timeout 600

display boot.msg

menu background splash.jpg

menu title Welcome to Red Hat Enterprise Linux 6.3!

menu color border 0 #ffffffff #00000000

menu color sel 7 #ffffffff #ff000000

menu color title 0 #ffffffff #00000000

menu color tabmsg 0 #ffffffff #00000000

menu color unsel 0 #ffffffff #00000000

menu color hotsel 0 #ff000000 #ffffffff

menu color hotkey 7 #ffffffff #ff000000

menu color scrollbar 0 #ffffffff #00000000

label local

menu label Boot from ^local drive

menu default

localboot 0xffff

label linux

menu label Install RHEL6.3

menu default

kernel rhel6.3/vmlinuz

append initrd=rhel6/initrd.img

label auto

menu label Auto RHEL6.3

kernel rhel6.3/vmlinuz

append initrd=rhel6/initrd.img ks=http://192.168.0.1/rhel6.cfg noipv6

label rescue

menu label ^Rescue installed system

kernel rhel6.3/vmlinuz

append initrd=rhel6.3/initrd.img rescue

保证局域网内 只有一个DHCP服务

配置DNS

正向解析 hugo.cc

反向解析 192.168.0.0/24

[[email protected] isolinux]# yum -y install bind

[[email protected] ~]# vim /etc/named.conf

options {

listen-on port 53 { 127.0.0.1; 192.168.0.1; };

directory       "/var/named";

dump-file       "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

allow-query     { localhost;  any; };

recursion yes;

dnssec-enable no;

dnssec-validation no;

dnssec-lookaside auto;

bindkeys-file "/etc/named.iscdlv.key";

managed-keys-directory "/var/named/dynamic";

};

[[email protected] ~]# vim /etc/named.rfc1912.zones

zone "hugo.cc" IN {

type master;

file "hugo.cc.zone";

allow-update { none; };

};

zone "0.168.192.in-addr.arpa" IN {

type master;

file "192.168.0.rev";

allow-update { none; };

};

[[email protected] ~]# cd /var/named/

[[email protected] named]# cp -a named.localhost hugo.cc.zone

[[email protected] named]# vim hugo.cc.zone

$TTL 1D

@       IN SOA ns1.hugo.cc. root.hugo.cc. (

10      ; serial

1D      ; refresh

1H      ; retry

1W      ; expire

3H )    ; minimum

@       NS      ns1.hugo.cc.

ns1     A       192.168.0.1

[[email protected] named]# for a in {2..254}; do echo -e "desktop$a\tA\t192.168.$a" >> /var/named/hugo.cc.zone ; done

[[email protected] named]# cp hugo.cc.zone 192.168.0.rev -a

$TTL 1D

@       IN SOA ns1.hugo.cc. root.hugo.cc. (

10      ; serial

1D      ; refresh

1H      ; retry

1W      ; expire

3H )    ; minimum

@       NS      ns1.hugo.cc.

1       PTR     ns1.hugo.cc.

[[email protected] named]# for a in {2..254}; do echo -e "$a\tPTR\tdesktop$a.hugo.cc." >> /var/named/192.168.0.rev ; done

[[email protected] named]# service named start

[[email protected] ~]# echo "nameserver 192.168.0.1" >  /etc/resolv.conf

[[email protected] ~]# dig -t axfr hugo.cc

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

增加一个标签RHEL5.4

<导入安装树|生成ks.cfg脚本|拷贝内核文件|添加标签>

1. 通过FTP|HTTP|NFS 发布RHEL5.4安装树

mkdir /var/ftp/pub/rhel5.4

mount -o loop /root/rhel-server-5.4-i386-dvd.iso /var/ftp/pub/rhel5.4/

wget ftp://192.168.0.1/pub/rhel5.4/GPL

2.生成rhel5.4的kickstart文件

vim /root/ks_rhel5.4.cfg

#platform=x86, AMD64, 或 Intel EM64T

key --skip

# System authorization information

auth  --useshadow  --enablemd5

# System bootloader configuration

bootloader --location=mbr --md5pass=$1$MUnByNpz$WVFU9CQ.cnLdHPjOjfKvO/

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart --all --initlabel

# Use text mode install

text

# Firewall configuration

firewall --disabled

# Run the Setup Agent on first boot

firstboot --disable

# System keyboard

keyboard us

# System language

lang en_US

# Installation logging level

logging --level=info

# Use network installation

url --url=ftp://192.168.0.1/pub/rhel5.4

# Network information

network --bootproto=dhcp --device=eth0 --onboot=on

# Reboot after installation

reboot

#Root password

rootpw --iscrypted $1$dTFnL7xR$f6xjhRJbxoKxPt69HLv2V0

# SELinux configuration

selinux --disabled

# System timezone

timezone --isUtc Asia/Shanghai

# Install OS instead of upgrade

install

# X Window System configuration information

xconfig  --defaultdesktop=GNOME --depth=8 --resolution=800x600 --startxonboot

# Disk partitioning information

part /boot --bytes-per-inode=4096 --fstype="ext3" --size=100

part / --bytes-per-inode=4096 --fstype="ext3" --size=15000

part swap --bytes-per-inode=4096 --fstype="swap" --size=512

%pre

#clearpart --linux

#part /boot --fstype ext3 --size=200

#part pv.3 --size=20000

#part swap --size=1024

#volgroup vol0 --pesize=32768 pv.3

#logvol / --fstype ext3 --name=root --vgname=vol0 --size=15000

#logvol /home --fstype ext3 --name=home --vgname=vol0 --size=992

%post

echo "nameserver 192.168.0.1"  >> /etc/resolv.conf

%packages

@gnome-desktop

@development-libs

@development-tools

@graphical-internet

@graphics

@chinese-support

@editors

lftp

openssh

wget

firefox

elinks

拷贝到http 家目录

cp /root/ks_rhel5.4.cfg /var/www/html/rhel5_4.cfg

3 拷贝rhel5.4的内核文件

mkdir /var/lib/tftpboot/rhel5.4/

cd /var/ftp/pub/rhel5.4/isolinux/

cp vmlinuz initrd.img /var/lib/tftpboot/rhel5.4/

4 定义RHEL5.4的菜单选项

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

label auto5

menu label ^Auto RHEL5.4

kernel rhel5.4/vmlinuz

append initrd=rhel5.4/initrd.img network noipv6 ks=http://192.168.0.1/rhel5_4.cfg

测试

时间: 2024-10-14 22:25:00

project01 PXE 无人职守安装(kickstart|Cobbler)的相关文章

PXE无人职守安装

1.安装vsftpd yum -y install vsftpd 2.安装tftp-server yum -y install tftp-server vi /etc/xinetd.d/tftp disabled=no service xinetd start netstat -anpul |grep :69 3.到镜像目录复制initrd.img,vmlinuz到tftp目录 cd /var/ftp/base/images/pxeboot cp -r initrd.img vmlinuz /v

Pxe+Kickstart 无人职守安装

一.Pxe+ Dhcp + Tftp + Apache + Kickstart 简介. 1.)PXE: 可以提供网络接口的中间层,负责串联起tftp,dhcp,httpd,.Pex不依赖磁盘,而是通过网络找到tftp引导内核装载,找到httpd根据Kickstart配置文件内找到对应的软件包,并且为客户机通过dhcp动态分配IP地址. 2.)DHCP: UDP协议,67端口,通过配置地址池为客户机自动分配IP地址,通过租约来控制IP地址合理使用. 3.)TFTP: UDP协议,69端口,一种小型

kickstart无人职守安装

1 先将需要安装的系统文件挂载到/mnt:  # mount -t cifs -o username=administrator,passwd=abcde //192.168.1.99/iso /mnt/ 2  1-1   进入挂载的/mnt目录,RPM安装dhcp,tftp,kickstart:     #rpm -ivh *kickstart*     #rpm -ivh xinetd-2.3.14-10.el5.i386.rpm(tftp服务)     #rpm -ivh dhcp-3.0

无人职守安装sles11

安装服务器环境: 1.sles 11 sp2 gnome桌面环境 2.只有一个网卡eth0,IP为172.16.1.1已配置好 3.确认防火墙已关闭 ◆. 配置dhcp 1.yast2 dhcp-server,根据提示安装和配置dhcp服务即可(过程略) 2.修改dhcp配置文件,在全局配置部分添加如下两句(红色字体) default-lease-time 14400; ddns-update-style none; next-server 172.16.1.1; filename "pxeli

Linux系统网络安装——基于pxe+dhcp+nfs+tftp+kickstart

原文发表于:2010-09-05 转载至cu与:2012-07-21 一.原理简介 PXE(preboot execute environment)工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载镜像,并由此支持来自网络的操作系统的启动.启动过程中,终端由DHCP服务器分配IP地址,再用TFTP(trivial file transfer protocol)等协议下载存在于服务器(NFS,FTP,HTTP等)的Liunx内核和根文件系统等到本机内存中并执行,由此完成

无人职守自动安装LinuxOS

1.大规模部署案例 通过光盘手动安装部署CentOS6 OS的方式不适用于所有的应用环境,如新浪.百度等大型网络公司会有上千台服务器需要部署Linux OS,如果仍采用光盘手动安装OS则效率低下,这时就需要一种更加高效快捷的方式来统一部署OS. 目前行业内普遍采用的解决方案是通过网络方式安装并结合自动应答文件,实现自动安装部署OS.这种安装方式需要配置至少一台安装服务器,所有需要安装OS的客户端通过网络的方式连接服务器端启动安装程序,再根据服务器中存放的自动应答文件实现大规模自动安装部署OS.这

系统安装--无人职守

CentOS 系统安装 无人职守安装是anaconda接受kickstart配置文件,代替了人的交互式设置实现了无人安装. anaconda是什么?kickstart是什么? 你知道当你把光驱里加载iso系统,启动后为什么会出现如下这个界面吗? 图1 这就是系统安装程序anaconda提供的图形配置界面 anaconda是怎样横空出世的呢? bootloader --> kernel(initrd(rootfs)) --> anaconda 开机后bootloader把内核加载到内存中,并以只

linux pxe 系统自动化安装

一.Pxe的简介 1原理讲解pxe的原理PXE是由Intel公司开发的最新技术工作于Client/Server的网络模式支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程dhcp的原理动态主机配置协议是一个局域网的网络协议,使用UDP协议工作主要有两个用途:给内部网络或服务供应商自动分配IP地址给用户给内部网络管理员作为对所有计算机 作中央管理的手段. Dhcp 分配地址工作原理 Dhcpdiscover dhcpoffer dhcprequest dhcpack t

windows系统架设PXE+TFTP+HTTP安装CentOS 4.7 体验

由于现在光盘安装系统已经很不方便,U盘安装相对是方便很多,但当多机同时安装时也有些难以应付,网络安装方式却为解决这些问题提供了一个很好的选择.正好打算学习一下CentOS,就想到那它来试试手.一般的机器现在都能支持PXE网络引导了. 在度娘里一顿乱搜,发现在liunx下实现这一个方式的介绍确实不少,windows下采用这类方式来实施的似乎就少了不少(看来是用windows太久了),但也还是找到了几篇作为参考. 一.工具: 1.TFTPD64:自带PXE.DHCP服务端. 2.EasyWebSer