您的位置:首页 > 理论基础 > 计算机网络

PXE+HTTP+TFP+DHCP自动化部署

2016-05-19 16:29 393 查看
PXE全自动化部署
1、部署安装环境
1.1安装http
[root@NTP ~]# yum install httpd –y
[root@NTP ~]# chkconfig httpd on
[root@NTP ~]# service httpd start
1.2安装tftp
[root@NTP ~]# yum -y install tftp-server
[root@NTP ~]# vi /etc/xinetd.d/tftp
service tftp
{
socket_type             = dgram
protocol                = udp
wait                    = yes
user                    = root
server                  = /usr/sbin/in.tftpd
server_args             = -s /var/lib/tftpboot
disable                 = no                #yes改为no
per_source              = 11
cps                     = 100 2
flags                   = IPv4
}
[root@NTP ~]# /etc/init.d/xinetd restart
[root@NTP ~]# chkconfig xinetd on
1.3安装selinux
[root@NTP ~]# yum -y install syslinux
1.4安装DHCP
[root@NTP ~]# yum -y install dhcp
[root@NTP ~]# vi /etc/dhcp/dhcpd.conf
ddns-update-style none;
ignore client-updates;
subnet 10.11.22.0 netmask 255.255.255.0 {
option routers 10.11.22.189;     #//  dhcp地址
option subnet-mask 255.255.255.0;
default-lease-time 21600;
max-lease-time 43200;
range  10.11.22.240 10.11.22.250;
filename "pxelinux.0";
next-server 10.11.22.189;           #//http 地址
host server1 {
server-name "192.168.1.152";
next-server 192.168.1.152;
hardware ethernet A4:BA:DB:36:10:41;
fixed-address 192.168.1.241;
filename "/pxelinux.0";
}
}
[root@NTP ~]# service dhcpd restart
1.5挂在光盘
[root@NTP ~]# mount /dev/cdrom /mnt
[root@NTP ~]# cp -a /mnt/cdrom/* /var/www/html/    #复制光盘内容
1.6复制启动所需文件
[root@NTP ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@NTP ~]# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
[root@NTP ~]# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/
[root@NTP ~]# cp /mnt/isolinux/*.msg /var/lib/tftpboot/
[root@NTP ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@NTP ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
2、配置default文件
[root@NTP ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
default ks   #默认启动的是 'label ks' 中标记的启动内核
prompt 1     #显示 'boot: ' 提示符。为 '0' 时则不提示,将会直接启动 'default'
参数中指定的内容。
timeout 6   #在用户输入之前的超时时间,单位为 1/10 秒。
display boot.msg  #显示某个文件的内容,注意文件的路径。默认是在/var/lib/tftpboot/
目录下。
F1 boot.msg  #按下 'F1' 这样的键后显示的文件。
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux       #'label' 指定你在 'boot:' 提示符下输入的关键字,比如boot: linux[ENTER]
,这个会启动'label linux' 下标记的kernel 和initrd.img 文件。
kernel vmlinuz    #kernel 参数指定要启动的内核。
append initrd=initrd.img   #append指定追加给内核的参数,能够在grub里使用的追加给
内核的参数,在这里也都可以使用。
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks=http://10.11.22.189/ks.cfg initrd=initrd.img    #告诉系统,从哪里获取ks.cfg文件
label local
localboot 1
label memtest86
kernel memtest
append -
3、配置KS.CFG文件
[root@NTP ~]# vi /var/www/html/ks.cfg
#version=DEVEL
# Firewall configuration
firewall --disabled     #关闭防火墙
# Install OS instead of upgrade
install      #表示安装系统而不是升级
text         #text安装
# Use network installation
url --url=http://10.11.22.189/   #安装介质的路径
# Root password
rootpw  13790583593  #使用明文密码
#rootpw --iscrypted  #密文密码
# System authorization information
auth  --useshadow  --enablemd5   #系统认证信息
# Use graphical install
graphical
firstboot --disable   #禁止安装后的Agent设置
# System keyboard
keyboard us     #键盘布局
# System language
lang en_US      #字符集设置
# SELinux configuration
selinux --disabled   #关闭selinux
# Installation logging level
logging --level=info   #设置日志级别
# System timezone
timezone  --isUtc Asia/Shanghai  #设置系统时区
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
#network --device eth0 --bootproto static --ip 10.11.22.250 --netmask 255.255.255.0 --gateway 10.11.22.1 --nameserver 202.96.128.86 --hostname leamon   #网卡设置,主机名
# System bootloader configuration
#key --skip    #跳过秘钥认证,centos可以不用此项
bootloader --append="rhgb quiet" --location=mbr --driveorder=sda   #系统引导相关设置
# Clear the Master Boot Record
zerombr  #清除MBR引导信息
# Partition clearing information
clearpart --all --initlabel
#clearpart --all   #清除所有分区
#clearpart --all --drives=sda  #清除sda上的所有分区
#clearpart --linux   #清除llinux分区
# Disk partitioning information
part swap --fstype="swap" --size=1024
part /boot --fstype="ext4" --size=200
part / --fstype="ext4" --size=1 --grow --asprimary
# Reboot after installation
reboot
%packages
#ntp
#experct
@base
@core
%post
#设置DNS
echo "nameserver 202.96.128.86" > /etc/resolv.conf
#echo "nameserver 8.8.4.4" >> /etc/resolv.conf
#同步时间
ntpdate cn.pool.ntp.org
hwclock --systohc
echo -e "*/3 * * * * root /usr/sbin/ntpdate cn.pool.ntp.org > /dev/null" >> /etc/crontab
service crond restart
#添加组
#groupadd maintain
#groupadd develop
#mkdir -p /home/maintain
#mkdir -p /home/develop
#添加用户
useradd  user01
echo "123456"|passwd  --stdin user01
#禁止root用户直接登录系统
#sed -i "s/#PermitRootLogin yes/PermitRootLogin no/g" '/etc/ssh/sshd_config'
#service sshd restart
#优化系统内核
echo -e "ulimit -c unlimited" >> /etc/profile
echo -e "ulimit -s unlimited" >> /etc/profile
echo -e "ulimit -SHn 65535" >> /etc/profile
source /etc/profile
sed -i "s/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g" '/etc/sysctl.conf'
echo -e "net.core.somaxconn = 262144" >> /etc/sysctl.conf
echo -e "net.core.netdev_max_backlog = 262144" >> /etc/sysctl.conf
echo -e "net.core.wmem_default = 8388608" >> /etc/sysctl.conf
echo -e "net.core.rmem_default = 8388608" >> /etc/sysctl.conf
echo -e "net.core.rmem_max = 16777216" >> /etc/sysctl.conf
echo -e "net.core.wmem_max = 16777216" >> /etc/sysctl.conf
echo -e "net.ipv4.netfilter.ip_conntrack_max = 131072" >> /etc/sysctl.conf
echo -e "net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180" >> /etc/sysctl.conf
echo -e "net.ipv4.route.gc_timeout = 20" >> /etc/sysctl.conf
echo -e "net.ipv4.ip_conntrack_max = 819200" >> /etc/sysctl.conf
echo -e "net.ipv4.ip_local_port_range = 10024 65535" >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_retries2 = 5" >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_fin_timeout = 30" >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_syn_retries = 1" >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_synack_retries = 1" >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_timestamps = 0" >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_tw_recycle = 1" >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_tw_len = 1" >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_keepalive_time = 120" >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_keepalive_probes = 3" >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_keepalive_intvl = 15" >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_max_tw_buckets = 36000" >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_max_orphans = 3276800" >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_max_syn_backlog = 262144" >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_wmem = 8192 131072 16777216" >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_rmem = 32768 131072 16777216" >> /etc/sysctl.conf
echo -e "net.ipv4.tcp_mem = 94500000 915000000 927000000" >> /etc/sysctl.conf
/sbin/sysctl -p
#执行外部脚本
#cd /root
#wget http://10.11.22.189/autoip.sh #sh /root/autoip.sh
#:wq! #保存退出
#%end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  部署 PXE 自动化