系统初始化
最小化安装原则节省系统资源
1.yum源处理与常用软件包安装
# 安装阿里云的yum源
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
dnf -y install epel-release
dnf clean all
dnf makecache
# 安装华为云的yum源
rm -rf /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-8-reg.repo
dnf -y install epel-release
dnf clean all
dnf makecache
# 安装常用软件包
dnf install vim wget lrzsz gcc gcc-c++ rsync tree telnet nfs-utils net-tools lsof bash-completion nmap -y
# 软件包解释
vim: 文本编辑工具
wget: 下载工具
lrzsz: 文件上传下载工具
gcc: 编译工具
gcc-c++: 编译工具
rsync: 文件传输工具
tree: 查看目录树
telnet: 测试网络连接
nfs-utils: 文件共享服务
net-tools: ifconfig命令软件包
lsof: 用来显示系统打开的文件
bash-completion: 命令补全工具
nmap: 网络探测和安全扫描程序
2.规范系统主机名
hostnamectl set-hostname web_server
3.关闭selinux
# 关闭selinux
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
4.关闭防火墙
# 临时关闭
systemctl stop firewalld
# 设置开机不启动
systemctl disable firewalld
5.同步系统时间
#安装ntpdate
rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm
dnf install wntp -y
#给定时任务加上注释
echo '#Timing synchronization time' >>/var/spool/cron/root
#设置定时任务
echo '0 */1 * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null' >>/var/spool/cron/root
#检查结果
crontab -l
6.配置网络
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.101
NETMASK=255.255.255.0
GATEWAY=10.0.0.254
DNS1=8.8.8.8
DNS2=114.114.114.114
7.ssh密钥免密登录
# 生成私钥和公钥
ssh-keygen
# 把自己的公钥推送给对方
ssh-copy-id -i root@10.0.0.8
# 免密登入连接成功
ssh root@10.0.0.8
8.系统初始化脚本
[root@steven scripts]# cat system_init.sh
#!/bin/bash
# Author : xuZhongXiang
# 常用变量
hostname=docker
fhq=firewalld
os_rel=$(uname -a | awk '{print $1,$2}')
Yum_Path=/etc/yum.repos.d
Soft="vim wget
lrzsz gcc
gcc-c++ rsync
tree telnet
nfs-utils net-tools
lsof bash-completion
nmap wntp"
# 更新系统
dnf update -y &>/dev/null
# 更新yum源
bak_yum(){
if [ -d ${Yum_Path}/repo.bak ];then
rm -rf ${Yum_Path}/repo.bak/*
else
mkdir ${Yum_Path}/repo.bak
mv ${Yum_Path}/*.repo ${Yum_Path}/repo.bak
fi
}
bak_yum
install_YUM(){
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo &>/dev/null
rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm &>/dev/null
wget -O /etc/yum.repos.d/docker-ce.repo https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo &>/dev/null
dnf -y install epel-release &>/dev/null
dnf clean all &>/dev/null
dnf makecache &>/dev/null
dnf repolist &>/dev/null && echo "${os_rel} yum源配置成功!"
}
install_YUM
# 安装docker
install_docker(){
dnf remove docker docker-common docker-selinux docker-engine -y &>/dev/null
dnf install -y yum-utils device-mapper-persistent-data lvm2 &>/dev/null
dnf install docker-ce -y &>/dev/null && echo "docker安装成功"
}
install_docker
# 启动docker
systemctl daemon-reload && systemctl restart docker && systemctl enable --now docker && docker info
# 安装常用软件包
dnf install -y $Soft &>/dev/null && echo "常用软件包安装成功......"
# 设置主机名
hostnamectl set-hostname $hostname && echo "当前主机名为: ${hostname}"
# 关闭防火墙
systemctl stop ${fhq} && systemctl disable ${fhq} && echo "${fhq} 防火墙已关闭"
# 关闭selinux
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
echo "selinux 当前状态为: $(getenforce)"
# 同步系统时间
sync_time(){
echo '#Timing synchronization time' > /var/spool/cron/root
echo '0 */1 * * * /usr/local/bin/ntpdate ntp1.aliyun.com &>/dev/null' >>/var/spool/cron/root
echo "同步系统时间成功"
}
sync_time