【linux/shell】Centos7环境搭建、服务器搭建(脚本)

文章目录

  • 前言
  • 一、内容
  • 二、环境搭建
    • 2.1 本地yum仓库
    • 2.2 编译安装
    • 2.3 磁盘添加/分区/逻辑卷建立/逻辑卷扩容
  • 三、服务器搭建
    • 3.1 http网页服务
    • 3.2 ftp传输服务
    • 3.3 nfs传输服务
    • 3.4 dhcp服务器
    • 3.5 dns正向解析
      • 3.5.1 操作
      • 3.5.2 脚本
  • 四、日志分离
    • 4.1 ssh日志分离
  • 五、自动化服务
    • 5.1 pxe自动化装机(最小化安装)
  • 六、结语


前言

本博客内容仅为记录博主思路,仅供参考,一切以自己实践结果为准。


一、内容

各种服务搭建过程

二、环境搭建

2.1 本地yum仓库

cd /etc/yum.repos.d/
	#移动到yum仓库目录
mkdir ./wly
mv *.repo wly/
	#创建文件夹将yum网络源仓库移动到里面
vim bendi.repo
	#创建本地源仓库配置文件并写入下方内容
#####配置内容#####
[bendi]
name=centos7
baseurl=file:///mnt
	#指定仓库为本地文件,路径为/mnt目录
gpgcheck=0
#####配置内容#####

mount /dev/sr0 /mnt
	#将光盘挂载到/mnt目录下,为本地仓库提供文件
yum clean all && yum makecache
	#清除yum缓存并重新加载
yum install tree -y
	#安装tree命令进行测试仓库是否搭建成功

2.2 编译安装

#准备一个软件压缩包,可从官网下载,也可利用远程传输等获取,此处准备http服务的压缩包

tar xf httpd-2.4.29.tar.bz2
	#解压安装包到目录
cd httpd-2.4.29/
	#移动到加压后的目录中
mkdir /usr/local/apache
	#创建软件安装目录
./configure --prefix=/usr/local/apache
	#将软件安装到指定目录中(此时可能会遇到问题,解决方法如下)
yum install apr* -y
yum install pcre* -y
	#安装在软件安装时,一些所必需要的配置(若有更多,则依次安装即可)
./configure --prefix=/usr/local/apache
	#解决问题后再次启动安装,此时会安装成功
make
	#进行源码编译
make install
	#将编译后的二进制刻录至硬盘,达到永久安装的效果

2.3 磁盘添加/分区/逻辑卷建立/逻辑卷扩容

#(虚拟机)物理层面上添加两块20G磁盘

echo '- - -'>/sys/class/scsi_host/host0/scan
echo '- - -'>/sys/class/scsi_host/host1/scan
echo '- - -'>/sys/class/scsi_host/host2/scan
	#刷新物理磁盘,加载添加的两块磁盘
lsblk
	#查看磁盘概况
fdisk /sdb
	#对sdb进行分区(此处只分1个区,交互界面进行如下操作)
	#n(新建分区)
	#因为只建立一个分区,所以一路回车到最后(中途可选择每个分区具体多大)
	#t(选择分区类型)
	#8e(选择分区类型为LVM类型:可变为物理卷)
	#w保存退出
fdisk /dev/sdc
	#对sdc进行分区(步骤同上,只不过此处建立两个分区)
	#在选择分区大小时,输入10G回车,每个分区都分配10G
pvcreate /dev/sdb1 /dev/sdc1 /dev/sdc2
	#将三个分区否变为物理卷
vgcreate group /dev/sdb1 /dev/sdc1
	#将/sdb1和/sdc1两个物理卷合并为一个group卷组
lvcreate -n han -L 15G group
	#从group卷组中划分15G大小变为逻辑卷han
mkfs.xfs /dev/group/han
	#为逻辑卷安装xfs文件系统(必须拥有文件系统,磁盘才能正常使用)
mount /dev/group/han /mnt
	#将逻辑卷挂载到/mnt使用
df
	#查看挂载情况,确认逻辑卷创建成功,可以正常使用
vgextend group /dev/sdc2
	#可继续向group卷组中添加物理卷,为卷组扩容
lvextend -L +20G /dev/group/han
	#若后期逻辑卷大小不够,可继续从卷组中划分大小,对逻辑卷进行扩容
xfs_growfs /mnt
	#刷新挂载点,重新加载磁盘大小
df
	#查看挂载点,确认扩容成功
lsblk
	#查看整体物理磁盘使用情况

三、服务器搭建

3.1 http网页服务

yum install httpd -y
	#安装http网页服务
systemctl stop firewalld
	#关闭防火墙(centos7的防火墙)
setenforce 0
	#关闭selinux(类似防火墙)
systemctl start httpd
	#启动http网页服务(网页根目录:/var/www/html/

3.2 ftp传输服务

yum install vsftpd -y
	#安装ftp服务端软件
systemctl stop firewalld
	#关闭防火墙(centos7的防火墙)
setenforce 0
	#关闭selinux(类似防火墙)
systemctl start vsftpd
	#启动ftp网页服务(分享根目录:/var/ftp/)
	#此时客户端只需要安装ftp软件,即可访问服务端分享目录

3.3 nfs传输服务

yum install nfs -y
	#安装nfs服务端软件
vim /etc/exports
	#编辑分享目录配置文件(第一列:服务端分享目录 第二列:能访问的主机IP)
systemctl stop firewalld
	#关闭防火墙(centos7的防火墙)
setenforce 0
	#关闭selinux(类似防火墙)
systemctl start nfs
	#启动nfs网页服务(分享根目录:由/etc/exports配置文件决定)

3.4 dhcp服务器

yum install dhcp -y
	#安装dhcp服务软件

vim /etc/sysconfig/network-scripts/ifcfg-ens33
	BOOTPROTO=static
		#第4行:ip地址获取方式设置为静态获取
	IPADDR=192.168.100.10
		#设置虚拟机的VIM1的子网段(虚拟机查看VIM1:编辑-虚拟网络编辑器:将VIM1的使用本地dhcp服务取消)
	GATEWAY=192.168.100.1
		#设置为VIM1的IP地址为默认网关

vim /etc/dhcp/dhcpd.conf
	#修改dhcp配置文件
	:5r /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
		#末行模式,在第5行后方插入模板文件
	subnet 192.168.100.0 netmask 255.255.255.0 {
		#第37行,设置分配子网的网段以及掩码
	range 192.168.100.100 192.168.100.120;
		#第38行,设置子网IP的具体范围
	option routers 192.168.100.1;
		#第39行,设置子网IP的默认网关为VIM1的IP
	}

systemctl stop firewalld
	#关闭防火墙(centos7的防火墙)
setenforce 0
	#关闭selinux(类似防火墙)
systemctl start dhcpd
	#启动dhcp服务器

#验证:新建一个仅主机VIM1模式的windos虚拟机,启动dhcp自动分配模式,查看IP地址是否自动分配

3.5 dns正向解析

3.5.1 操作

yum install bind bind-utils.x86_64 -y
	#安装named软件(dns服务所需软件)
vim /etc/named.conf
	#配置named主配置文件
	listen-on port 53 { any; };    #13行修改为监听所有端口
	allow-query     { any; };      #21行修改为监听说有主机
vim /etc/named.rfc1912.zones
	#配置named数据库文件指向,添加如下内容,位置随意
	zone "han.com" IN {
		#定义服务器域名
	type master;
		#定义服务器为主服务器
	file "han.com.zone";
		#定义服务器数据库文件指向
	};

cp -p /var/named/named.localhost /var/named/han.com.zone
	#复制数据库模板(-p保留所有权限,防止新文件权限不足)
vim /var/named/han.com.zone
	#修改数据库内容,配置如下
	@   IN SOA  master rname.invalid. (
		#第2行,修改@为master,将域名定义为master
	NS  master
		#第8行,修改@为master,再次重申域名为master
	master A 192.168.13.20
		#定义:当访问主机名为master的时候,转译为对应的IP地址
	han A 192.168.13.20
		#定义:当访问主机名为han的时候,转译为对应的IP地址
	www CNAME han
		#定义:当访问主机名为www的时候,等同于访问主机名为han

vim /etc/sysconfig/network-scripts/ifcfg-ens33
	#修改网卡配置文件,将DNS1指向自己,通过自己解析域名
systemctl restart network
	#重启网络服务
systemctl stop firewalld
	#关闭防火墙(centos7的防火墙)
setenforce 0
	#关闭selinux(类似防火墙)
systemctl start named
	#启动named软件(dns服务)
host www.han.com
	#测试dns正向解析服务是否搭建成功

3.5.2 脚本

#!/bin/bash

yum install bind bind-utils.x86_64 -y
#安装服务

sed -i 's/{ 127.0.0.1; }/{ any; }/' /etc/named.conf
sed -i 's/{ localhost; }/{ any; }/' /etc/named.conf
#修改dns服务配置文件(监听所有端口、所有主机)

sed -i '13 s/"localhost.localdomain"/"han.com"/' /etc/named.rfc1912.zones
sed -i '15 s/"named.localhost"/"han.com.zone"/' /etc/named.rfc1912.zones
sed -i '16 s/all.*//' /etc/named.rfc1912.zones
#修改dns服务端配置(主机名、主机数据库文件指向)

cp /var/named/named.localhost /var/named/han.com.zone
cd /var/named
chmod 640 han.com.zone
chgrp named han.com.zone
#复制数据库文件、赋予文件权限

sed -i '2 s/@/master/2' /var/named/han.com.zone
sed -i '8 s/@/master/' /var/named/han.com.zone
sed -i '9 s/.*/master A 192.168.13.20/' /var/named/han.com.zone
sed -i '10 s/.*/han A 192.168.13.20/' /var/named/han.com.zone
sed -i '11 s/.*/wang CNAME han/' /var/named/han.com.zone
#修改数据库配置,将域名解析为IP地址

sed -i 's/^DNS.*/DNS1\="192.168.13.20"/' /etc/sysconfig/network-scripts/ifcfg-ens33
#修改网关地址为本机

systemctl stop firewalld
setenforce 0
systemctl restart network.service
systemctl start named
#关闭防火墙、重启网卡、启动dns服务

host han.han.come
#测试dns服务是否搭建成功

四、日志分离

4.1 ssh日志分离

vim /etc/ssh/sshd_config
	SyslogFacility LOCAL6
	#第32行:将ssh服务端日志所使用的服务由AUTHPRIV修改为自定义的LOCAL6
vim /etc/rsyslog.conf
	local6.*                                                /var/log/ssh.log
	#第74行:自定义LOCAL6日志服务的存储级别与存储位置

五、自动化服务

5.1 pxe自动化装机(最小化安装)

#!/bin/bash
systemctl disable --now firewalld
setenforce 0
sed -i '7 s/enforcing/disable/' /etc/sysconfig/selinux

yum install -y tftp-server.x86_64 vsftpd dhcp syslinux

\cp -f /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
IP=`ifconfig |grep -m 1 netmask |awk '{print $2}'`
subnet=`route | grep ens33 |awk 'NR==2{print $1}'`
netmask=`route | grep ens33 |awk 'NR==2{print $3}'`

sed -i "27 s/.*/subnet ${subnet} netmask ${netmask} {\n  range ${subnet%?}100 ${subnet%?}200;\n  option routers ${IP};\n  next-server ${IP};\n  filename \"pxelinux.0\";/" /etc/dhcp/dhcpd.conf

sed -i '14 s/yes/no/' /etc/xinetd.d/tftp

mkdir -p /var/ftp/centos7
mount /dev/sr0 /var/ftp/centos7/
cd /var/ftp//centos7/isolinux/
cp initrd.img vmlinuz /var/lib/tftpboot/
#四大文件的前两个文件
mkdir -p /var/lib/tftpboot/pxelinux.cfg
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
#四大文件的第三个文件
echo "default auto
prompt 0
label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://${IP}/centos7 ks=ftp://${IP}/ks.cfg" >/var/lib/tftpboot/pxelinux.cfg/default
#四大文件第四个文件
systemctl start dhcpd
systemctl start tftp
systemctl start vsftpd

#####准备全自动化安装ks.cfg文件#####
yum install -y system-config-kickstart.noarch
echo "#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --plaintext abc123
# Use network installation
url --url="ftp://${IP}/centos7"
# System language
lang zh_CN
# Firewall configuration
firewall --disabled
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
# SELinux configuration
selinux --disabled

# Network information
network  --bootproto=dhcp --device=ens33
# Reboot after installation
reboot
# System timezone
timezone Africa/Abidjan
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=1024
part swap --fstype="swap" --size=4096
part / --fstype="xfs" --grow --size=1

%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony
kexec-tools

%end

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
" > /var/ftp/ks.cfg

六、结语

光盘挂载:

  • 注意虚拟机的光驱是否已勾选已连接。

磁盘分区:

  • 磁盘分区必须安装文件系统,否则磁盘无法使用。

dhcp服务:

  • 安装软件要在nat模式下安装,随后切换为仅主机模式,注意服务器和客户端都要为仅主机模式。
  • 注意虚拟机的虚拟网络编辑器中的使用本地dhcp服务器是否取消。

dns服务:

  • 若复制数据库配置文件时候未复制权限,会造成权限不足,可以启动服务,但无法正常运行。

你可能感兴趣的:(脚本,linux)