CentOS 7实施运维笔记

Linux(CentOS 7)

CentOS官网 下载界面

默认下载CentOS-7-x86_64-DVD的ISO文件。

  1. 使用UltraISO制作系统盘

    1. 文件->打开…->选择ISO文件

    2. 启动->写入硬盘映像…->选择U盘->写入方式(USB-HDD+)->写入

    3. 重命名U盘(无空格)(U盘名下写作uname)

    4. 将U盘\EFI\BOOT\grub.cfg中的\CentOS\x207\x20x86_64替换为uname

    5. 将U盘\isolinux\isolinux.cfg中的\CentOS\x207\x20x86_64替换为uname

  2. CentOS系统安装

    1. 关机状态U盘插入电脑->开机->按快捷键进入主板BIOS(一半为DEL键,可参考如下表格)

      最常见的是ESC键、Delete键、F12键,若不行可以尝试以下对应的BIOS快捷键或快捷启动按键。

      组装机主板 品牌笔记本 品牌台式机
      华硕主板 F8 联想笔记本 F12 联想台式机 F12
      技嘉主板 F12 宏基笔记本 F12 惠普台式机 F12
      微星主板 F11 华硕笔记本 ESC 宏基台式机 F12
      映泰主板 F9 惠普笔记本 F9 戴尔台式机 ESC
      梅捷主板 ESC/F12 联想ThinkPad F12 神舟台式机 F12
      七彩虹主板 ESC/F11 戴尔笔记本 F12 华硕台式机 F8
      华擎主板 F11 alienware笔记本 F2/F12 方正台式机 F12
      昂达主板 F11 神舟笔记本 F12 清华同方台式机 F12
      双敏主板 ESC 东芝笔记本 F12 海尔台式机 F12
      翔升主板 F10 三星笔记本 F12 明基台式机 F8
      精英主板 ESC/F11 IBM笔记本 F12
      冠盟主板 F11/F12 富士通笔记本 F12
      富士康主板 ESC/F12 海尔笔记本 F12
      顶星主板 F11/F12 方正笔记本 F12
      铭瑄主板 ESC 清华同方笔记本 F12
      盈通主板 F8 微星笔记本 F11
      捷波主板 ESC 明基笔记本 F9
      Intel主板 F12 技嘉笔记本 F12
      杰微主板 ESC/F8 GateWay笔记本 F12
      致铭主板 F12 eMachines笔记本 F12
      磐英主板 ESC 索尼笔记本 ESC
      磐正主板 ESC
      冠名主板 F9
      斯巴达卡主板 ESC
      华南主板 DEL/F11
    2. 在启动项将U盘设在第一个->按F10保存重启

    3. 选择Test this media & install CentOS 7

    4. 出现图形界面之后,按需求选择语言->设置网络、软件选择、安装位置等->设置root密码

    5. CentOS 7安装完成

安装后可做的事情:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 更新yum
yum update
# 安装vim
yum -y install vim
# 查看IP
ip a
ip addr
# 查看端口
netstat -ntlp
netstat -ntlp|grep XXXX(端口号)
# 查看进程
ps -ef
ps -ef|grep XXXX(程序名称)
# 修改ip
vim /etc/sysconfig/network-scripts/ifcfg-ens33
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 网卡类型(通常是Ethemet以太网)
TYPE="Ethernet"
# 代理方式
PROXY_METHOD="none"
# 只是浏览器
BROWSER_ONLY="no"
# 网卡的引导协议[static:静态IP dhcp:动态IP none:不指定,不指定容易出现各种各样的网络受限]
BOOTPROTO="none"
# 默认路由
DEFROUTE="yes"
# 是否开启IPV4致命错误检测
IPV4_FAILURE_FATAL="no"
# IPV6是否自动初始化(现在还未用到IPV6,不会有任何影响)
IPV6INIT="yes"
# IPV6是否自动配置:是(现在还未用到IPV6,不会有任何影响)
IPV6_AUTOCONF="yes"
# IPV6是否可以为默认路由:是(现在还未用到IPV6,不会有任何影响)
IPV6_DEFROUTE="yes"
# 是否开启IPV6致命错误检测
IPV6_FAILURE_FATAL="no"
# IPV6地址生成模型
IPV6_ADDR_GEN_MODE="stable-privacy"
# 网卡物理设备名称
NAME="ens33"
# 通用唯一识别码,每一个网卡都会有,不能重复,否则两台linux机器只有一台可上网
UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# 网卡设备名称,必须和‘NAME’值一样
DEVICE="ens33"
# 是否开机启动,要想网卡开机就启动或通过 'systemctl restart network' 控制网卡,必须设置为 "yes"
ONBOOT="yes"
# 本机IP
IPADDR="192.168.49.128"
# 子网掩码
PREFIX="24"
# 默认网关
GATEWAY="192.168.49.2"
# IPv6隐私地址
IPV6_PRIVACY="no"
# DNS
DNS1="8.8.8.8"

防火墙:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 查看防火墙
systemctl status firewalld
# 启动防火墙
systemctl start firewalld
# 停止防火墙
systemctl stop firewalld
# 重启防火墙
systemctl restart firewalld
# 设置开机启用防火墙
systemctl disable firewalld.service
# 设置开机禁用防火墙
systemctl disable firewalld.service
# 查看系统中的所有端口
firewall-cmd --list-ports
# 打开XXXX端口
firewall-cmd --zone=public --add-port=XXXX/tcp --permanent

JDK(JDK1.8)

Oracle Java官网 下载界面

下载JDK1.8最新Linux x64 Compressed Archive安装包(jdk-8uXXX-linux-x64.tar.gz)

  1. 将文件保存在/usr/local/lib64/

  2. 进行解压缩

    1
    tar -zxvf /usr/local/lib64/jdk-8uXXX-linux-x64.tar.gz
  3. /etc/profile最后添加如下配置

    1
    2
    3
    4
    # jdk
    export JAVA_HOME=/usr/local/lib64/jdk1.8.0_XXX
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  4. 刷新环境变量

    1
    source /etc/profile

Nginx(Stable version)

Nginx官网 下载界面

第1种安装方式

安装先决条件:

1
sudo yum install yum-utils

要设置 yum 存储库,请创建包含 /etc/yum.repos.d/nginx.repo 以下内容的文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

要安装 nginx,请运行以下命令:

1
sudo yum install nginx

当提示接受 GPG 密钥时,验证指纹是否匹配 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62,如果匹配,则接受。

第2种安装方式

下载Nginx支持最新Stable version的安装包(nginx-1.22.1.tar.gz)

  1. 将文件保存在/usr/local/lib64/

  2. 进行解压缩

    1
    tar -zxvf /usr/local/lib64/nginx-1.22.1.tar.gz
  3. 进入解压目录下

    1
    cd nginx-1.22.1
  4. 进行编译安装

    1
    make && make install

Node.js(16.XXX)

Node.js官网 下载界面

最新的LTS长期维护版18.X不适用CentOS 7,选择下载16.X版本。

Node.js

  1. 将文件保存在/usr/local/lib64/

  2. 进行解压缩

    1
    tar -zxvf /usr/local/lib64/node-v16.XXX-linux-x64.tar.gz
  3. /etc/profile最后添加如下配置

    1
    2
    # nodejs
    PATH=$PATH:/usr/local/lib64/node-v16.XXX-linux-x64/bin
  4. 刷新环境变量

    1
    source /etc/profile

Redis

Redis官网

  1. 安装EPEL (Extra Packages for Enterprise Linux “企业 Linux 的额外软件包”)

    1
    yum -y install epel-release
  2. 安装Redis

    1
    yum -y install redis
  3. 启动redis服务

    1
    systemctl start redis
  4. 查看redis状态

    1
    systemctl status redis
  5. 查看redis进程

    1
    ps -ef | grep redis
  6. 设置开机自启动

    1
    systemctl enable redis
  7. 开放端口号

    1
    2
    3
    firewall-cmd --zone=public --add-port=80/tcp --permanent

    firewall-cmd --zone=public --add-port=6379/tcp --permanent
  8. 查看端口

    1
    netstat -lnp|grep 6379
  9. 设置redis 远程连接和密码

    输入命令

    1
    vim /etc/redis.conf

    进入编辑模式。
    将这部注释掉,否则只有本机才能访问。

    1
    2
    3
    4
    #bind 127.0.0.1
    protected-mode no
    port 6379
    requirepass 密码
  10. 重启redis

    1
    systemctl restart redis
  11. 进入redis

    命令

    1
    redis-cli -h 127.0.0.1 -p 6379

    然后输入info,提示必须验证auth "密码"

  12. 停止服务

    1
    systemctl stop redis

MySQL(5.7)

MySQL官网

参考文档

以下说明假定 MySQL 尚未使用第三方分发的 RPM 软件包安装在您的系统上;如果不是这种情况,请按照替换本地第三方 MySQL 分发中给出的说明进行操作。

  1. 添加 MySQL Yum 存储库

    首先,将 MySQL Yum 存储库添加到系统的存储库列表中。按着这些次序:

    1. 转到 MySQL Yum 存储库的下载页面,网址为 https://dev.mysql.com/downloads/repo/yum/。

    2. 选择并下载适用于您的平台的发布包。

    3. 使用以下命令安装下载的发布包,替换 platform-and-version-specific-package-name 为下载包的名称:

      1
      $> sudo rpm -Uvh platform-and-version-specific-package-name.rpm

      例如,对于*n*基于 EL6 系统的软件包版本,命令为:

      1
      $> sudo rpm -Uvh mysql80-community-release-el6-n.noarch.rpm

      在您的系统上安装发布包后,通过yum update命令(或启用 dnf 的系统的dnf upgrade) 进行的任何系统范围更新将自动升级您系统上的 MySQL 包,并且还会替换任何本机第三方包,如果 Yum在 MySQL Yum 存储库中找到它们的替代品。有关详细信息, 请参阅使用 MySQL Yum 存储库升级 MySQL替换 MySQL 的本机第三方分发。

  2. 选择发布系列

    使用 MySQL Yum 存储库时,默认选择最新的 MySQL GA 版本进行安装。如果这是您想要的,您可以跳到下一步, 使用 Yum 安装 MySQL

    在 MySQL Yum 存储库 ( https://repo.mysql.com/yum/ ) 中,MySQL Community Server 的不同版本系列托管在不同的子存储库中。最新GA系列(目前MySQL 8.0)的子库默认开启,其他所有系列(如MySQL 5.7系列)的子库默认关闭。使用此命令查看 MySQL Yum 存储库中的所有子存储库,并查看其中哪些已启用或已禁用(对于启用 dnf 的系统,请将命令中的 yum 替换为 dnf

    1
    $> yum repolist all | grep mysql

    要安装最新 GA 系列的最新版本,无需配置。要安装最新 GA 系列以外的特定系列的最新版本,请在运行安装命令之前禁用最新 GA 系列的子存储库并启用特定系列的子存储库。如果您的平台支持 yum-config-managerdnf config-manager命令,您可以通过发出以下命令来实现,例如,禁用 8.0 系列的子存储库并启用 5.7 系列的子存储库;对于未启用 dnf 的平台:

    1
    2
    $> sudo yum-config-manager --disable mysql80-community
    $> sudo yum-config-manager --enable mysql57-community

    对于支持 dnf 的平台:

    1
    2
    $> sudo dnf config-manager --disable mysql80-community
    $> sudo dnf config-manager --enable mysql57-community

    除了使用yum-config-managerdnf config-manager命令外,您还可以通过手动编辑文件来选择系列 /etc/yum.repos.d/mysql-community.repo 。这是文件中发布系列子存储库的典型条目:

    1
    2
    3
    4
    5
    6
    7
    [mysql80-community]
    name=MySQL 8.0 Community Server
    baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/6/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
    file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

    找到您要配置的子存储库的条目,然后编辑该enabled选项。指定 enabled=0禁用子存储库或 enabled=1启用子存储库。例如,要安装 MySQL 5.7,请确保您拥有enabled=0MySQL 8.0 的上述子存储库条目,以及 enabled=15.7 系列的条目:

    1
    2
    3
    4
    5
    6
    7
    8
    # Enable to use MySQL 5.7
    [mysql57-community]
    name=MySQL 5.7 Community Server
    baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
    file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

    您应该在任何时候只为一个发布系列启用子存储库。当启用多个发布系列的子存储库时,Yum 将使用最新的系列。

    通过运行以下命令并检查其输出来验证是否已启用和禁用正确的子存储库(对于启用 dnf 的系统,将命令中的 yum 替换为 dnf ):

    1
    $> yum repolist enabled | grep mysql
  3. 禁用默认的 MySQL 模块

    (仅限 EL8 系统)基于 EL8 的系统(例如 RHEL8 和 Oracle Linux 8)包括默认启用的 MySQL 模块。除非禁用此模块,否则它会屏蔽 MySQL 存储库提供的包。要禁用包含的模块并使 MySQL 存储库包可见,请使用以下命令(对于启用 dnf 的系统,将 命令中的 yum替换为dnf):

    1
    $> sudo yum module disable mysql
  4. 安装 MySQL

    通过以下命令安装 MySQL(对于启用了 dnf 的系统,将命令中的 yum替换为dnf):

    1
    $> sudo yum install mysql-community-server

    这将安装 MySQL 服务器的包,以及其他所需的包。

  5. 启动 MySQL 服务器

    使用以下命令启动 MySQL 服务器:

    1
    $> systemctl start mysqld

    您可以使用以下命令检查 MySQL 服务器的状态:

    1
    $> systemctl status mysqld

    如果操作系统启用了 systemd,则应使用标准 systemctl(或者参数 相反的服务)命令(例如停止启动状态重启)来管理 MySQL 服务器服务。该mysqld服务默认启用,并在系统重启时启动。有关更多信息,请参阅 使用 systemd 管理 MySQL 服务器

    MySQL 服务器初始化(从 MySQL 5.7 开始):在服务器初始启动时,如果服务器的数据目录为空,则会发生以下情况:

    • 服务器已初始化。

    • 在数据目录中生成 SSL 证书和密钥文件。

    • validate_password 插件 已安装并启用。

    • 'root'@'localhost' 创建 一个超级用户帐户。超级用户的密码已设置并存储在错误日志文件中。要显示它,请使用以下命令:

      1
      $> sudo grep 'temporary password' /var/log/mysqld.log

      通过使用生成的临时密码登录并为超级用户帐户设置自定义密码,尽快更改 root 密码:

      1
      $> mysql -uroot -p
      1
      mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

    默认安装 MySQL 的 validate_password插件。这将要求密码至少包含一个大写字母、一个小写字母、一位数字和一个特殊字符,并且密码总长度至少为 8 个字符。

  6. 保护 MySQL 安装(仅适用于 MySQL 5.6)

    1. 程序mysql_secure_installation 允许您执行重要操作,如设置 root 密码、删除匿名用户等。始终运行它以保护您的 MySQL 5.6 安装:

      1
      $> mysql_secure_installation

      记住您设置的 root 密码很重要。有关详细信息, 请参阅 mysql_secure_installation — 提高 MySQL 安装安全性。

      安装 MySQL 5.7 或更高版本后 不要运行mysql_secure_installation ,因为该程序的功能已经由 Yum 存储库安装执行。

    对于基于 EL7 的平台:请参阅 基于 EL7 的平台的兼容性信息

密码问题

  1. 查看初始密码

    1
    grep 'temporary password' /var/log/mysqld.log
  2. 使用root账户登录mysql

    1
    2
    mysql -u root -p
    Enter password:
  3. 修改userName密码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # 不可在外网登录
    ALTER USER 'userName'@'localhost' IDENTIFIED BY 'New-Password-Here';
    # 已可在外网登录
    ALTER USER 'userName'@'%' IDENTIFIED BY 'New-Password-Here';

    # 或

    # 使用mysql表
    use mysql;
    # 修改密码
    update mysql.user set authentication_string=password('New-Password-Here') where user='userName' and Host = 'localhost';

远程连接问题:is not allowed to connect to this mysql server

  1. 登录到mysql中

    1
    2
    mysql -u root -p
    Enter password:
  2. 使用mysql表

    1
    use mysql;
  3. 查看root可用的登录连接

    1
    select host from user where user='root';
  4. 更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称”%”

    1
    update user set host = '%' where user ='root';
  5. 刷新配置

    1
    flush privileges;

一些命令

1
2
3
4
5
6
# 查看所有数据库
show databases;
# 启动 MySQL 服务器
systemctl start mysqld
# 查看 MySQL 服务器状态
systemctl status mysqld

Tomcat(10.0.27)

Tomcat官网 下载界面

下载Tomcat支持最新JDK1.8的安装包(apache-tomcat-10.0.27.tar.gz)

  1. 将文件保存在/usr/local/lib64/

  2. 进行解压缩

    1
    tar -zxvf /usr/local/lib64/apache-tomcat-10.0.27.tar.gz
  3. 进入bin目录下

    1
    cd apache-tomcat-10.0.27.tar.gz/bin/
  4. 运行Tomcat

    1
    ./startup.sh

    停止Tomcat

    1
    ./shutdown.sh

Docker

Docker官网

参考文档

安装Docker前:

1
2
#镜像CentOS 7提取
tar -cvpf /tmp/system.tar --directory=/ --exclude=proc --exclude=sys --exclude=dev --exclude=run --exclude=boot .

安装Docker后:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#导入CentOS 7镜像
cd /tmp
docker import system.tar centos:7
#部署运行CentOS 7容器
docker run -it -d --name XXX centos:7 /bin/bash
#进入CentOS 7容器
docker attach testcentos
#运行CentOS 7容器
docker start testcentos
#重启CentOS 7容器
docker restart testcentos
#退出并关闭容器
exit
#退出但不关闭容器:
`Ctrl+P+Q`

#查看所有镜像
docker images
#查看运行中的容器
docker ps
#查看所有容器
docker ps -a

参考文档:https://docs.docker.com/engine/install/centos/

卸载旧版本

旧版本的 Docker 被称为dockerdocker-engine。如果安装了这些,请卸载它们以及相关的依赖项。

1
2
3
4
5
6
7
8
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

yum如果报告没有安装这些软件包,那也没关系。

内容/var/lib/docker/(包括图像、容器、卷和网络)将被保留。Docker 引擎包现在称为docker-ce.

安装方法

您可以根据需要以不同的方式安装 Docker Engine:

  • 大多数用户 设置 Docker 的存储库并从中安装,以简化安装和升级任务。这是推荐的方法。
  • 一些用户下载 RPM 包并 手动安装并完全手动管理升级。这在诸如在无法访问 Internet 的气隙系统上安装 Docker 等情况下非常有用。
  • 在测试和开发环境中,一些用户选择使用自动化的 便捷脚本来安装 Docker。

使用存储库安装

在新主机上首次安装 Docker Engine 之前,您需要设置 Docker 存储库。之后,您可以从存储库安装和更新 Docker。

设置存储库

安装yum-utils包(提供yum-config-manager 实用程序)并设置存储库。

1
2
3
4
5
$ sudo yum install -y yum-utils

$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

安装 Docker 引擎

  1. 安装最新版本的 Docker Engine、containerd 和 Docker Compose 或转到下一步安装特定版本:

    1
    $ sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

    如果提示接受 GPG 密钥,请验证指纹是否匹配 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果匹配,则接受。

    此命令安装 Docker,但不会启动 Docker。它还会创建一个 docker组,但是默认情况下不会向该组添加任何用户。

  2. 要安装特定版本的 Docker 引擎,请在存储库中列出可用版本,然后选择并安装:

    一个。列出并排序存储库中可用的版本。此示例按版本号从高到低对结果进行排序,并被截断:

    1
    2
    3
    4
    5
    6
    $ yum list docker-ce --showduplicates | sort -r

    docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
    docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
    docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
    docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable

    返回的列表取决于启用了哪些存储库,并且特定于您的 CentOS 版本(.el7在此示例中由后缀表示)。

    b. 通过其完全限定的包名称安装特定版本,即包名称 ( docker-ce) 加上版本字符串(第 2 列),从第一个冒号 ( :) 开始,直到第一个连字符,由连字符 ( -) 分隔。例如,docker-ce-18.09.1

    1
    $ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-compose-plugin

    此命令安装 Docker,但不会启动 Docker。它还会创建一个 docker组,但是默认情况下不会向该组添加任何用户。

  3. 启动 Docker。

    1
    $ sudo systemctl start docker
  4. 通过运行映像验证 Docker 引擎是否已正确安装hello-world

    1
    $ sudo docker run hello-world

    此命令下载测试图像并在容器中运行它。当容器运行时,它会打印一条消息并退出。

这将安装并运行 Docker 引擎。用于sudo运行 Docker 命令。继续Linux postinstall以允许非特权用户运行 Docker 命令和其他可选配置步骤。

1
#docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.1 -o parent=enp3s0 -o macvlan_mode=bridge bridgemacvlan
1
docker run -it -d --name test --privileged=true --network bridgemacvlan --ip=192.168.0.130 centos:7 /bin/bash/init
1
docker run -it -d --name test --privileged centos:7 /usr/sbin/init
1
tar --numeric-owner --exclude=/proc --exclude=/sys --exclude=/mnt --exclude=/var/cache --exclude=/usr/share/{foomatic,backgrounds,perl5,fonts,cups,qt4,groff,kde4,icons,pixmaps,emacs,gnome-background-properties,sounds,gnome,games,desktop-directories} --exclude=/var/log -zcvf /mnt/CentOS7-BaseImage.tar /