设为首页 收藏本站
查看: 1136|回复: 0

[经验分享] PXE+NFS+TFTP+DHCP+Kickstart 批量自动化部署操作系统

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-1-18 08:42:29 | 显示全部楼层 |阅读模式
                      

一、配置NFS服务器

1、创建共享目录,并将光盘内容拷贝到共享目录。

mkdir -p /data/sys

mount /dev/cdrom /mnt

cp -a /mnt/* /data/sys/

#################################

mount -t iso9660 -o loop xxx.iso /mnt

cp -a /mnt/* /data/sys/

2、安装配置NFS,将共享目录发布出去。

rpm -qa|grep nfs

nfs-utils-lib-1.1.5-9.el6.x86_64

nfs-utils-1.2.3-54.el6.x86_64

echo "/data/sys 192.168.128.0/24(ro,sync)" >>/etc/exports

more /data/exports

3、启动NFS服务使配置生效,设置开机自启动。

/etc/init.d/portmap start

/etc/init.d/nfs start

chkconfig nfs on

chkconfig portmap on

4、检查目录是否被正确共享

showmount -e 127.0.0.1

二、配置TFTP服务器

1、安装TFTP服务

yum install tftp-server* -y

如果在yum工具执行前进行下述处理,可以把yum安装的rpm包保留下来备用。

sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf

tree /var/cache/yum/base/

2、配置TFTP服务并启动

[iyunv@master-199 ~]# more /etc/xinetd.d/tftp   

# default: off

# description: The tftp server serves files using the trivial file transfer \

#       protocol.  The tftp protocol is often used to boot diskless \

#       workstations, download configuration files to network-aware printers, \

#       and to start the installation process for some operating systems.

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

}

service xinetd start

chkconfig --level 35 xinetd on

3、PXE引导配置(bootstrap)

[iyunv@master-199 ~]# yum install syslinux* -y

[iyunv@master-199 ~]# find / -name pxelinux.0

/tftpboot/pxelinux.0 (centos 5.8)

/var/lib/tftpboot/pxelinux.0  (centos6.6)

/usr/share/syslinux/pxelinux.0

4、用于网络启动的内核文件

cp /data/sys/images/pxeboot/* /var/lib/tftpboot/

cd /var/lib/tftpboot/

mkdir -p pxelinux.cfg

将光盘中的“isolinux/isolinux.cfg”文件复制为“/var/lib/tftpboot/pxelinux.cfg/default”

cp /data/sys/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

chmod 644 /var/lib/tftpboot/pxelinux.cfg/default

[iyunv@vm-46 sys]# cd /var/lib/tftpboot/pxelinux.cfg/

[iyunv@vm-46 pxelinux.cfg]# more default

#default local#这里选择none为默认安装方式,文本方式为text,图形方式为#default linux

#default text

prompt 1#显示‘boot:’提示符。为'0'时则不提示,将直接启动'default'参数中制定的内容。

timeout 999999#用户输入之前的超时时间,单位为1/10秒,

display boot.msg

F1 boot.msg

F2 options.msg

F3 general.msg

F4 param.msg

F5 rescue.msg

label linux

  kernel vmlinuz

  append initrd=initrd.img

label text

  kernel vmlinuz

  append ks=nfs:192.168.128.128:/data/sys/kickstart/ks.cfg ksdevice=eth0 initrd=initrd.img text

label ks

  kernel vmlinuz

  append ks initrd=initrd.img

label local

  localboot 1

label memtest86

  kernel memtest

  append -

lable none

三、安装及配置DHCP服务器

1、安装DHCP软件包

yum install dhcp* -y

2、配置DHCP服务

more /etc/dhcpd.conf

ddns-update-style none;

ignore client-updates;

allow booting;#允许PXE启动

allow bootp;#允许bootp

default-lease-time 21600;

max-lease-time 43200;

option routers 192.168.128.2;

subnet 192.168.128.0 netmask 255.255.255.0 {

range dynamic-bootp 192.168.128.100 192.168.128.200;

next-server 192.168.128.128;

filename "/data/sys/kickstart/ks.cfg";

next-server 192.168.128.128;#TFTP server的IP地址

#filename "/var/lib/tftpboot/pxelinux.0";

filename "pxelinux.0";

}

service dhcpd start

chkconfig --level 35 dhcpd on

清除客户端DHCP 缓存

rm /var/lib/dhcpd/dhcpd.leases

四、kickstart安装配置

mkdir -p /data/sys/kickstart

cp anaconda-ks.cfg /data/sys/kickstart/ks.cfg

chmod 644 /data/sys/kickstart/ks.cfg

[iyunv@vm-46 sys]# more kickstart/ks.cfg

# Kickstart file automatically generated by anaconda.

#version=DEVEL

install#表示安装系统而不是升级

nfs --server=192.168.128.128 --dir=/data/sys#nfs的安装方式,--server为nfs ip,--dir为nfs的共享路径。

lang en_US.UTF-8#字符集设置

keyboard us#键盘布局

network --device eth0 --bootproto dhcp --noipv6#网络配置,eth0为第一块网卡

#network --device eth1 --bootproto dhcp --noipv6

rootpw  123456#root密码,明文

authconfig --enableshadow --enablemd5#系统认证信息

#authconfig --enableshadow --passalgo=sha512

firewall --disabled#关闭防火墙

selinux --disabled#关闭selinux

timezone Asia/Shanghai#设置系统时间

bootloader --location=mbr --driveorder=sda#系统引导相关配置

firstboot --disable#禁止安装后的agent设置

logging --level=info#设置日志级别

zerombr#清除mbr引导信息

###################分区配置####################

# The following is the partition information you requested

#clearpart --all --drives=sda#清除sda上的所有分区。如果没sda可能报错。

#clearpart --linux

clearpart --all

part /boot --fstype=ext4 --size=500 --asprimary

part swap --size=8192

part / --fstype ext4 --size=1 --grow --asprimary

reboot#安装完重启,也可以选择halt关机。

##############安装包选择#########################

%packages

@base

@core

#@development-libs

#@development-tools

#@editors

#@x-software-development

##############安装前的初始化#####################

#%pre

#!/bin/sh

# You can do something here before the real installation

#wget -nv -O /tmp/pre-install http://192.168.1.46/pre-install

#/bin/sh /tmp/pre-install

#############安装后的初始化######################

%post

#base init configuration

echo "namesever 202.106.0.20" >>/etc/resolv.conf

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

mkdir -p /application/tools

mkdir -p /server/{scripts,backup}

touch "Pls keep this server clean."

#add king users

useradd king

echo "123456"|passwd --stdin king

#allow king sudo

echo "king ALL=(ALL)NOPASSWD:ALL" >>/etc/sudoers

#services configuration

for service in `chkconfig –list|awk '{ print $1}' |egrep -v “^$”|awk -F ":" '{print $1}' `; do chkconfig $service off;done

for service in crond sshd syslog network; do chkconfig $service on;done

#config ssh

\cp /etc/ssh/sshd_config /etc/ssh/sshd_config.`date +"%Y-%d-%m_%H-%M-%S"`

#sed -i 's%#Port 22%Port 52113%' /etc/ssh/sshd_config

sed -i 's%#PermitRootLogin yes%PermitRootLogin no%' /etc/ssh/sshd_config

sed -i 's%#PermitEmptyPasswods no%PermitEmptyPasswods no%' /etc/ssh/sshd_config

sed -i 's%#UserDNS yes%UserDNS no%' /etc/ssh/sshd_config


                   


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-329967-1-1.html 上篇帖子: linux下rsync命令详细整理 下篇帖子: Linux下一种简单的修改时间日期的方法 操作系统
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表