**

一、设置网络连接

**
这里插入图片描述
在这里插入图片描述
在这里插入图片描述

选择有线设置
在这里插入图片描述
选择要连接的网络后,点击右下角设置-IPV4后,设置网络连接。
**

二、Centos的yum源替换原yum源

**
RHEL是收费的,需要注册才可正常使用。解决办法是用CentOS的yum源替换掉原yum源,CentOS已经被红帽收购,且跟RHEL系统没多大区别,可以免费使用。所以将RHEL的YUM源替换为CentOS即可。
1、查看Redhat的原yum源

rpm -qa | grep yum

在这里插入图片描述
2、进行卸载
在这里插入图片描述
3、查看自身redhat版本

cat /etc/redhat-release

在这里插入图片描述
4、确保http://mirrors.163.com/centos/可以访问,找到自己所需版本进行下载,下载centos7的相关软件包

wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-chardet-2.2.1-3.el7.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-kitchen-1.1.1-5.el7.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-updateonboot-1.1.31-54.el7_8.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-utils-1.1.31-54.el7_8.noarch.rpm

在这里插入图片描述
在这里插入图片描述
如图所示,则下载成功。
5、安装软件包

rpm -ivh python-*
rpm -ivh yum-*

在这里插入图片描述
使用rpm命令升级软件包时,有时候可能会与原来的安装的软件版本冲突。添加参数替换掉已有文件

rpm -Uvh --replacefiles *.rpm

6、新建repo配置文件,如果是其他Redhat版本,将7改为对应的版本数字

vim /etc/yum.repos.d/CenOS-Base.repo

在这里插入图片描述
文件内容为:

#CentOS-Base.repo
[base]
name=CentOS-$7 - Base - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$7&arch=$basearch&repo=os
baseurl=http://mirrors.163.com/centos/7/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$7 - Updates - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$7&arch=$basearch&repo=updates
baseurl=http://mirrors.163.com/centos/7/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$7 - Extras - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$7&arch=$basearch&repo=extras
baseurl=http://mirrors.163.com/centos/7/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$7 - Plus - 163.com
baseurl=http://mirrors.163.com/centos/7/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

在这里插入图片描述
7、清除缓存

yum clean all

在这里插入图片描述
8、将服务器软件包信息缓存至本地,提高搜索安装效率

yum makecache

在这里插入图片描述
9、使用yum安装软件包测试

yum -y install vim

在这里插入图片描述
**

三、配置java环境

**
1、下载jdk文件
登录oracle官网下载1.8版本jdk
在这里插入图片描述
2、删除自带的java环境

yum remove java

在这里插入图片描述

2、新建/usr/java文件夹
在这里插入图片描述
将jdk-8u351-linux-x64.tar.gz放到该文件夹中。(我用指令从下载文件夹复制到/usr/java了)
在这里插入图片描述
3、将工作目录切换到/usr/java目录下,解压jdk压缩文件
在这里插入图片描述
完成后如下图:
在这里插入图片描述
4、配置环境变量
使用vi /etc/profile编辑profile文件,在文件末尾处增加环境变量信息:

JAVA_HOME=/usr/java/jdk1.8.0_351
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH

(注意自己安装的jdk版本,修改JAVA_HOME)
如下图:
在这里插入图片描述
5、使用source /etc/profile让profile文件立即生效,验证jdk是否安装成功
在这里插入图片描述
6、使用echo $JAVA_HOME等命令可以查看环境变量
在这里插入图片描述
**

四、mysql安装

**
1、redhat默认安装mariaDB,这个是MySQL的分支,先看看有没有mariaDB。

yum list installed | grep mariadb

在这里插入图片描述
如果有,先卸载。

yum remove -y mariadb-libs

在这里插入图片描述
卸载完成后,再次查看。
在这里插入图片描述
2、下载安装包:http://repo.mysql.com/
我下载的是mysql57-community-release-el7-10.noarch.rpm版本

wget https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

在这里插入图片描述
3、安装yum包

yum -y install mysql57-community-release-el7-10.noarch.rpm

在这里插入图片描述
4、检验是否启动5.7成功

yum repolist enabled | grep mysql

在这里插入图片描述
5、安装 mysql服务器

yum -y install mysql-community-server

我的在安装过程中出现如下报错:
在这里插入图片描述
执行如下指令,再次安装成功了。

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum -y install mysql-community-server

在这里插入图片描述
6、启动mysql服务

systemctl start mysqld.service

在这里插入图片描述
7、查看root初始登录密码

grep "password" /var/log/mysqld.log

结尾处为初始密码
在这里插入图片描述
8、进入数据库修改密码

mysql -u root -p

在密码处输入初始密码,如我的:JWtOv7yfm&Gj。
在这里插入图片描述
修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

我在修改密码时出现如下报错:
在这里插入图片描述
可通过以下命令设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW,并将密码长度设置为你想要的长度,我设置为了4:

set global validate_password_policy=LOW;
set global validate_password_length=4;

再次修改密码成功!
在这里插入图片描述
9、开启MySQL远程访问

grant all privileges on *.* to 'root'@'192.168.1.72' identified by 'password' with grant option;

在这里插入图片描述
10、刷新MySQL的系统权限并退出

flush privileges;
exit

在这里插入图片描述
11、为firewalld添加开放端口
添加mysql端口3306

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

在这里插入图片描述
12、修改mysql语言
在/etc/my.cnf文件下修改以下内容

vim /etc/my.cnf

新增四行代码

[client]
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci

如下图中的前两行和最后两行:
在这里插入图片描述
13、对数据库进行重启

service mysqld restart

14、测试数据库的远程访问时报错:错误号码1130 host’***’ is not allowed to connect to this mysql server。
登录mysql,修改user表,并刷新权限。

use mysql;
update user set host='%' where host='localhost' and user='root';
flush privileges;

在这里插入图片描述
此时,远程访问数据库成功!
**

五、nacos安装

**
(1)配置java环境
由于java环境已配置,此处省略。
(2)准备maven环境
1、官网
在这里插入图片描述
我选择的是第一个apache-maven-3.8.6-bin.tar.gz
2、将文件复制到/usr/local中并解压

在这里插入图片描述
3、配置maven仓库
首先进入maven安装目录下,新建repository目录,作为存储仓库目录。

cd /usr/local/apache-maven-3.8.6
mkdir repository

在这里插入图片描述
进入maven安装目录中的conf目录,修改仓库配置文件settings.xml。

cd conf
vim settings.xml

找到localRepository下面复制一行加上

<localRepository>/usr/local/apache-maven-3.8.6/repository</localRepository>

在这里插入图片描述
再找到mirror 加上阿里的仓库配置

  <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
       <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
  </mirror>

在这里插入图片描述
4、配置路径
打开文件:vi /etc/profile
在文件末尾添加以下配置

export MAVEN_HOME=/usr/local/apache-maven-3.8.6
export PATH=$MAVEN_HOME/bin:$PATH

(注意:MAVEN_HOME后的路径为maven解压文件的位置)
在这里插入图片描述
4、刷新,并查看是否安装成功

source /etc/profile
mvn -v

在这里插入图片描述
(3)安装nacos
1、官网下载文件:https://github.com/alibaba/nacos/releases
在这里插入图片描述
我选择的是2.0.4版本,选择第一个nacos-server-2.0.4.tar.gz下载即可。
2、将文件复制到/usr/local路径下,进入/usr/local路径下解压文件(放到其他位置也可以)

cp /home/admin/nacos-server-2.0.4.tar.gz /usr/local
cd /usr/local
tar -zxvf nacos-server-2.0.4.tar.gz

在这里插入图片描述
3、修改配置
首先在bin目录下修改startup.sh文件

cd nacos/bin
vim startup.sh

在这里插入图片描述
将第一条JAVA_HOME修改为自己安装的jdk路径,如果不确定可以执行whereis java来查看。
在这里插入图片描述
文件内容修改如下:
在这里插入图片描述
之后进入conf目录,修改application.properties 文件

cd /usr/local/nacos/conf
vim application.properties

将注释放开,并按自己的数据库进行配置,文件内容修改如下:
在这里插入图片描述
新建名为nacos的数据库(数据库名与上图配置一致),将nacos中的sql脚本导入数据库中,我的路径为/usr/local/nacos/conf/nacos-mysql.sql

mysql -u root -p
create database nacos;
use nacos;
source /usr/local/nacos/conf/nacos-mysql.sql;
exit

在这里插入图片描述
4、进入nacos的conf目录,修改配置文件cluster.conf.example,重命名为cluster.conf

mv cluster.conf.example cluster.conf
vim cluster.conf

先将该文件中之前的几个ip端口注释,再添加要配置的几台设备nacos对应的ip和端口。
在这里插入图片描述
4、启动nacos
进入bin目录,启动nacos

cd /usr/local/nacos/bin
sh startup.sh -m standalone

standalone代表着单机模式运行,非集群模式,这里以集群模式启动,图上是之前的单机启动。
在这里插入图片描述
打开网页,格式为http://ip地址:端口/nacos/,账号密码默认为:nacos nacos
在这里插入图片描述
如果要关闭nacos,指令为:

cd /usr/local/nacos/bin
sh shutdown.sh

在这里插入图片描述
5、开启防火墙端口,设置远程访问

sudo firewall-cmd --zone=public --add-port=8848/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9848/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8849/tcp --permanent
#重启防火墙
firewall-cmd --reload

在这里插入图片描述
在这里插入图片描述
6、设置nacos开机自启动
编写nacos启动文件

vim /lib/systemd/system/nacos.service

新增内容如下:

[Unit]
Description=nacos
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nacos/bin/startup.sh -m standalone
ExecReload=/usr/local/nacos/bin/shutdown.sh
ExecStop=/usr/local/nacos/bin/shutdown.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target

其中/usr/local/nacos/bin 需要修改为个人nacos的实际安装路径。
在这里插入图片描述

#重载所有服务
systemctl daemon-reload
#设置开机自启动
systemctl enable nacos.service

在这里插入图片描述
**

六、RabbitMQ安装

**
1、安装依赖包
RabbitMQ是采用 Erlang语言开发的,所以系统环境必须提供 Erlang环境,需要安装 Erlang。在 http://www.rabbitmq.com/which-erlang.html 页面查看安装rabbitmq需要安装erlang对应的版本。
在这里插入图片描述
我选择的rabbitmq为3.9.11版本,所以erlang需要选择23.2-24.2版本的。
erlang下载地址:https://github.com/rabbitmq/erlang-rpm/releases
在这里插入图片描述
我选择的是23.3.4.8版本,注意:其中的el7表示Red Hat 7.x,即CentOS 7.x,如果红帽系统为8.x版本,需要选el8。我选择第一项进行下载。
rabbitmq下载地址:https://github.com/rabbitmq/rabbitmq-server/releases
![在这里插入图片描述](https://img-blog.csdnimg.cn/164cec40eb624de78fb4f28984af43e9.png
我选择第一项3.9.11版本进行下载。
2、在usr文件夹下新建rabbitmq文件夹放入刚才下载的安装包

cd /usr
mkdir rabbitmq
cp /home/admin/rabbitmq-server-3.9.11-1.el7.noarch.rpm /usr/rabbitmq
cp /home/admin/erlang-23.3.4.8-1.el7.x86_64.rpm  /usr/rabbitmq

可以在该目录下看到两个安装包
在这里插入图片描述
3、安装erlang
切换到/usr/rabbitmq目录,解压安装erlang并查看版本号

cd rabbitmq
rpm -Uvh erlang-23.3.4.8-1.el7.x86_64.rpm
yum install -y erlang
erl -v

在这里插入图片描述
在这里插入图片描述

4、安装rabbitmq
RabbitMQ安装过程中需要依赖socat插件,首先安装该插件

yum install -y socat

在这里插入图片描述解压安装RabbitMQ的安装包

rpm -Uvh rabbitmq-server-3.9.11-1.el7.noarch.rpm
yum install -y rabbitmq-server

在这里插入图片描述
5、启动RabbitMQ服务

# 启动rabbitmq
systemctl start rabbitmq-server
# 查看rabbitmq状态
systemctl status rabbitmq-server

在这里插入图片描述
其他命令

# 设置rabbitmq服务开机自启动
systemctl enable rabbitmq-server
# 关闭rabbitmq服务
systemctl stop rabbitmq-server
# 重启rabbitmq服务
systemctl restart rabbitmq-server

6、安装启动RabbitMQWeb管理界面
默认情况下,rabbitmq没有安装web端的客户端软件,需要安装才可以生效

# 打开RabbitMQWeb管理界面插件
rabbitmq-plugins enable rabbitmq_management

在这里插入图片描述
RabbitMQ 服务启动后,还不能进行外部通信,需要将端口添加防火墙

#添加端口
sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent
#重启防火墙
firewall-cmd --reload

在这里插入图片描述
打开浏览器,访问http://ip地址:15672,默认用户及密码:guest guest
在这里插入图片描述
7、添加远程用户
rabbitmq有一个默认的账号密码guest,但该情况仅限于本机localhost进行访问,所以需要添加一个远程登录的用户。

# 添加用户
rabbitmqctl add_user 用户名 密码
# 设置用户角色,分配操作权限
rabbitmqctl set_user_tags 用户名 角色
# 为用户添加资源权限(授予所有权限)
rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"

在这里插入图片描述
在这里插入图片描述
创建完成后,即可远程访问ip地址:15672进行登录
其他指令:

# 修改密码
rabbitmqctl change_ password 用户名 新密码
# 删除用户
rabbitmqctl delete_user 用户名
# 查看用户清单
rabbitmqctl list_users

**

七、redis安装

**
1、官网下载: http://download.redis.io/releases
我下载的是7.0.0版本的
在这里插入图片描述
2、将文件拷贝到/usr/local文件夹下并解压

cp /home/admin/redis-7.0.0.tar.gz /usr/local
cd /usr/local
tar -zxvf redis-7.0.0.tar.gz

在这里插入图片描述
3、进入解压后的目录进行编译

cd /usr/local/redis-7.0.0
make

在这里插入图片描述
4、进入src目录,测试是否安装成功

cd src
make test

在这里插入图片描述
提示安装tcl

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/tcl-8.5.13-8.el7.x86_64.rpm
rpm -ivh tcl-8.5.13-8.el7.x86_64.rpm

再次执行make test

cd /usr/local/redis-7.0.0/src
make test

4、安装到指定目录,如 /usr/local/redis

make install PREFIX=/usr/local/redis

在这里插入图片描述
5、拷贝配置文件redis.conf到安装目录下

cd ../
mkdir /usr/local/redis/etc
mv redis.conf /usr/local/redis/etc

在这里插入图片描述
6、配置redis为后台启动(redis为前台启动时,如果窗口关闭的话,Redis服务器就关闭了。不适合实际开发应用。)
将/usr/local/redis/etc/redis.conf 文件中的daemonize no 修改成daemonize yes。

cd /usr/local/redis/etc
vim redis.conf

在这里插入图片描述
7、将redis加入到开机启动

vi /etc/rc.local

在里边添加如下内容(意思就是开机调用这段开启redis的命令):

/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

在这里插入图片描述
8、开启redis

/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

9、将redis-cli,redis-server拷贝到bin下,让redis-cli指令可以在任意目录下直接使用

cp /usr/local/redis/bin/redis-server /usr/local/bin/
cp /usr/local/redis/bin/redis-cli /usr/local/bin/

10、让外网能够访问redis
配置防火墙

#开放6379端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
#重启防火墙以使配置即时生效
systemctl restart firewalld

此时虽然防火墙开放了6379端口,但是外网还是无法访问的,因为redis监听的是127.0.0.1:6379,并不监听外网的请求。
把/usr/local/redis/etc/redis.conf配置文件里的bind 127.0.0.1前面加#注释掉,或者在后面加上要远程访问的ip。
同时在1036行设置密码,requirepass 123456

vim /usr/local/redis/etc/redis.conf

在这里插入图片描述
redis-cli连接到redis后,通过config get protected-mode 是不是为no,如果不是,就用config set 配置名属性改为no。

cd ../
cd bin
redis-cli
config get protected-mode
config set protected-mode no
exit

在这里插入图片描述
11、使用redis-cli客户端检测连接是否正常

redis-cli
keys *
set key "hello world"
get key
exit

在这里插入图片描述
12、常用命令

#启动redis
redis-server /usr/local/redis/etc/redis.conf
#停止redis
pkill redis
#卸载redis
rm -rf /usr/local/redis //删除安装目录
rm -rf /usr/bin/redis-* //删除所有redis相关命令脚本
rm -rf /root/download/redis-7.0.0 //删除redis解压文件夹
#使用客户端停止redis
redis-cli shutdown

**

八、docker安装

**
1、查看内核版本(需大于3.10)

uname -a

在这里插入图片描述
2、安装基础工具

yum install -y yum-utils device-mapper-persistent-data lvm2

3、为yum源添加docker仓库位置

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

修改 docker-ce.repo 配置文件中的 baseurl 链接地址

sed -i 's/centos\/$releasever/centos\/7/g' /etc/yum.repos.d/docker-ce.repo

将每个baseurl中的$releasever替换为7(如果是8.*版本替换为8)
在这里插入图片描述
清除并重新生成缓存

yum clean all
yum makecache

4、安装docker

yum -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin

注意:如果系统为8.*版本,指令为yum -y install docker-ce --allowerasing
不然会报错,是因为centos8中的默认podman和docker冲突不能共存,要先卸载podman才能安装docker,7的版本就不存在这个问题。
在这里插入图片描述
5、启动docker并设置为开机自启

systemctl enable docker

在这里插入图片描述
6、查看docker版本 yum默认安装是最新版本

docker --version

在这里插入图片描述
7、配置阿里镜像加速器

vim /etc/docker/daemon.json

增加如下内容

{
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"]
}

在这里插入图片描述
刷新配置,重启

systemctl daemon-reload
systemctl restart docker

**

九、docker-compose安装

**
1、下载安装包

curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

在这里插入图片描述
2、添加可执行权限

sudo chmod +x /usr/local/bin/docker-compose

在这里插入图片描述
3、测试安装结果

docker-compose --version

在这里插入图片描述
**

十、nginx安装

**
1、官网下载:https://nginx.org/en/download.html
在这里插入图片描述
2、复制到/usr/local目录下并解压

cp /home/admin/nginx-1.22.1.tar.gz /usr/local
cd /usr/local
tar -zxvf nginx-1.22.1.tar.gz

在这里插入图片描述
在这里插入图片描述
3、安装依赖

yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y gcc gcc-c++
yum install -y openssl openssl-devel

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4、配置并编译

cd nginx-1.22.1
./configure --prefix=/usr/local/nginx
make
make install

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5、进入nginx目录下修改配置文件

vim /usr/local/nginx/conf/nginx.conf

修改监听为8089,server_name改为本机ip地址
在这里插入图片描述
6、启动nginx

cd /usr/local/nginx/sbin
./nginx

在这里插入图片描述
访问地址:ip:8089
在这里插入图片描述
7、nginx设置开机自启动
编写nacos启动文件

vim /lib/systemd/system/nginx.service

新增内容如下:

[Unit]
Description=nginx service
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

其中/usr/local/nginx/sbin 需要修改为个人nginx的实际安装路径。
在这里插入图片描述

#重载所有服务
systemctl daemon-reload
#设置开机自启动
systemctl enable nginx.service

在这里插入图片描述
在这里插入图片描述
**

十一、nodejs安装及vue环境搭建

**
1、官网下载:http://nodejs.cn/download/
下载64位版本
在这里插入图片描述
2、复制到/usr/local文件夹并解压

cp /home/admin/node-v16.18.0-linux-x64.tar.xz /usr/local
cd /usr/local
tar xvf node-v16.18.0-linux-x64.tar.xz

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3、配置

vi /etc/profile.d/node.sh

内容如下:

export NODE_HOME=/usr/local/node-v16.18.0-linux-x64
export PATH=${NODE_HOME}/bin:$PATH

在这里插入图片描述
执行配置文件并测试是否成功

chmod +x /etc/profile.d/node.sh
source /etc/profile.d/node.sh
node -v

在这里插入图片描述
4、安装cnpm
因为npm访问外网很慢,所以需要使用淘宝的镜像。

npm install -g cnpm --registry=https://registry.npm.taobao.org

在这里插入图片描述
建立软链接并测试

ln -s /usr/local/node-v16.18.0-linux-x64/bin/code /usr/bin/node
ln -s /usr/local/node-v16.18.0-linux-x64/bin/npm /usr/bin/npm
ln -s /usr/local/node-v16.18.0-linux-x64/bin/cnpm /usr/local/bin/cnpm
node -v
npm -v
cnpm -v

在这里插入图片描述
有时使用cnpm初始化vue项目时会报错,所以还是使用npm,把源换下

npm config set registry https://registry.npm.taobao.org

在这里插入图片描述
5、全局安装vue-cli3脚手架

npm install -g @vue/cli

在这里插入图片描述
建立软连接并测试

ln -s /usr/local/node-v16.18.0-linux-x64/bin/vue /usr/local/bin/vue
vue -V

在这里插入图片描述
**

十二、subversion安装

1、yum安装

yum -y install subversion

查看svn安装目录

rpm -ql subversion

查看安装版本

svnserve --version

在这里插入图片描述
2、创建版本库目录

mkdir /var/svn
cd /var/svn
mkdir svnrepos

3、创建svn版本库

svnadmin create /var/svn/svnrepos/project
cd /var/svn/svnrepos/project
vim conf/authz

在文件最后末尾添加
在这里插入图片描述

vim conf/passwd

在最后一行添加账户和密码信息,格式为:帐号 = 密码
在这里插入图片描述

vim conf/svnserve.conf

如下图,将此四条命令前的注释去掉
在这里插入图片描述
4、启动svn服务器

cd /home/admin
svnserve -d -r /var/svn/svnrepos

使用ps -aux查看服务是否启动成功
在这里插入图片描述
5、客户端访问svn服务器
防火墙加入端口

firewall-cmd --zone=public --add-port=3690/tcp --permanent
firewall-cmd --reload

访问地址为svn://ip地址:3690/project

十三、jenkins安装

**
1、官网下载:http://mirrors.jenkins-ci.org/redhat/
不同的版本会有不同的java版本依赖(Jenkins在2022年的官网上说,支持新版的jdk,例如jdk11;如果用yum安装一般是最新版jenkins,而我本地是jdk8版本的,很可能不兼容;openjdk跟jdk是两种版本,因为已经装了maven,那就不能装openjdk,而应该装jdk;jdk11这个版本能同时兼容maven和jenkins,鉴于我本地已经装了jdk8,所以采用rpm安装下载合适的jenkins版本。)
在这里插入图片描述

2.164或更高版本 Java 8 or Java 11
2.54或更高版本 Java 8
1.612或更高版本 Java 7

我下载的是2.350版本
在这里插入图片描述
2、安装

rpm -ivh jenkins-2.350-1.1.noarch.rpm

图片版本不对,此处忘记截图,版本为2.350
在这里插入图片描述
3、配置修改
修改端口号(默认端口为8080,我修改为了8888端口)

vim /etc/sysconfig/jenkins

在这里插入图片描述
/usr/bin/java 是Jenkins配置文件中的默认java路径,需要改为主机上安装的java路径。
查看路径为:

which java

在这里插入图片描述
修改/etc/init.d/jenkins文件(添加主机的java路径),并重新加载配置文件

vim /etc/init.d/jenkins
systemctl daemon-reload

在这里插入图片描述
在这里插入图片描述
4、启动服务

service jenkins start
systemctl enable jenkins.service

在这里插入图片描述
5、将端口添加到防火墙

#开放指定端口
firewall-cmd --zone=public --add-port=8888/tcp --permanent
#重启防火墙
firewall-cmd --reload
#查看当前所有tcp端口
netstat -ntlp

在这里插入图片描述
6、测试访问
访问地址:http://ip地址:8888
在这里插入图片描述
踩坑:端口修改不生效。如果jenkins启动之后,访问8888端口找不到网页,而访问8080可以,则需额外修改一处配置

vim /usr/lib/systemd/system/jenkins.service
# 重新加载配置文件
systemctl daemon-reload
service jenkins restart

修改端口号为8888,之后重新启动service jenkins restart
在这里插入图片描述
获取管理员密码

cat /var/lib/jenkins/secrets/initialAdminPassword

在这里插入图片描述
复制此密码到网页,点击继续,选择安装推荐的插件。
在这里插入图片描述
在这里插入图片描述
创建账户
在这里插入图片描述
选择默认的实例配置即可。
在这里插入图片描述
点击保存并完成。
在这里插入图片描述
点击开始使用后进入登录页面。
在这里插入图片描述
输入帐号密码,登录成功。
在这里插入图片描述
**
7、将jenkins设置为root权限
将 jenkins 账号加入到 root 组中

gpasswd -a jenkins root

修改/etc/sysconfig/jenkins文件,添加如下配置。

vim /etc/sysconfig/jenkins
JENKINS_USER="root"
JENKINS_GROUP="root"

将JENKINS_USER="jenkins"改为JENKINS_USER=“root”,添加JENKINS_GROUP=“root”。
在这里插入图片描述
重启 Jenkins

service jenkins restart

十三、后端基于jenkins的自动部署

(1)插件安装
1、maven插件安装
选择左侧manage jenkins选项后,选择图片右下角的manage plugins。
在这里插入图片描述
选择第二个可选插件,搜索maven,勾选第一个maven integration,点击install without restart按钮后进行下载。
在这里插入图片描述
下载完成后,点击返回首页。
2、下载nodejs插件。

2、Deploy to container插件安装
在这里插入图片描述
在这里插入图片描述
3、publish over ssh插件安装
在这里插入图片描述
在这里插入图片描述
4、subversion插件安装
在这里插入图片描述
在这里插入图片描述
(2)jenkins全局工具配置
选择manage jenkins后,点击图片右下角的global tool configuration中设置maven和jdk。
在这里插入图片描述
1、在maven配置中,按下图进行配置。
在这里插入图片描述
文件路径为下载的maven解压包路径。
2、点击新增jdk,取消Install automatically自动安装勾选,配置jdk名称和安装路径。
在这里插入图片描述
如果不确定JAVA_HOME路径,输入$JAVA_HOME查看。
在这里插入图片描述
3、之后下拉,点击新增maven按钮,取消Install automatically自动安装勾选,配置maven名称和安装路径。
在这里插入图片描述
配置完成后,点击应用后保存。
(3)配置credentials(因为登录svn的时候需要密码认证,所以要创建一个credentials)
点击manage jenkins,选择图片右下角的manage credentials选项。
在这里插入图片描述
点击头像右侧的jenkins选项进入。
在这里插入图片描述
点击全局凭据选项进入。
在这里插入图片描述
点击添加凭据选项。
在这里插入图片描述
按下图进行配置,点击create(注意:确定设置的用户名和密码可以访问svn)。
在这里插入图片描述
(4)svn自动化部署准备
点击用户列表,选择刚刚创建的root用户
在这里插入图片描述
点击设置
在这里插入图片描述
在API Token页面,点击添加新Token(我这里因为已经设置过了,所以显示这样)
在这里插入图片描述
先填写名称,我写的是root_token,之后点击生成按钮。
在这里插入图片描述
如图上标蓝处为生成的token值,复制此token值或点击右侧的复制按钮也可,先把token值记好,待会要用,点击应用后保存。
svn钩子配置
在svn仓库下hooks目录创建post-commit文件

cd /var/svn/svnrepos/project/hooks
vi post-commit

内容如下,其中119105797b169cbb9c36eac3183b1f9d2a为jenkins里设置的token,jinteng是刚才设置的凭据名称,192.168.1.58:8888/job/svn/build是jenkins任务。当svn代码变动时,自动触发jenkins任务。

#!/bin/sh
export LANG=zh_CN.GBK
curl -X POST "http://jinteng:119105797b169cbb9c36eac3183b1f9d2a@192.168.1.58:8888/job/svn/build"

在这里插入图片描述
(4)新建项目
1、首页选择新建item
在这里插入图片描述
2、输入任务名称,选择构建一个maven项目,点击确定。
在这里插入图片描述
3、进入项目,进行相关配置。
在general页面,添加描述,勾选discard old builds即丢弃旧的构建,选择备份最近的10个,点击应用。
在这里插入图片描述
源码管理页面进行如下图设置,选择subversion,输入svn的URL,在credentials处选择刚创建的svn凭据,check-out strategy选择图片所示那项后,点击应用。
在这里插入图片描述
在这里插入图片描述
构建触发器页面配置如下,默认配置。
在这里插入图片描述
构建环境勾选最后一项With Ant,选择jdk。
在这里插入图片描述
build页面输入如下配置。

#使用maven命令进行包的清除、打包、安装api等操作
clean install

在这里插入图片描述
Post steps页面选择第一项Run onlyif build succeeds,点击add post-build step按钮,选择Execute shell选项,进行shell命令的编写。使jenkins在构建完成后,将构建完成的包发送到指定服务器,并运行启动脚本。
在这里插入图片描述
shell脚本内容为(其中/var/lib/jenkins为jenkins默认的安装路径,ids为新建项目时自己起的名称):

cd /var/lib/jenkins/workspace/ids
sh start.sh start all

在这里插入图片描述
4、构建项目
返回首页,点击项目名称。
在这里插入图片描述
点击build now。
在这里插入图片描述
点击左下角构建进程数字后,选择控制台输出。
在这里插入图片描述
我的报错了,通过查看error信息,找不到repository目录。查看repository目录权限

chmod -R 775 /usr/local/apache-maven-3.8.6/repository

在这里插入图片描述
使用chmod指令修改为所有权限

chmod -R 777 /usr/local/apache-maven-3.8.6/repository

在这里插入图片描述
再次回到项目页面,点击build now并查看控制台输出,成功。
在这里插入图片描述
**

十四、前端基于jenkins和nginx的自动化部署

**
1、全局配置
在首页选择Manage Jenkins,点击Global Tool Configuration,拉到最下面,找到NodeJS,点击新增NodeJS。
在这里插入图片描述
填写名称nodejs,安装目录为nodejs的解压路径,点击保存。
在这里插入图片描述
2、新建工程ids_client
在首页点击新建Item,输入项目名称,选择第一个Freestyle project,点击确定。
在这里插入图片描述
3、项目配置
General页面可以添加项目描述,勾选Discard old builds,如下图所示。
在这里插入图片描述
源码管理页面选择Subversion,填入项目的svn地址https://192.168.1.231/svn/IDS/code/clinet,选择凭据,check-out strategy选择如图所示最后一项。
在这里插入图片描述
在这里插入图片描述
构建触发器页面选择最后一项Poll SCM,输入* * * * *,表示一分钟轮询一次。
在这里插入图片描述

构建环境页面勾选Provide Node & npm bin/ folder to PATH
在这里插入图片描述
构建页面点击增加构建步骤,选择Execute shell,输入脚本后点击保存。

cd /var/lib/jenkins/workspace/ids_client
npm install --registry=https://registry.npm.taobao.org
rm -rf ./dist/*
npm run build
#删除上一次构建文件
rm -rf /usr/local/nginx/jenkins/ids/*
cp -rf ./dist/* /usr/local/nginx/jenkins/ids

在这里插入图片描述
脚本中声明的dist文件夹最后放置路径为/usr/local/nginx目录下的jenkins目录的ids文件夹,这是我自己定义的,主机中并无此目录,所以需要创建一下。

cd /usr/local/nginx

在这里插入图片描述
先创建jenkins目录

mkdir jenkins

再创建ids文件夹,并赋予权限

cd jenkins
mkdir ids
chmod 777 ids

图片的mkdir project写错了,应为mkdir ids
在这里插入图片描述
4、修改nginx配置

vim /usr/local/nginx/conf/nginx.conf

文件一开始中的worker_processes后的数字根据建了几个前端项目(本次部署包括ids和三个仿真系统,所以改为4)。
在这里插入图片描述
server中修改内容如下图,将root配置修改为刚才声明的dist文件路径,因为是前后端分离,所以要通过location /来进行跨域配置。
每个系统配置一个server,所以代码中有4个server。其中第一个server中有多个location,是因为ids系统要开启多个服务。


#user  nobody;
worker_processes  7;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    
    #配置服务器网关端口集群
    upstream gatewayServer {
        server 127.0.0.1:8808 weight=1;
        server 127.0.0.1:8809 weight=1;
    }

    upstream nacos-cluster {
        server 192.168.1.58:8848;
        server 192.168.1.72:8848;
    }

    server {
        listen       80;
        server_name  127.0.0.1;


        #charset koi8-r;

        #access_log  log

        location / {
             root   /usr/local/nginx/jenkins/ids;
             index  index.html index.htm;
        }

        location /ids/ {
             proxy_set_header Host $http_host;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_set_header REMOTE-HOST $remote_addr;
             proxy_pass http://gatewayServer/;
        }
        
        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

    server {
        listen       8849;
        server_name  192.168.1.58;

        location /nacos {
             proxy_pass http://nacos-cluster;
        }
    }

    server {
        listen       8090;
        server_name  192.168.1.58;
        root   /usr/local/nginx/jenkins/aiops-sim;
        index  index.html index.htm;
    
        location /aiops {
             rewrite ^/aiops/(.*)$ /$1 break;
             proxy_pass http://192.168.1.58:9011;
        }
    }

    server {
        listen       8091;
        server_name  192.168.1.58;
        root   /usr/local/nginx/jenkins/omc-sim;
        index  index.html index.htm;
            
        location /omc {
             rewrite ^/omc/(.*)$ /$1 break;
             proxy_pass http://192.168.1.58:9012;
        }
    }

    server {
        listen       8092;
        server_name  192.168.1.58;
        root   /usr/local/nginx/jenkins/aistation-sim;
        index  index.html index.htm;
            
        location /aistation {
             rewrite ^/aistation/(.*)$ /$1 break;
             proxy_pass http://192.168.1.58:9013;
        }
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

#user  nobody;
worker_processes  5;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    
    #配置服务器网关端口集群
    upstream gatewayServer {
        server 127.0.0.1:8808 weight=1;
        server 127.0.0.1:8809 weight=1;
    }

    server {
        listen       80;
        server_name  127.0.0.1;

        #charset koi8-r;

        #access_log  log

        location / {
             root   /usr/local/nginx/jenkins/ids;
             index  index.html index.htm;
        }

        location /ids/ {
             proxy_set_header Host $http_host;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_set_header REMOTE-HOST $remote_addr;
             proxy_pass http://gatewayServer/;
        }
        
        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

    server {
        listen       8090;
        server_name  192.168.1.58;
        root   /usr/local/nginx/jenkins/aiops-sim;
        index  index.html index.htm;
    
        location /aiops {
             rewrite ^/aiops/(.*)$ /$1 break;
             proxy_pass http://192.168.1.58:9011;
        }
    }

    server {
        listen       8091;
        server_name  192.168.1.58;
        root   /usr/local/nginx/jenkins/omc-sim;
        index  index.html index.htm;
            
        location /omc {
             rewrite ^/omc/(.*)$ /$1 break;
             proxy_pass http://192.168.1.58:9012;
        }
    }

    server {
        listen       8092;
        server_name  192.168.1.58;
        root   /usr/local/nginx/jenkins/aistation-sim;
        index  index.html index.htm;
            
        location /aistation {
             rewrite ^/aistation/(.*)$ /$1 break;
             proxy_pass http://192.168.1.58:9013;
        }
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}
#user  nobody;
worker_processes  4;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       8089;
        server_name  192.168.1.72;
        root   /usr/local/nginx/jenkins/ids;
        index  index.html index.htm;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location /intelligent {
            rewrite ^/intelligent/(.*)$ /$1 break;
            proxy_pass http://192.168.1.72:9007;
        }
        
        location /testlogin {
            rewrite ^/testlogin/(.*)$ /$1 break;
            proxy_pass http://192.168.1.72:8802;
        }
        
        location /aiops {
            rewrite ^/aiops/(.*)$ /$1 break;
            proxy_pass http://192.168.1.72:9007;
        }
        
        location /ats {
            rewrite ^/ats/(.*)$ /$1 break;
            proxy_pass http://192.168.1.72:9002;
        }

        location /omc {
            rewrite ^/omc/(.*)$ /$1 break;
            proxy_pass http://192.168.1.72:9003;
        }
        
        location /parameter {
            rewrite ^/parameter/(.*)$ /$1 break;
            proxy_pass http://192.168.1.72:9007;
        }
        
        location /web {
            rewrite ^/web/(.*)$ /$1 break;
            proxy_pass http://192.168.1.72:9007;
        }

        location /aistation {
            rewrite ^/aistation/(.*)$ /$1 break;
            proxy_pass http://192.168.1.72:9010;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

    server {
        listen       8090;
        server_name  192.168.1.72;
        root   /usr/local/nginx/jenkins/aiops-sim;
        index  index.html index.htm;
    
        location /aiops {
             rewrite ^/aiops/(.*)$ /$1 break;
             proxy_pass http://192.168.1.72:9011;
        }
    }

    server {
        listen       8091;
        server_name  192.168.1.72;
        root   /usr/local/nginx/jenkins/omc-sim;
        index  index.html index.htm;
            
        location /omc {
             rewrite ^/omc/(.*)$ /$1 break;
             proxy_pass http://192.168.1.72:9012;
        }
    }

    server {
        listen       8092;
        server_name  192.168.1.72;
        root   /usr/local/nginx/jenkins/aistation-sim;
        index  index.html index.htm;
            
        location /aistation {
             rewrite ^/aistation/(.*)$ /$1 break;
             proxy_pass http://192.168.1.72:9013;
        }
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

刷新配置,启动nginx

cd /usr/local/nginx/sbin
./nginx -s reload

5、访问页面
地址为:localhost
在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐