服务器参数
标识 | 公司内部YUM服务器 |
---|---|
主机名 | yum-server |
网络信息 | 192.168.37.1/24 |
网络属性 | 静态地址 |
主要操作用户 | root |
一、基础环境信息配置
修改主机名
[root@yum-server ~]# hostnamectl hostname yum-server
添加网络信息
[root@yum-server ~]# nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.37.1/24 ipv4.gateway 192.168.37.254
[root@yum-server ~]# nmcli connection up ens160
验证–查看网络信息
[root@yum-server ~]# ip add show ens160
虚拟机连接光盘
二、配置FTP共享源
新建FTP资源目录
[root@yum-server ~]# mkdir /var/ftp/yum
[root@yum-server ~]# mkdir /var/ftp/nginx
[root@yum-server ~]# mkdir /var/ftp/ansible
挂载镜像源
[root@yum-server ~]# mount /dev/cdrom /var/ftp/yum/
将挂载写入配置文件,实现自动挂载
[root@yum-server ~]# vim /etc/fstab
# 写入下列内容
/dev/cdrom /var/ftp/yum iso9660 defaults 0 0
删除所有仓库文件
[root@yum-server ~]# rm -rf /etc/yum.repos.d/*
编写仓库文件
[root@yum-server ~]# vim /etc/yum.repos.d/dvd.repo
# 文件内容如下
[BaseOS]
name=BaseOS
baseurl=file:///var/ftp/yum/BaseOS
enabled=1
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///var/ftp/yum//AppStream
enabled=1
gpgcheck=0
验证:清除DNF缓存和元数据&生成DNF源数据
[root@yum-server ~]# dnf clean all;dnf makecache
安装FTP服务端软件
[root@yum-server ~]# dnf install -y vsftpd
验证:查找本地vsftpd软件包
[root@yum-server ~]# rpm -qa vsftpd
编辑vsftpd服务配置文件,允许匿名用户访问
[root@yum-server ~]# vim /etc/vsftpd/vsftpd.conf
# 修改以下字段
anonymous_enable=YES
调整防火墙策略
[root@yum-server ~]# firewall-cmd --add-service=ftp --permanent
[root@yum-server ~]# firewall-cmd --reload
开启ftp服务并加入开机自启
[root@yum-server ~]# systemctl enable --now vsftpd.service
永久关闭SELinux
[root@yum-server ~]# sed -i 's/enforcing/disabled/g' /etc/selinux/config
[root@yum-server ~]# reboot
验证:查看SELinux状态
[root@yum-server ~]# sestatus
验证:使用主机访问ftp共享
三、Shell脚本编写
编写Shell脚本
#!/bin/bash
hostnamectl hostname yum-server # 修改主机名
echo -n "Please enter IP address: "
read ip
echo -n "Please enter a mask: "
read mask
echo -n "Please enter the gateway: "
read gateway
nmcli connection modify ens160 ipv4.method manual ipv4.address $ip/$mask ipv4.gateway $gateway
nmcli connection up ens160
ifconfig | grep broadcast # 输入当前IP信息
echo "(1/4) IP address success!" # 提示IP地址配置成功
# 配置YUM本地源
mkdir /var/ftp/yum/
mkdir /var/ftp/nginx
mkdir /var/ftp/ansible
mount /dev/cdrom /var/ftp/yum
echo "/dev/cdrom /var/ftp/yum iso9660 defaults 0 0" >> /etc/fstab
printf "[BaseOS] \nname=BaseOS \nbaseurl=file:///var/ftp/yum/BaseOS \nenabled=1 \ngpgcheck=0 \n[AppStream] \nname=AppStream \nbaseurl=file:///var/ftp/yum//AppStream \nenabled=1 \ngpgcheck=0" > /etc/yum.repos.d/dvd.repo
echo "(2/4) Local YUM success!" # 提示yum源配置成功
# 安装ftp
dnf install -y vsftpd
vsftpd=$(rpm -qa vsftpd | grep vsftpd)
if [ -n "$vsftpd" ];then
echo "(3/4) vsftpd install success!" # 提示vsftpd安装成功
sed -i "s/anonymous_enable=NO/anonymous_enable=YES/g" /etc/vsftpd/vsftpd.conf
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
systemctl enable --now vsftpd.service
setenforce 0
sed -i 's/enforcing/disabled/g' /etc/selinux/config
status=$(systemctl is-active vsftpd.service)
if [ "$status" == "active" ];then
echo "(4/4) vsftpd is running!" # 提示vsftpd安装成功
fi