CentOS 7.6 操作系统初始化

一、文档介绍

此文档旨在规范服务器初始化操作,避免因在多环境中操作系统环境不一致而产生未知原因的问题。

二、配置主机名

hostnamectl set-hostname 主机名

注意:此操作非必须重要:操作完成后需退出终端再进入

三、配置 DNS

统一DNS配置文件为/etc/resolv.conf

(一) 删除网卡配置文件中DNS配置

例如,网卡为eth0,编辑 /etc/sysconfig/network-scripts/ifcfg-eth0,将文件中的DNS1和DNS2参数内容删除,然后保存退出。

注意:如果没有删除,服务器重启时会将DNS1和DNS2参数内容覆盖到/etc/resolv.conf,导致DNS变更。

(二) 配置 DNS 文件

echo "nameserver 10.6.100.25" >> /etc/resolv.conf
echo "nameserver 114.114.114.114" >> /etc/resolv.conf

本例中的 DNS 为10.6.100.25和114.114.114.114,请根据实际情况配置。

四、配置 YUM 源

(一) 清空系统默认配置

cd /etc/yum.repos.d/ && rm -rf ./*

(二) 添加yum源

cd /etc/yum.repos.d/
echo '
[base]
name=CentOS-7-Base
baseurl=https://repo.huaweicloud.com/centos/7/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/centos/RPM-GPG-KEY-CentOS-7

[update]
name=CentOS-7-Updates
baseurl=https://repo.huaweicloud.com/centos/7/updates/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/centos/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-7-Extras
baseurl=https://repo.huaweicloud.com/centos/7/extras/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/centos/RPM-GPG-KEY-CentOS-7
' > CentOS-Base.repo

echo '
[epel]
name=CentOS-7-epel
baseurl=https://repo.huaweicloud.com/epel/7/$basearch/
enabled=1
gpgcheck=1
pgkey=https://repo.huaweicloud.com/epel/RPM-GPG-KEY-EPEL-7
' > epel.repo

echo '
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/docker-ce/linux/centos/gpg
' > docker-ce.repo

参数说明

序号

参数

说明

1

[X]

yum 安装时显示的 RPM 所在仓库名

2

name

仓库描述

3

baseurl

仓库地址

4

enabled

是否启动此 yum 仓库

5

gpgcheck

是否对 rpm 进行 签名验证

6

gpgkey

gpg 文件地址

(三) 更新 yum 源

# 导入GPG
rpm --import https://repo.huaweicloud.com/centos/RPM-GPG-KEY-CentOS-7
rpm --import https://repo.huaweicloud.com/epel/RPM-GPG-KEY-EPEL-7
rpm --import https://repo.huaweicloud.com/docker-ce/linux/centos/gpg
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage
# 缓存仓库信息
yum clean all
yum makecache

五、安装基础 RPM

yum install -y glibc gcc gcc-c++ openssl openssl-devel bash openssh net-tools bind-utils iptables iptables-services
yum install -y dmidecode which vim-enhanced ntpdate unzip zip telnet wget curl parted

六、配置防火墙

systemctl stop firewalld
systemctl disable firewalld

七、配置时区

tz=Asia/Shanghai
tz_path=/usr/share/zoneinfo/Asia/Shanghai
timedatectl set-timezone "$tz"

八、配置时间同步

echo "*/30 * * * * /usr/sbin/ntpdate ntp.aliyun.com; /sbin/hwclock --systohc" >> /var/spool/cron/root
crontab -l

九、配置终端默认语言

echo 'export LANG="en_US.UTF-8"' >> /etc/bashrc

十、配置历史记录日志格式

echo 'export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "' >> /etc/profile

十一、配置历史记录

yum install -y rsyslog
echo 'local1.notice /var/log/history.log' >> /etc/rsyslog.conf
systemctl restart rsyslog
cat <<"EOF" >> /etc/bashrc
export PROMPT_COMMAND='history -a;timestamp=$(date +%FT%T%z);command=$(history 1| { read x y;echo $y; } );logger -p local1.notice -t bash -i "timestamp=[$timestamp],user=$USER,ppid=$PPID,conn=$SSH_CONNECTION,tty=$SSH_TTY,pwd=$PWD,command=$command"'
EOF

十二、配置普通用户允许使用systemd

例如,普通用户为myuser

注意:此操作非必须

# 此操作中的myuser需替换为实际用户
cat <<EOF | tee /etc/polkit-1/rules.d/40-nopasswd_limited.rules
polkit.addRule(function(action, subject) {
    if (action.id.match("org.freedesktop.systemd1.") && subject.isInGroup("myuser")) {
        return polkit.Result.YES;
    }
});
EOF
chmod 644 /etc/polkit-1/rules.d/40-nopasswd_limited.rules
systemctl restart polkit
# 配置service目录权限
chmod 777 /usr/lib/systemd/system
# systemd-journal
mkdir -p /var/log/journal
chmod 755 /var/log/journal
chgrp systemd-journal /var/log/journal
chmod g+s /var/log/journal
systemctl restart systemd-journald

十三、关闭selinux

selinux 是 Linux 系统安全访问控制组件,是一套复杂的安全策略规则。

在开启的情况下,会出现程序配置正确,但服务莫名无法访问等问题;所以,绝大部分情况下,通过防火墙配置或登录限制等安全手段来保障即可,因此将其关闭。

sed -i "/^SELINUX=/c SELINUX=disabled" /etc/selinux/config
setenforce 0

十四、配置系统资源数

# 将系统的文件句柄数和进程数上限修改至655350
sed -i "/65535/d" /etc/security/limits.conf
sed -i "/65536/d" /etc/security/limits.conf
echo "* soft nproc 655350" >> /etc/security/limits.conf
echo "* hard nproc 655350" >> /etc/security/limits.conf
echo "* soft nofile 655350" >> /etc/security/limits.conf
echo "* hard nofile 655350" >> /etc/security/limits.conf
sed -i 's/4096/65535/g' /etc/security/limits.d/20-nproc.conf
# 将系统或用户进程允许操作的文件句柄数和进程数上限修改至32768
sed -i '/DefaultLimitCORE=/d' /etc/systemd/system.conf
sed -i '/DefaultLimitNOFILE=/d' /etc/systemd/system.conf
sed -i '/DefaultLimitNPROC=/d' /etc/systemd/system.conf
sed -i '/DefaultLimitCORE=/d' /etc/systemd/user.conf
sed -i '/DefaultLimitNOFILE=/d' /etc/systemd/user.conf
sed -i '/DefaultLimitNPROC=/d' /etc/systemd/user.conf
echo 'DefaultLimitCORE=infinity' >> /etc/systemd/system.conf
echo 'DefaultLimitNOFILE=32768' >> /etc/systemd/system.conf
echo 'DefaultLimitNPROC=32768' >> /etc/systemd/system.conf
echo 'DefaultLimitCORE=infinity' >> /etc/systemd/user.conf
echo 'DefaultLimitNOFILE=32768' >> /etc/systemd/user.conf
echo 'DefaultLimitNPROC=32768' >> /etc/systemd/user.conf

十五、关闭非必须服务

NetworkManager 图形化网络配置服务,且会影响DNS配置,目前都采用命令行操作,所以关闭。

systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl stop postfix
systemctl disable postfix
systemctl stop rpcbind.socket
systemctl stop rpcbind
systemctl disable rpcbind

十六、挂载数据盘

请将数据盘挂载到/data目录

本例中,数据盘为:/dev/vdb,请根据实际情况调整:

(一) 磁盘分区

/usr/sbin/parted -s "/dev/vdb" mklabel gpt
/usr/sbin/parted -s "/dev/vdb" mkpart primary 0% 100%

使用blkid可以看到生成了/dev/vdb1的分区

(二) 磁盘格式化

将分区格式化为xfs格式

/sbin/mkfs.xfs -f -i size=2048 "/dev/vdb1"

(三) 挂载

mkdir -p /data
echo '/dev/vdb1 /data xfs defaults 0 0' >> /etc/fstab
mount -a

使用df -h命令查看挂载情况

十七、重启服务器

reboot
原文链接:,转发请注明来源!