阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Nginx DHCP TFTP Kickstart搭建自动安装系统

410次阅读
没有评论

共计 7393 个字符,预计需要花费 19 分钟才能阅读完成。

之前使用 Cobbler 搭建自动安装系统,最近 Cobbler 网站 http://www.cobblerd.org/ 无法访问,执行命令 cobbler get-loaders 下载获取 PXE 启动需要的文件时报 404,即使下载成功,所有文件都为 0 字节,导致服务器安装系统自动获取到 IP 地址后卡住。不得已自己想办法解决,重新用 Nginx DHCP TFTP Kickstart 搭建了一套自动安装系统。Nginx 安装和配置都挺简单,代替了 Cobbler 中使用的 Apache。

虚拟环境

网段:192.168.200.0

掩码:255.255.255.0

网关:192.168.200.2

自动安装系统地址:192.168.200.10

DHCP 分配地址范围:192.168.200.11 – 192.168.200.254

一、安装配置 Nginx

下载编译安装 Nginx

cd /App/src
wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar zxf nginx-1.8.0.tar.gz
cd nginx-1.8.0
./configure \
–prefix=/App/nginx \
–without-http_access_module \
–without-http_auth_basic_module \
–without-http_browser_module \
–without-http_empty_gif_module \
–without-http_fastcgi_module \
–without-http_geo_module \
–without-http_limit_conn_module \
–without-http_limit_req_module \
–without-http_map_module \
–without-http_memcached_module \
–without-http_proxy_module \
–without-http_referer_module \
–without-http_rewrite_module \
–without-http_scgi_module \
–without-http_split_clients_module \
–without-http_ssi_module \
–without-http_upstream_hash_module \
–without-http_upstream_ip_hash_module \
–without-http_upstream_keepalive_module \
–without-http_upstream_least_conn_module \
–without-http_userid_module \
–without-http_uwsgi_module \
–without-mail_imap_module \
–without-mail_pop3_module \
–without-mail_smtp_module \
–without-pcre \
–without-poll_module \
–without-select_module
 
make && make install

修改 Nginx 配置文件 /App/nginx/conf/nginx.conf

user  nginx nginx;
worker_processes  auto;
 
error_log  logs/error.log error;
 
pid        logs/nginx.pid;
worker_rlimit_nofile    65536;
 
events
{
    use epoll;
    accept_mutex off;
    worker_connections  65536;
}
 
 
http
{
    include      mime.types;
    default_type  text/html;
 
    charset UTF-8;
    server_names_hash_bucket_size  128;
    client_header_buffer_size      4k;
    large_client_header_buffers  4 32k;
    client_max_body_size            8m;
 
    open_file_cache max=65536  inactive=60s;
    open_file_cache_valid      80s;
    open_file_cache_min_uses  1;
 
    log_format  main  ‘$remote_addr – $remote_user [$time_local] “$request” ‘
                      ‘$status $body_bytes_sent “$http_referer” ‘
                      ‘”$http_user_agent” “$http_x_forwarded_for”‘;
 
    access_log  logs/access.log  main;
 
    sendfile    on;
    server_tokens off;
 
    keepalive_timeout  60;
 
    gzip  on;
    gzip_min_length 1k;
    gzip_buffers  4  64k;
    gzip_http_version  1.1;
    gzip_comp_level 2;
    gzip_types text/plain text/css application/json application/javascript application/xml;
 
    server
    {
        listen      80;
        server_name  localhost;
        index        index.html;
        root        /App/web;
        autoindex    on;
    }
}

新建 Nginx 运行账号和 Web 目录

useradd -s /bin/false -M nginx
mkdir -p /App/web

下载 CentOS 镜像 iso 文件并导入 Web 目录

cd /App/src
wget http://mirrors.aliyun.com/centos/6.6/isos/x86_64/CentOS-6.6-x86_64-bin-DVD1.iso
mount -o loop CentOS-6.6-x86_64-bin-DVD1.iso /mnt
rsync -avP /mnt/ /App/web/CentOS-6.6-x86_64

启动 Nginx

/App/nginx/sbin/nginx

二、安装配置 DHCP

Yum 安装 dhcp 服务端

yum -y install dhcp

修改配置 dhcp 文件 /etc/dhcp/dhcpd.conf

allow booting;
allow bootp;
 
subnet 192.168.200.0 netmask 255.255.255.0 {
    option routers            192.168.200.2;
    option domain-name-servers 223.5.5.5,223.6.6.6;
    option subnet-mask        255.255.255.0;
    range dynamic-bootp        192.168.200.11 192.168.200.254;
    filename                  “/pxelinux.0”;
    default-lease-time        21600;
    max-lease-time            43200;
    next-server                192.168.200.10;
}

启动 dhcp 服务

/etc/init.d/dhcpd start

三、安装配置 TFTP

Yum 安装 tftp 服务端

yum -y install tftp-server

修改 tftp 配置并启动 xinetd 服务

sed -i ‘/disable/s/yes/no/’ /etc/xinetd.d/tftp
/etc/init.d/xinetd start

Yum 安装 syslinux 引导加载程序,拷贝相关文件至 tftp 根目录

yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cd /App/web/CentOS-6.6-x86_64/isolinux/
cp vesamenu.c32 boot.msg splash.jpg vmlinuz initrd.img  memtest /var/lib/tftpboot/
mkdir -p /var/lib/tftpboot/pxelinux.cfg
cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

修改启动菜单 /var/lib/tftpboot/pxelinux.cfg/default,特别注意 menu default 这个配置决定了默认启动哪个选项,如果是【label linux】下,服务器一旦重启将删除所有分区并格式化,非常危险,一定要修改此项。

default vesamenu.c32
prompt 0
timeout 60
 
display boot.msg
 
menu background splash.jpg
menu title Welcome to CentOS 6.6!
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 linux
  menu label ^Install or upgrade an existing system
  kernel vmlinuz
  append initrd=initrd.img ks=http://192.168.200.10/CentOS-6.6-x86_64/ks.cfg ksdevice=em1
label vesa
  menu label Install system with ^basic video driver
  kernel vmlinuz
  append initrd=initrd.img xdriver=vesa nomodeset
label rescue
  menu label ^Rescue installed system
  kernel vmlinuz
  append initrd=initrd.img rescue
label local
  menu label Boot from ^local drive
  menu default
  localboot 0xffff
label memtest86
  menu label ^Memory test
  kernel memtest
  append –

四、添加 Kickstart 配置

Web 目录中添加 kickstart 配置文件 /App/web/CentOS-6.6-x86_64/ks.cfg

install
keyboard us
lang zh_CN
url –url=http://192.168.200.10/CentOS-6.6-x86_64/
network –onboot yes –device eth0 –bootproto dhcp –noipv6
rootpw  –iscrypted $6$y0UTGMGnCEgUJmUB$IPcaQ8ipx24V8lAq.XepGoilvjXM9kFs5YrivQQoejYmLOmeVXSeM6IvzxtdsUJ0CFuTMzANEmlj5FOluuwy40
auth –useshadow –passalgo=sha512
reboot
firewall –disabled
firstboot –disable
selinux –disabled
logging –level=info
timezone  Asia/Shanghai
bootloader –location=mbr
zerombr yes
clearpart –all –initlabel
part /boot –fstype ext4 –size=200
part swap –size=2048
part / –fstype ext4 –size=200 –grow
 
%packages
@chinese-support
@core
@server-policy
@workstation-policy
%end
 
%post
ServiceList=`chkconfig –list | grep ‘0’ | awk ‘{print $1}’ | grep -Ev ‘sshd|network|crond|syslog’`
for Service in $ServiceList
do
/etc/init.d/$Service stop
chkconfig –level 0123456 $Service off
done
 
cat >> /etc/sysctl.conf << EOF
vm.swappiness = 0
net.core.rmem_default = 262144
net.core.rmem_max = 16777216
net.core.wmem_default = 262144
net.core.wmem_max = 16777216
net.core.somaxconn = 262144
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_max_tw_buckets = 10000
net.ipv4.ip_local_port_range = 1024 65500
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_mem = 786432 1048576 1572864
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
fs.inotify.max_user_watches = 1048576
EOF
sysctl -p
 
cat >> /etc/security/limits.conf << EOF
* – nofile 1048576
* – nproc  65536
* – stack  1024
EOF
 
cat >> /etc/profile << EOF
ulimit -n 1048576
ulimit -u 65536
ulimit -s 1024
 
alias grep=’grep –color=auto’
export HISTTIMEFORMAT=”%Y-%m-%d %H:%M:%S “
EOF
 
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config
setenforce 0
 
sed -i ‘s/.*UseDNS yes/UseDNS no/’ /etc/ssh/sshd_config
sed -i ‘s/.*GSSAPIAuthentication yes/GSSAPIAuthentication no/’ /etc/ssh/sshd_config
/etc/init.d/sshd restart
 
cat >> $HOME/.bash_profile << EOF
export PATH=/App/script:\$PATH
EOF
 
mkdir -p /App/script /App/src
 
mount –bind /dev/shm /tmp
echo “/bin/mount –bind /dev/shm /tmp” >> /etc/rc.local

五、检查相关服务监听端口

http:80、dhcp:67、tftp:69

netstat -tunlp | grep -E ‘(0.0.0.0:80|0.0.0.0:67|0.0.0.0:69)’

如下图说明各服务已监听

Nginx DHCP TFTP Kickstart 搭建自动安装系统

Linux 基础教程:Linux Kickstart 自动安装  http://www.linuxidc.com/Linux/2015-05/117877.htm

使用 PXE+DHCP+Apache+Kickstart 无人值守安装 CentOS5.8 x86_64 http://www.linuxidc.com/Linux/2012-12/76913p4.htm

Linux PXE 无人值守安装出现 PXE-E32:TFTP OPen timeout 的解决办法 http://www.linuxidc.com/Linux/2014-03/98986.htm

使用 PXE 结合 kickstart 自动安装 Linux 系统 http://www.linuxidc.com/Linux/2014-03/98014.htm

RHCE 认证之无人值守安装 Linux 系统(FTP+TFTP+DHCP+Kickstart+PXE)http://www.linuxidc.com/Linux/2013-10/91013.htm

PXE 网络装机 (有人值守与无人值守安装) http://www.linuxidc.com/Linux/2013-07/87456.htm

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-10/124650.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计7393字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7997360
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛 NAS-1:安装飞牛 NAS 前言 在家庭和小型工作室场景中,NAS(Network Atta...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...