linux自动部署安装服务(附shell脚本)

虚拟机:virtualbox

内部系统:centos8

DHCP服务程序配置

关闭系统dhcp服务

关闭防火墙和安全子系统

systemctl stop firewalld.service
setenforce 0

 下载dhcp服务

dnf install -y dhcp-server

 

编辑DHCP服务配置文件

vim /etc/dhcp/dhcpd.conf
#删除文件内容,添加以下内容
allow booting;
allow bootp;
ddns-update-style none;
ignore client-updates;
subnet 192.168.10.0 netmask 255.255.255.0 {
        range dynamic-bootp     192.168.10.100 192.168.10.200;
        option subnet-mask      255.255.255.0;
        option domain-name-servers      192.168.10.10;
        default-lease-time      21600;
        max-lease-time  43200;
        next-server     192.168.10.10;
        filename        "pxelinux.0";
}

启动程序并设置开机自启

systemctl restart dhcpd
systemctl enable dhcpd

 TFTP服务程序配置

安装TFTP服务软件包

dnf install -y tftp-server xinetd

编写TFTP服务配置文件 

vim /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
        per_source      = 11
        cps             = 100 2
        flags           = IPv4
}      

 启动程序并设置开机自启

systemctl restart xinetd
systemctl enable xinetd

SYSLinux服务程序配置

安装SYSLinux服务程序

注:SYSLinux是一个用于提供引导加载的服务程序

dnf install -y syslinux

 配置服务程序

更换目录

cd /var/lib/tftpboot

将SYSLinux提供的引导文件复制到TFTP的服务程序中

#最后面那个点代表当前目录
cp /usr/share/syslinux/pxelinux.0 .

挂载镜像文件

 查看挂载文件目录

将光盘镜像中自带引导文件复制到TFTP服务程序的默认目录中

#前面部分是自己的镜像路径,还要注意最后那个.不要少
cp /run/media/jyh/CentOS-8-4-2105-x86_64-dvd/images/pxeboot/* .
cp /run/media/jyh/CentOS-8-4-2105-x86_64-dvd/isolinux/* .

 在TFTP服务程序的目录中新建pxelinux.cfg目录

#还是注意复制路径,是自己的镜像路径
mkdir pxelinux.cfg
cp /run/media/jyh/CentOS-8-4-2105-x86_64-dvd/isolinux/isolinux.cfg pxelinux.cfg/default

编辑default配置文件 

#该文件是只读文件,保存的时候在命令模式键入wq!就可以保存更改了
vim pxelinux.cfg/default
 修改第1行

修改第64行
append initrd=initrd.img inst.stage2=ftp://192.168.10.10 ks=ftp://192.168.10.10/pub/ks.cfg quiet

 VSFtpd服务程序配置

 安装VSFtpd服务程序

#先退出目录
cd
dnf install -y vsftpd

 开启匿名访问模式

vim /etc/vsftpd/vsftpd.conf

修改匿名用户访问的NO改为YES

启动服务并设置开机自启

systemctl restart vsftpd
systemctl enable vsftpd

目录中的光盘镜像文件全部复制到vsftpd服务程序的工作目录中 

cp -r /run/media/jyh/CentOS-8-4-2105-x86_64-dvd/* /var/ftp

 创建KickStart应答文件

将此文件复制到vsftpd服务程序的工作目录中

cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg

 设置该文件权限

使用chmod命令设置该文件的权限,确保所有人都有可读的权限,以保证客户端主机顺利获取到应答文件及里面的内容

chmod +r /var/ftp/pub/ks.cfg

 编辑配置文件

注:行数以自己文件的行数为主

vim /var/ftp/pub/ks.cfg

修改第5行

repo --name="AppStream" --baseurl=ftp://192.168.10.10/AppStream

 

修改第22行

url --url=ftp://192.168.10.10/BaseOS

 在18行下面添加一行内容

network  --bootproto=dhcp --device=enp0s9 --onboot=on --ipv6=auto --activate

验证程序

 新建虚拟机,注意这里不要选择镜像文件

 这里的处理器选择2 cpu

网络设置为仅主机网络

把网络的启动顺序调换至第一个 

配置好之后开始安装

shell脚本

#!/bin/bash
#关闭防火墙和安全子系统
systemctl stop firewalld.service
setenforce 0
#dhcp
dnf install -y dhcp-server
#清空内容
echo -n > /etc/dhcp/dhcpd.conf
#添加内容
cat<<EOF >>/etc/dhcp/dhcpd.conf
allow booting;
allow bootp;
ddns-update-style none;
ignore client-updates;
subnet 192.168.10.0 netmask 255.255.255.0 {
        range dynamic-bootp     192.168.10.100 192.168.10.200;
        option subnet-mask      255.255.255.0;
        option domain-name-servers      192.168.10.10;
        default-lease-time      21600;
        max-lease-time  43200;
        next-server     192.168.10.10;
        filename        "pxelinux.0";
}
EOF
#启动
systemctl restart dhcpd
systemctl enable dhcpd
#TFTP
dnf install -y tftp-server xinetd
echo -n > /etc/xinetd.d/tftp
cat<<EOF >> /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
        per_source      = 11
        cps             = 100 2
        flags           = IPv4
}
EOF
#启动
systemctl restart xinetd
systemctl enable xinetd
#syslinux
dnf install -y syslinux
cd /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 .
cp /run/media/jyh/CentOS-8-4-2105-x86_64-dvd/images/pxeboot/* .
cp /run/media/jyh/CentOS-8-4-2105-x86_64-dvd/isolinux/* .
mkdir pxelinux.cfg
cp /run/media/jyh/CentOS-8-4-2105-x86_64-dvd/isolinux/isolinux.cfg pxelinux.cfg/default
#编辑配置文件
chmod 777 pxelinux.cfg/default
sed -i '2c default linux' "pxelinux.cfg/default"
sed -i '64c append initrd=initrd.img inst.stage2=ftp://192.168.10.10 ks=ftp://192.168.10.10/pub/ks.cfg quiet' 'pxelinux.cfg/default'
#配置vsftpd
cd
dnf install -y vsftpd
sed -i '12c anonymous_enable=YES' "/etc/vsftpd/vsftpd.conf"
#启动
systemctl restart vsftpd
systemctl enable vsftpd
cp -r /run/media/jyh/CentOS-8-4-2105-x86_64-dvd/* /var/ftp
cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
chmod +r /var/ftp/pub/ks.cfg
#编辑ks.cfg
sed -i '5c repo --name="AppStream" --baseurl=ftp://192.168.10.10/AppStream' "/var/ftp/pub/ks.cfg"
sed -i '22c url --url=ftp://192.168.10.10/BaseOS:' "/var/ftp/pub/ks.cfg"
sed -i '18a network  --bootproto=dhcp --device=enp0s3 --onboot=on --ipv6=auto --activate' "/var/ftp/pub/ks.cfg"

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值