redhat系统下使用jenkins+docker-compose+svn+nacos部署springcloud项目超详细教程(适合小白)


前言

本人小白一枚,第一次摸索部署项目。本文从电脑重装redhat系统开始,在系统中安装了所需环境(并非通过docker方式配置环境),通过jenkins+docker-compose+svn的方式部署springcloud项目,包含超详细的图文教程,适合和我一样的新手部署。


一、设置网络连接

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

二、Centos的yum源替换原yum源

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

在这里提供两种方式,一种是在终端执行指令,一种是直接执行脚本(推荐),两种方法大体一样。

1.终端执行指令的方式

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

在这里插入图片描述

2.执行脚本的方式(推荐)

编写脚本可以在win10上用记事本创建后上传到redhat机器上,也可以直接在redhat上通过vim xxx.sh方式创建。
1.创建脚本
编写脚本起名,我起名为yum.sh,注意脚本保存格式为UTF-8
在这里插入图片描述
脚本具体内容如下:

#!/bin/bash

#获取资源,某些资源可能因为版本升级不存在,请自行更新地址(在http://mirrors.163.com/centos/7/os/x86_64/Packages/搜索)
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/rpm-4.11.3-45.el7.x86_64.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/python-urlgrabber-3.10-10.el7.noarch.rpm

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-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

#卸载系统原有的yum源
rpm -qa|grep yum
rpm -qa|grep yum|xargs rpm -e --nodeps

#安装下载的yum源
rpm -ivh --force *.rpm
cd /etc/yum.repos.d/

#配置源
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
sed -i "s/\$releasever/7/g" /etc/yum.repos.d/CentOS7-Base-163.repo

#清除缓存
yum clean all
yum makecache

#更新系统
yum update

2.脚本上传至redhat机器
我在win10上通过记事本创建脚本后,通过xftp工具连接redhat机器,将脚本上传到任意目录下,xftp软件的安装和上传教程可以百度一下非常方便简单。
3.执行脚本
(1)进入脚本所在目录

cd /xx/xx

(2)赋予权限

chmod +x ./yum.sh

(3)执行脚本

sudo ./yum.sh

(4)使用yum安装软件包测试

#若安装成功,则替换yum源成功
yum -y install vim

三、配置java环境

安装java也可以通过指令和脚本安装两种方式,这两种我安装的版本不太一样,但没任何影响,同样推荐脚本安装。

1.终端执行指令的方式

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等命令可以查看环境变量
在这里插入图片描述

2.执行脚本的方式

编写脚本可以在win10上用记事本创建后上传到redhat机器上,也可以直接在redhat上通过vim xxx.sh方式创建。
1.创建脚本
编写脚本起名,我起名为jdk.sh,注意脚本保存格式为UTF-8
在这里插入图片描述
具体内容如下:

#!/bin/bash

yum remove java

if [ ! -d /home/tools/ ];then
mkdir -p /home/tools
else
rm -rf /home/tools && mkdir -p /home/tools
fi

cd /home/tools && wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm
if [ $? -eq 0 ];then
rpm -ivh jdk-8u131-linux-x64.rpm
else
exit 1
fi

##Edit Jdk Env
echo "JAVA_HOME=/usr/java/jdk1.8.0_131
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH
">> /etc/profile

2.脚本上传至redhat机器
我在win10上通过记事本创建脚本后,通过xftp工具连接redhat机器,将脚本上传到任意目录下,xftp软件的安装和上传教程可以百度一下非常方便简单。
3.执行脚本
(1)进入脚本所在目录

cd /xx/xx

(2)赋予权限

chmod +x ./jdk.sh

(3)执行脚本

sudo ./jdk.sh

(4)测试是否成功

source /etc/profile
echo $JAVA_HOME
#如果有输出如下内容,就完事儿了
#/usr/java/jdk1.8.0_131

四、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.x.x' identified by 'password' with grant option;

注意把ip地址和password改成自己的。
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
进入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安装

因为我的项目里用到了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

七、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、将启动脚本复制到/usr/bin目录下

cp /usr/local/bin/docker-compose /usr/bin

4、测试安装结果

docker-compose --version

在这里插入图片描述

九、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

在文件最后末尾添加格式为:帐号 = rw
在这里插入图片描述

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+docker-compose的自动部署

1.jenkins环境配置

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

在这里插入图片描述

到这里jenkins的准备环境就做好了,接下来进行springcloud项目中关于docker-compose配置。

2.springcloud关于docker的配置

1、创建目录
我的项目中有多个微服务模块,在项目根目录下新建一个docker目录,并在docker目录下根据要启动的微服务设置多个文件夹,用来放置dockfile文件和maven生成的jar包。如下图所示,项目目录像这样。
在这里插入图片描述
2、创建脚本文件
先在docker目录下创建一个复制jar包的脚本copy.sh。因为通过maven打包后,生成的jar包在每个微服务的target目录下,需要统一复制到docker目录相应的微服务文件夹下的jar目录里,这样方便之后dockfile文件的执行。
copy.sh内容格式如下
在这里插入图片描述
3.dockfile文件配置
每个dockfile配置格式一样,其中挂载目录名称/home/xx自己命名一下,将docker目录下所有微服务的dockerfile文件按此格式补充完整。
在这里插入图片描述
4.docker-compose相关配置
在docker目录下创建docker-compose.yml配置文件和docker_compose.sh启动脚本,最终目录如下图。
在这里插入图片描述
docker-compose.yml文件可以编排微服务的启动顺序、端口、方式等很多内容。
在这里插入图片描述
docker_compose.sh脚本内容如下,大致步骤为先根据多个微服务循环构建docker镜像,循环结束后进行docker-compose启动所有镜像。

#!/bin/bash

services=(xx1 xx2 xx3 xx4)
service_names=(ai-cloud-xx1 ai-cloud-xx2 ai-cloud-xx3 ai-cloud-xx4)
service_prots=(xxx1 xxx2 xxx3 xxx4)
# dockerfile路径
DOCKER_PATH='/docker'
start() {
  local service=
  local service_name=
  local command="$1"
  local okCount=0
  local service_prot=0
  for((i=0;i<${#services[@]};i++))
  do
    service=${services[$i]}
    service_name=${service_names[$i]}
    service_prot=${service_prots[$i]}
    if [ "$command" == "all" ] || [ "$command" == "$service" ];then
      #查看容器id
      CID=$(docker ps | grep "$service_name" | awk '{print $1}')
      echo "CID $CID"
      if [ -n "$CID" ]
      then
          echo "exist $service_name container,CID=$CID"
          #停止
          docker stop $service_name
          #删除容器
          docker rm $CID
      else
          echo "no exist $service_name container"
      fi
      #查看镜像id
      IID=$(docker images | grep "$service_name" | awk '{print $3}')
      echo "IID $IID"
      if [ -n "$IID" ]
      then
          echo "exist $service_name image,IID=$IID"
          #删除镜像
          docker rmi -f $service_name
          echo "delete $service_name image"
          #构建
          docker build -t $service_name -f ./$DOCKER_PATH/$service_name/dockerfile .
          echo "build $service_name image"
      else
          echo "no exist $service_name image,build docker"
          #构建
          docker build -t $service_name -f ./$DOCKER_PATH/$service_name/dockerfile .
          echo "build $service_name image"
      fi

      #启动
      #docker run -d --name $service_name --net=host -p $service_prot:$service_prot $service_name
      #查看启动日志
      #docker logs -f  $service_name
    fi
  done
  #启动
  echo "开始启动镜像"
  #必须先进入docker-compose.yml的目录下,否则启动镜像报错找不到文件
  cd docker
  docker-compose up -d ai-cloud-xx1 ai-cloud-xx2 ai-cloud-xx3 ai-cloud-xx4
}

case "$1" in
  start)
    start "$2"
  ;;
  stop)
    stop "$2"
  ;;
  restart)
    stop "$2"
    sleep 3s
    start "$2"
  ;;
  *)
    echo "第一个参数请输入:start|stop|restart"
    exit 1
  ;;
esac

到此,项目设置完成,接下来在jenkins中进行项目构建。

3.jenkins项目构建

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默认的安装路径,xxx为新建项目时自己起的名称):

cd /var/lib/jenkins/workspace/xxx
sh docker/copy.sh
sh docker/docker_compose.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并查看控制台输出,成功。
在这里插入图片描述

4.查看nacos注册结果

登录nacos后点击服务管理,查看服务列表,可以看到服务都正常注册运行了。
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值