一、环境说明
1.1 环境说明:
我在win7 64位(8G内存)上安装一个Vmware软件,在VM上安装cenots7最新版本
所需软件:
Vmware:版本10.0.3 build-1895310,(也可以是virtualbox,个人偏向vm)
Centos7:使用最新版本,最小化安装,目前最新版本为7.6
1.2 Vmware软件安装
我这里使用的是vm虚拟机安装,因为是win7
64位,所以安装的是vm版本10
如果是win8/win10建立安装版本10以上
1.3 centos7镜像下载
打开centos官网https://www.centos.org
我在这里选择Minimal ISO即最小化安装,如果需要系统有图形界面的可下载DVD ISO
在弹出的页面中,是最新的centos ISO下载列表,在列表中选择国内的ISO下载镜像,我这里选择的是阿里,阿里在做镜像做贡献上不错的。
二、centos7安装
2.1 建立VM虚拟机
打开安装好的VM虚拟机,我这里是版本10,如果版本不同可能会有点出入
2.2 为VM添加网卡及删除多余设备
2.2.1 安装环回网卡
为了模拟线上云主机,我这里需要添加多一个网卡在添加网卡之前我安装了一个lookup网卡并配置IP地址为192.168.3.200设置为192.168.3.0网段
Win7 loopback网卡安装教程:https://jingyan.baidu.com/article/046a7b3eef6d69f9c27fa9ea.html
如果是win8/win10,它是没有loopback网卡的概念的,可以添加“Microsoft KM-TEST环回适配器”教程:https://jingyan.baidu.com/article/5552ef47c0ede8518efbc957.html
如果你觉得麻烦,也可以不添加“环回适配器”,只用NAT网址访问也行。
或者直接把环回适配器改用VM自带的host网卡也行
2.2.2 配置VM网络地址
安装完之后配置一个VM网卡地址
查看我虚拟机VM网络的配置情况,我只留下3个网络,2个桥接,1个NAT,其中:
NAT用来虚拟机上网,我配置了IP网段为192.168.128.0/24
桥接环回网卡主要是充当内网使用,我配置了IP网段为192.168.3.0/24
2.2.3 添加虚拟网卡和删除不必要设备
为了模拟云主机,我添加多一个网卡充当内网连接使用,并删除不必要的设备,操作如下:
2.2 安装centos7
2.2.1 载入ISO镜像文件
在“虚拟机设置”中点“CD/DVD(IDE)”à“使用ISO映像文件”,添加刚刚下载的centos 7.6的ios文件,如下图:
双击界面,进入虚拟机操作:
2.2.2 选择语言
接下来会加载一些东西,不用管,等下会弹出一个图形界面如下:
2.2.3 配置IP地址
为了模拟云主机环境,外网地址是固定IP地址,内网也是,所以我手工配置一下IP地址
同理为设置另一块网卡添加静态IP地址:
这样2个网卡配置完了,配置完之后要检查一下,2个网卡是否处于开机自动打开状态
2.2.4 手工分区(可选)
为了更有针对性,可以选择手工分区,如果不选即使用默认分区,一般分区最少要求
/:根目录分区
/boot:相当于win的引导分区,一般300-500M就够了
Swap:虚拟内存,一般需要,特别的情况如k8s kubeadm特别情况不需要,一般设置为内存的1.5-2倍
/var:如果缓存使用很大,在一块盘不够的情况下,需要独立出来,则选择此分区,需要加多一块磁盘,如是云环境不建议划分,普通找到/var目录哪个目录大,单独购买独立磁盘或对象存储(如阿里对象存储oss),然后挂载,最后再用软连接覆盖/var下具体目录
/home:家目录分区:一般不用单独出来
所以说我们普通的主要划分:/、/boot、swap分区即可,继续操作:
同理,也添加其它分区,如下
2.2.5 开始安装
所有都配置完之后,点右下角的“开始安装”,它就会自动进入安装界面
安装之后最好还是建立一个普通用户,我这里建立一个普通的用户如
hua密码为123456,因为密码简单所以要多点几次
最后等待安装完成,最后点“重启”即可
重启后会进入系统,因linux最小化默认是字符界面是不同有图形的
物理机ping一下是否通,打开命令提示符
2.3 通过SSH连接centos7
2.3.1 下载免费xshell
我们假设centos7放在阿里云中,不能直接点界面输入密码,需要远程ssh连接工具,我这里推荐使用xshell,官网有免费家庭版本,官网链接地址为:https://www.netsarang.com/zh/free-for-home-school
注:ssh这种保存有密码的工具不建议使用文件破解版,一般都会有木马获取敏感信息
2.3.2 xshell连接centos7
完成 之后点“连接”,就没连接之前就会弹出一个保存日志的对话框
关闭SSH,再重新连接,问题解决:
#测试是否能正常上网
2.3.3 设置内网开机启动
sed -i '/ONBOOT/s/no/yes/' /etc/sysconfig/network-scripts/ifcfg-ens33
grep 'ONBOOT' /etc/sysconfig/network-scripts/ifcfg-ens33
#重启
shutdown -r now
#再用xshell登录,查看内网网卡是否自动启动
ip addr
三、centos7配置
为了方便使用需要为centos7做一些简单的配置及修改
3.1 安装基础软件及基础配置
3.1.1 centos7安装兼容包(已安装)
服务器端和客户端同时操作
#兼容centOS6之前的命令
yum install -y net-tools
3.1.2关闭防火墙
#停止firewall,禁止firewall开机启动
systemctl stopfirewalld.service
systemctl disable firewalld.service
#如果安装了兼容性工具net-tools 可以使用如下命令:
service firewalld stop
chkconfig firewalld off
3.1.3关闭selinux
一般建议关闭selinux,不然安装你修改一些软件配置路径不符合selinux规范可能会报错
软件启动不了!!这个是弊大于利的东西。
#临时关闭:
setenforce off
#永久性关闭:
sed -i's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
sed -n '/SELINUX=/p'/etc/selinux/config
#要生效需要重启
shutdown -r now
3.1.4时间同步(可选)
有些软件时间性要求比较强的,如同步类,数据库主从,做实验也最好同步一下时间
yuminstall ntp -y
/usr/sbin/ntpdatepool.ntp.org
echo'#time sync by hua'>>/var/spool/cron/root
#实验才5分钟更新一次时间,如果是生产环境可以设置30分钟
echo'*/5 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null2>&1'>>/var/spool/cron/root
crontab-l
3.1.5 安装常用软件
yum install -y vim lrzsz wget curl man tree rsync
3.1.6 安装第三方源epel源及remi源
#安装epel源可以下载比较新版本的软件及部分默认没用的yum软件
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
rpm -ih remi-release-7.rpm
3.1. 7 安装gcc gcc++
很多软件都是依赖于gcc及gcc++,默认的yum安装版本只有4.x有点低,一般安装5.x以上,操作见“附录一”
3.1.8 在history命令前添加时间显示
echo '#by hua '>>/etc/bashrc
echo 'export HISTFILESIZE=100000000' >> /etc/bashrc
echo 'export HISTSIZE=1000000' >> /etc/bashrc
echo 'export PROMPT_COMMAND="history -a"' >>/etc/bashrc
echo 'export HISTTIMEFORMAT="%Y-%m-%d_%H:%M:%S "' >> /etc/bashrc
source /etc/bashrc
3.1.9 修改文件连接数
#刚安装完系统的时候默认文件连接数为1024个,可以使用命令“ulimit -n”查看
#这样太小了不够用,所在生产环境一般都会修改此项。阿里云默认的tcp连接数是65535,#过大会报警,这样我们参照大哥的做法,因为一般他们都测试大量测试的。
cat>>/etc/security/limits.conf<<EOF
#by hua 2019.5
* soft nofile 65535
* hard nofile 65535
EOF
tail -5 /etc/security/limits.conf
3.2 基础安全设置
3.2.1禁止root远程登录及修改默认ssh端口
一般公认的超级用户如win的是administrator,linux的是root是不安全的,
公认的一些远程登录端口也是不安全的,如win的远程桌面3389,root的ssh 22。
简单的防范思路是“能修改则修改,不能修改则禁止”,如linux的root一般不建议修改的,所以要实现禁止远程登陆,但不会影响本地登录
3.2.2 禁止root及修改默认端口操作
生产环境中一般禁止远程直接用root用户登陆,只能普通用户登陆,登陆之后用su -切到root,操作如下:
#1.新建立一个普通用户如hua,我刚才在安装的时候建立了,所以不用添加也行
useradd hua
#为用户设置密码,设置成功后记得测试登陆一下,免得禁止root后有问题
passwd 123456
#2. 修改sshd配置,禁止直接用root登陆,执行如下命令
cat>>/etc/ssh/sshd_config<<EOF
#################by hua###2019.5####
#deny root login
PermitRootLogin no
#change the ssh port
Port 10000
#deny empty password
PermitEmptyPasswords no
#deny DNS
UseDNS no
#########################################
EOF
#查看是否写入
tail -10 /etc/ssh/sshd_config
#重启ssh
systemctl restart sshd
#不要关闭原来的xshell窗口,新打开连接看一下
上面是22端口不能登陆了,修改为10000端口试下,发现一直弹出如下对话框
上图中说明不能用root直接远程登录了,要改为普通用户,我这里是hua,密码123456
发现能登录,如下图:
#如果你要切换到root账号可以执行“su –”命令,然后回车输入root密码即可
收尾工作
上面的所有安装之后,为了以后做实验可以重复使用建议创建vm快照,
为了能让快照可以移到其它电脑的vm上运行,所以建议先关机再创建快照,操作如下:
#1.关闭centos7,切换到root账号下执行
shutdown -r now
#2. 创建vm快照,创建之前把DVD指定的ISO系统文件去掉,如下图所示:
创建快照:
附录一、安装gcc 、gcc++
#1.卸载c和c++,默认4.8.5版本太低了,在这里没有安装
yum remove -y gcc gcc-c++ -y
#2.安装一些依赖
yum install -y glibc glibc-develcpp libmpc mpfr
#3.去gcc官方安装新版本的gcc
#直接https://www.softwarecollections.org/en/搜索“devtoolset”,目前发现是7
#点版本7会打开链接https://www.softwarecollections.org/en/scls/rhscl/devtoolset-7
#查看最版本
#发现最新版本为8了,返回页面devtoolset-7
#https://www.softwarecollections.org/en/scls/rhscl/devtoolset-7根据说明安装
#不同的是把版本7改为版本8
yum install -y centos-release-scl
yum install -y devtoolset-8-gcc.x86_64 devtoolset-8-gcc-c++.x86_64
#4.查看gcc和gcc-c++版本
[root@vm76 ~]# rpm -qa|grep devtoolset
devtoolset-8-libstdc++-devel-8.2.1-3.el7.x86_64
devtoolset-8-gcc-8.2.1-3.el7.x86_64
devtoolset-8-runtime-8.0-2.el7.x86_64
devtoolset-8-binutils-2.30-47.el7.x86_64
devtoolset-8-gcc-c++-8.2.1-3.el7.x86_64
#5. 查看查看gcc和gcc-c++版本bin目录,bin目录都一样
rpm -ql devtoolset-8-gcc-8.2.1-3.el7.x86_64|grep "bin/gcc"
rpm -ql devtoolset-8-gcc-c++-8.2.1-3.el7.x86_64|grep "bin"
#4.设置环境变量
echo 'exportPATH=$PATH:/opt/rh/devtoolset-8/root/usr/bin'>>/etc/profile
source /etc/profile
gcc -v
g++ -v
#为了方便记忆c和c++做一个软链接
ln -s /opt/rh/devtoolset-8/root/usr/bin/gcc /usr/bin/cc
ln -s /opt/rh/devtoolset-8/root/usr/bin/c++ /usr/bin/c++