一、代码管理
一、Maven部署
1、安装maven
[root@jumpserver ~]# ssh -p2222 operation@192.168.1.252
operation@192.168.1.252's password:
Opt> p #输入p
ID | 主机名 | IP | 平台 | 组织 | 备注
------+------------------------------------------+---------------+----------+----------+---------
1 | harbor | 192.168.1.30 | Linux | Default |
2 | nacos | 192.168.1.13 | Linux | Default |
3 | rocketmq | 192.168.1.14 | Linux | Default |
4 | test | 192.168.1.101 | Linux | Default |
页码:1,每页行数:21,总页数:1,总数量:4
提示:输入资产ID直接登录,二级搜索使用 // + 字段,如://192 上一页:b 下一页:n
搜索:
[Host]> 4 #进入test主机
[op@test ~]$ sudo -s
拷贝软件到test主机
[root@jumpserver ~]# scp /root/package/node-v16.13.0-linux-x64.tar.gz /root/package/apache-maven-3.6.3-bin.tar.gz /root/package/jenkins* /root/package/repository.tar.gz 192.168.1.101:/root/
#安装Maven
[root@test op]# cd /root/
[root@test ~]# tar -xf apache-maven-3.6.3-bin.tar.gz
[root@test ~]# mv apache-maven-3.6.3 /usr/local/maven
#设置Maven环境变量
#安装JDK11环境并配置RocketMQ环境变量
[root@test op]# yum -y install java-11-openjdk-devel
[root@test op]# ln -s /usr/lib/jvm/java-11-openjdk-11.0.19.0.7-4.el8.x86_64/ /usr/lib/jvm/jdk11 #创建JDK环境软链接
[root@test op]# vim /etc/bashrc #文件末尾添加
...
export JDK11_HOME="/usr/lib/jvm/jdk11"
export MAVEN_HOME="/usr/local/maven"
export PATH=${JDK11_HOME}/bin/:${MAVEN_HOME}/bin/:$PATH
[root@test op]# source /etc/bashrc
#测试Maven
[root@test ~]# mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/maven
Java version: 1.8.0_372, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-4.el8.x86_64/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "4.18.0-372.26.1.el8_6.x86_64", arch: "amd64", family: "unix"
#配置Maven本地仓库
[root@test op]# vim /usr/local/maven/conf/settings.xml
55 <localRepository>/usr/local/maven/repository/</localRepository>
#由于使用了公司内部nexus,所以直接解压/root/repository.tar.gz,把里面的内容放到/usr/local/maven/即可
[root@test op]# tar -xf /root/repository.tar.gz -C /usr/local/maven/
2、代码准备
geitest主机绑定公网IP,拉取代码(由于之前可以已经购买公网ip,绑定多次,此次不再重复截图)
拉取代码
[root@test op]# cd /root/
[root@test ~]# yum -y install git
[root@test ~]# git clone https://gitee.com/cc-0001/tea
[root@test ~]# ls tea/code/backend/
tarena-passport #验证码
tarena-tp-attach #附件中心
tarena-tp-tea #商品服务
[root@test ~]# ls tea/code/page/
backend-page #商品管理后台
front-page #商品前台页面
1、商品服务组件
#编写配置文件
[root@test ~]# cd /root/tea/code/backend/tarena-tp-tea/
[root@test tarena-tp-tea]# vim tea-server/tea-server-main/src/main/resources/application-vm.yaml
spring:
# 数据源配置
datasource:
url: jdbc:mysql://192.168.1.12:3306/tarena_tp_tea?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&allowPublicKeyRetrieval=true
username: teauser
password: Taren123
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
minimum-idle: 1
auto-commit: true
idle-timeout: 600000
minimum: 5
max-lifetime: 1800000
#数据库连接超时时间,默认30秒,即30000
connection-timeout: 120000
connection-test-query: SELECT 1 FROM DUAL
redis:
host: 192.168.1.147 #此地址写自己redis的负载均衡地址
port: 6379
password: "Taren123"
database: 8
jedis:
pool:
max-active: 8
min-idle: 5
max-idle: 8
max-wait: PT15M
time-between-eviction-runs: PT15M
rocketmq:
name-server: 192.168.1.14:9876
producer:
group: ${spring.application.name}
mq:
auto-close-delay-level: 15
group:
auto-close: order-auto-close-group
success-paid: success-paid-group
topic:
pay-success-paid-topic: pay-success-paid
order-cancel-topic: order-cancel-topic
auto-close-topic: order-auto-close-topic
order-success-paid-topic: order-success-paid-topic
pay:
publicFilePath: '/usr/local/project/tea/publicKey.txt'
redirectPath: 'https://dev-cs-pay-center.tctm.life/payCenter/queryOrderInfo'
#url相关
image_path: /home/images/project/tea_attach/
url: http://122.9.48.80:30080/tea_attach/ #写自己华为云负载均衡ELB的IP
jwt:
rsa:
enabled: true
private-key: |
-----BEGIN PRIVATE KEY-----
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANAn5giVT7oy/drc
o0evOFJUYSnHLbYtXG4MUuEUM2QdGX9d1q3y5k9orwX3wrt4WP4gIkQdB0EzQApp
WZMUbbVsibVWkVSTQ5aInPgjLjfaDlcP5U4Z1hh3QiPZ01i3AWYY8HS+2SBIlRLH
S5X0MjZkdbOVEPODU73JNSjFKz4XAgMBAAECgYBwXblt1LxPNYuYBBcYcVwkBWzW
ErF4cJA+z+RFoJQFbTgAa3WiPUdagpZI0HCMpvDTbiFRR6JM7g+aDzjNju+RUCW9
0iaDrB5vKyh3INMzcdCfm4btGectxb/ZCYFkXPBvqtqzK/H9ANk/Xlq1KFw0O2x2
fgV7swYuiZ3kSYLbEQJBAPx2gXPkpraqEPmt//ce7AP5fHxC8Td2JFROsRfyweJP
0dUdiLDgMxwpFZIhidU1sJBWX62Vqv6Jh/MvoMBhttsCQQDTEnqy9P+VAS1huYkl
XwWjbZKxHEIaxW+Bg/ombXLhGudpy+chHFy4QEgA1Puda7kxgcTMhRj1i1EliytB
ecR1AkEA9STJPNS4wURQKXG4y6f9+zoFk8+Y1IbmberfcWaqt2tUUEFWWpHJbz3B
kVz5rstsgCsuyqo7GOBI323PBR+c4wJBAJxA3dyFSn+AM5xYwZKM2Zu2jhXXGYjA
CGAU16aC97x1MkM704rLeEheLe+PvAU5rgtcSdgt3+BGlnf4orkB79ECQE2uNOTP
enyfRVLgN0j3ZLSyOSqw+kqGsoU2jpcxFCGy0RGk3z1fHVccHfspqCA7AMj9jK5O
3EULSLOmkXQHPLQ=
-----END PRIVATE KEY-----
expiration: 1000000
public-key: |
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQJ+YIlU+6Mv3a3KNHrzhSVGEp
xy22LVxuDFLhFDNkHRl/Xdat8uZPaK8F98K7eFj+ICJEHQdBM0AKaVmTFG21bIm1
VpFUk0OWiJz4Iy432g5XD+VOGdYYd0Ij2dNYtwFmGPB0vtkgSJUSx0uV9DI2ZHWz
lRDzg1O9yTUoxSs+FwIDAQAB
-----END PUBLIC KEY-----
gateway:
whitelists:
- /doc.html
- /register/**
- /**/*.html"
- /*.html"
- /favicon.ico
- /**/*.html
- /**/*.css
- /**/*.js
- /swagger-resources/**
- /v2/api-docs/**
- /sso/valid/code
- /*.js
- /**.html
- /user/login
- /menu/**/**
- /content/**/**
- /images/**
#打包测试;-D'maven.test.skip'=true:构建项目时跳过运行测试。通过设置为true,可以忽略测试环节,直接进行打包
[root@tea tarena-tp-tea]# mvn clean package -Dmaven.test.skip=true
...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for tp-tea 1.0.0-SNAPSHOT:
[INFO]
[INFO] tp-tea ............................................. SUCCESS [ 27.827 s]
[INFO] tea-common ......................................... SUCCESS [ 13.587 s]
[INFO] tea-po ............................................. SUCCESS [ 0.943 s]
[INFO] tea-server ......................................... SUCCESS [ 0.045 s]
[INFO] tea-server-protocol ................................ SUCCESS [ 23.567 s]
[INFO] tea-server-dao-api ................................. SUCCESS [ 24.172 s]
[INFO] tea-server-domain .................................. SUCCESS [ 17.005 s]
[INFO] tea-server-dao-impl ................................ SUCCESS [ 0.038 s]
[INFO] tea-server-infrastructure .......................... SUCCESS [ 0.448 s]
[INFO] tea-web-adapter .................................... SUCCESS [ 5.663 s]
[INFO] tea-server-admin ................................... SUCCESS [ 43.449 s]
[INFO] tea-admin .......................................... SUCCESS [ 0.015 s]
[INFO] tea-admin-protocol ................................. SUCCESS [ 0.565 s]
[INFO] tea-admin-dao-api .................................. SUCCESS [ 0.236 s]
[INFO] tea-admin-domain ................................... SUCCESS [ 0.944 s]
[INFO] tea-admin-dao-impl ................................. SUCCESS [ 0.042 s]
[INFO] tea-admin-infrastructure ........................... SUCCESS [ 0.513 s]
[INFO] tea-admin-adapter .................................. SUCCESS [ 0.626 s]
[INFO] tea-admin-main ..................................... SUCCESS [ 3.421 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:44 min
[INFO] Finished at: 2023-04-16T02:04:22+08:00
[INFO] ------------------------------------------------------------------------
#查看结果并启动jar测试
#-Dfile.encoding=utf-8 是设置Java虚拟机的文件编码为UTF-8,
#-Xmx128M -Xms128M -Xmn64m -XX:MaxMetaspaceSize=128M -XX:MetaspaceSize=128M:配置Java虚拟机的内存分配和垃圾回收相关设置的
[root@test tarena-tp-tea]# ls tea-server/tea-server-main/target/tea-server-admin-1.0.0-SNAPSHOT.jar
[root@test tarena-tp-tea]# java -Dfile.encoding=utf-8 -jar tea-server/tea-server-main/target/tea-server-admin-1.0.0-SNAPSHOT.jar -Xmx128M -Xms128M -Xmn64m -XX:MaxMetaspaceSize=128M -XX:MetaspaceSize=128M --server.port=30091 --spring.profiles.active=vm
另外开一个端口查看结果
[root@test ~]# ss -antlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1204,fd=5))
LISTEN 0 100 *:30091 *:* users:(("java",pid=2351,fd=215))
[root@test ~]# jps
2512 Jps
1138 WrapperSimpleApp
2351 tea-server-admin-1.0.0-SNAPSHOT.jar
2、商品管理组件
#编写配置文件
[root@test tarena-tp-tea]# vim tea-admin/tea-admin-main/src/main/resources/application-vm.yaml
spring:
# 数据源配置
datasource:
url: jdbc:mysql://192.168.1.12:3306/tarena_tp_tea?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&allowPublicKeyRetrieval=true
username: teauser
password: Taren123
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
minimum-idle: 1
auto-commit: true
idle-timeout: 600000
minimum: 5
max-lifetime: 1800000
#数据库连接超时时间,默认30秒,即30000
connection-timeout: 120000
connection-test-query: SELECT 1 FROM DUAL
redis:
host: 192.168.1.147 #写自已redis负载均衡的地址
port: 6379
password: "Taren123"
database: 8
jedis:
pool:
max-active: 8
min-idle: 5
max-idle: 8
max-wait: PT15M
time-between-eviction-runs: PT15M
#图片路径配置
image_path: /home/images/vm/tea_attach/
url: http://122.9.48.80:30080/tea_attach/
rocketmq:
name-server: 192.168.1.14:9876
producer:
group: ${spring.application.name}
mq:
topic:
order-cancel-topic: order-cancel-topic
business-mq:
topic:
stock-rollback: 'order-cancel-topic'
group:
rollback-listener-group: 'stock-rollback-listener-group'
jwt:
rsa:
enabled: true
private-key: |
-----BEGIN PRIVATE KEY-----
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANAn5giVT7oy/drc
o0evOFJUYSnHLbYtXG4MUuEUM2QdGX9d1q3y5k9orwX3wrt4WP4gIkQdB0EzQApp
WZMUbbVsibVWkVSTQ5aInPgjLjfaDlcP5U4Z1hh3QiPZ01i3AWYY8HS+2SBIlRLH
S5X0MjZkdbOVEPODU73JNSjFKz4XAgMBAAECgYBwXblt1LxPNYuYBBcYcVwkBWzW
ErF4cJA+z+RFoJQFbTgAa3WiPUdagpZI0HCMpvDTbiFRR6JM7g+aDzjNju+RUCW9
0iaDrB5vKyh3INMzcdCfm4btGectxb/ZCYFkXPBvqtqzK/H9ANk/Xlq1KFw0O2x2
fgV7swYuiZ3kSYLbEQJBAPx2gXPkpraqEPmt//ce7AP5fHxC8Td2JFROsRfyweJP
0dUdiLDgMxwpFZIhidU1sJBWX62Vqv6Jh/MvoMBhttsCQQDTEnqy9P+VAS1huYkl
XwWjbZKxHEIaxW+Bg/ombXLhGudpy+chHFy4QEgA1Puda7kxgcTMhRj1i1EliytB
ecR1AkEA9STJPNS4wURQKXG4y6f9+zoFk8+Y1IbmberfcWaqt2tUUEFWWpHJbz3B
kVz5rstsgCsuyqo7GOBI323PBR+c4wJBAJxA3dyFSn+AM5xYwZKM2Zu2jhXXGYjA
CGAU16aC97x1MkM704rLeEheLe+PvAU5rgtcSdgt3+BGlnf4orkB79ECQE2uNOTP
enyfRVLgN0j3ZLSyOSqw+kqGsoU2jpcxFCGy0RGk3z1fHVccHfspqCA7AMj9jK5O
3EULSLOmkXQHPLQ=
-----END PRIVATE KEY-----
expiration: 1000000
public-key: |
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQJ+YIlU+6Mv3a3KNHrzhSVGEp
xy22LVxuDFLhFDNkHRl/Xdat8uZPaK8F98K7eFj+ICJEHQdBM0AKaVmTFG21bIm1
VpFUk0OWiJz4Iy432g5XD+VOGdYYd0Ij2dNYtwFmGPB0vtkgSJUSx0uV9DI2ZHWz
lRDzg1O9yTUoxSs+FwIDAQAB
-----END PUBLIC KEY-----
gateway:
whitelists:
- /doc.html
- /register/**
- /**/*.html"
- /*.html"
- /favicon.ico
- /**/*.html
- /**/*.css
- /**/*.js
- /swagger-resources/**
- /v2/api-docs/**
- /sso/valid/code
- /*.js
- /**.html
- /user/login
- /menu/**/**
- /content/**/**
- /*.jpg
- /*.jpeg
- /*.png
- /images/**
#打包测试
[root@test tarena-tp-tea]# mvn clean #清理测试文件
[root@test tarena-tp-tea]# mvn clean package -D'maven.test.skip'=true
...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for tp-tea 1.0.0-SNAPSHOT:
[INFO]
[INFO] tp-tea ............................................. SUCCESS [ 0.081 s]
[INFO] tea-common ......................................... SUCCESS [ 0.004 s]
[INFO] tea-po ............................................. SUCCESS [ 0.003 s]
[INFO] tea-server ......................................... SUCCESS [ 0.003 s]
[INFO] tea-server-protocol ................................ SUCCESS [ 0.003 s]
[INFO] tea-server-dao-api ................................. SUCCESS [ 0.004 s]
[INFO] tea-server-domain .................................. SUCCESS [ 0.005 s]
[INFO] tea-server-dao-impl ................................ SUCCESS [ 0.004 s]
[INFO] tea-server-infrastructure .......................... SUCCESS [ 0.003 s]
[INFO] tea-web-adapter .................................... SUCCESS [ 0.007 s]
[INFO] tea-server-admin ................................... SUCCESS [ 0.015 s]
[INFO] tea-admin .......................................... SUCCESS [ 0.004 s]
[INFO] tea-admin-protocol ................................. SUCCESS [ 0.002 s]
[INFO] tea-admin-dao-api .................................. SUCCESS [ 0.006 s]
[INFO] tea-admin-domain ................................... SUCCESS [ 0.006 s]
[INFO] tea-admin-dao-impl ................................. SUCCESS [ 0.004 s]
[INFO] tea-admin-infrastructure ........................... SUCCESS [ 0.003 s]
[INFO] tea-admin-adapter .................................. SUCCESS [ 0.009 s]
[INFO] tea-admin-main ..................................... SUCCESS [ 0.007 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.065 s
[INFO] Finished at: 2023-04-16T02:11:35+08:00
[INFO] ------------------------------------------------------------------------
查看结果并启动jar测试
[root@test tarena-tp-tea]# ls tea-admin/tea-admin-main/target/tea-admin-main-1.0.0-SNAPSHOT.jar
[root@test tarena-tp-tea]# java -Dfile.encoding=utf-8 -jar tea-admin/tea-admin-main/target/tea-admin-main-1.0.0-SNAPSHOT.jar -Xmx128M -Xms128M -Xmn64m -XX:MaxMetaspaceSize=128M -XX:MetaspaceSize=128M --server.port=30092 --spring.profiles.active=vm
另外开一个终端查看结果
[root@test ~]# jps
2961 tea-admin-main-1.0.0-SNAPSHOT.jar
1138 WrapperSimpleApp
3012 Jps
[root@test ~]# ss -antlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1204,fd=5))
LISTEN 0 100 *:30092 *:* users:(("java",pid=2961,fd=43))
#清理测试文件
[root@test tarena-tp-attach]# mvn clean
3、附件中心服务组件
#编写配置文件
[root@test tarena-tp-tea]# cd /root/tea/code/backend/tarena-tp-attach/
[root@test tarena-tp-attach]# vim attach-server/attach-server-main/src/main/resources/bootstrap.yaml
...
---
spring:
profiles: vm
cloud:
nacos:
server-addr: 192.168.1.13:8848
discovery:
enabled: true
register-enabled: true
server-addr: 127.0.0.1:8848
namespace: 5a34018d-0a70-42f5-b1b9-ebbf9565db54 #nacos的命名空间(project)uuid
[root@test tarena-tp-attach]# vim attach-server/attach-server-main/src/main/resources/application-vm.yaml
spring:
#文件大小配置
http:
multipart:
enabled: true
max-file-size: 30MB
max-request-size: 300MB
# 数据源配置
datasource:
url: jdbc:mysql://192.168.1.12:3306/tarena_tp_tea?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&allowPublicKeyRetrieval=true
username: teauser
password: Taren123
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
minimum-idle: 1
auto-commit: true
idle-timeout: 600000
minimum: 5
max-lifetime: 1800000
#数据库连接超时时间,默认30秒,即30000
connection-timeout: 120000
connection-test-query: SELECT 1 FROM DUAL
#url相关
image_path: /home/images/vm/tea_attach/
url: http://122.9.48.80:30080/tea_attach/
dubbo:
address: nacos://192.168.1.13:8848
namespace: 5a34018d-0a70-42f5-b1b9-ebbf9565db54 #nacos的命名空间(project)uuid
#打包测试
[root@test tarena-tp-attach]# mvn clean package -D'maven.test.skip'=true
...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for tp-attach 1.0.0-SNAPSHOT:
[INFO]
[INFO] tp-attach .......................................... SUCCESS [ 0.179 s]
[INFO] attach-common ...................................... SUCCESS [ 2.156 s]
[INFO] attach-po .......................................... SUCCESS [ 0.437 s]
[INFO] attach-server ...................................... SUCCESS [ 0.006 s]
[INFO] attach-server-protocol ............................. SUCCESS [ 0.712 s]
[INFO] attach-server-dao-api .............................. SUCCESS [ 0.763 s]
[INFO] attach-server-dao-impl ............................. SUCCESS [ 0.058 s]
[INFO] attach-server-domain ............................... SUCCESS [ 0.865 s]
[INFO] attach-server-infrastructure ....................... SUCCESS [ 0.402 s]
[INFO] server-client-api .................................. SUCCESS [ 0.295 s]
[INFO] server-web-adapter ................................. SUCCESS [ 0.420 s]
[INFO] attach-server-main ................................. SUCCESS [ 21.315 s]
[INFO] attach-admin ....................................... SUCCESS [ 0.005 s]
[INFO] attach-admin-protocol .............................. SUCCESS [ 0.378 s]
[INFO] attach-admin-dao-api ............................... SUCCESS [ 0.245 s]
[INFO] attach-admin-dao-impl .............................. SUCCESS [ 0.029 s]
[INFO] attach-admin-domain ................................ SUCCESS [ 0.605 s]
[INFO] attach-admin-infrastructure ........................ SUCCESS [ 0.250 s]
[INFO] admin-web-adapter .................................. SUCCESS [ 0.647 s]
[INFO] attach-admin-main .................................. SUCCESS [ 0.526 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 31.074 s
[INFO] Finished at: 2023-04-16T02:27:41+08:00
[INFO] ------------------------------------------------------------------------
查看结果并启动jar测试
[root@test tarena-tp-attach]# ls attach-server/attach-server-main/target/attach-server-main-1.0.0-SNAPSHOT.jar
[root@test tarena-tp-attach]# java -Dfile.encoding=utf-8 -jar attach-server/attach-server-main/target/attach-server-main-1.0.0-SNAPSHOT.jar -Xmx128M -Xms128M -Xmn64m -XX:MaxMetaspaceSize=128M -XX:MetaspaceSize=128M --server.port=30093 --spring.profiles.active=vm
另外开一个终端查看启动结果
[root@test ~]# ss -antlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1204,fd=5))
LISTEN 0 100 *:30093 *:* users:(("java",pid=3547,fd=39))
LISTEN 0 1024 *:20889 *:* users:(("java",pid=3547,fd=75))
LISTEN 0 1024 *:44444 *:* users:(("java",pid=3547,fd=62))
[root@test ~]# jps
1138 WrapperSimpleApp
3622 Jps
3547 attach-server-main-1.0.0-SNAPSHOT.jar
#清理测试文件
[root@test tarena-tp-attach]# mvn clean
4、验证中心组件
#编写配置文件
[root@test tarena-tp-attach]# cd /root/tea/code/backend/tarena-passport/
[root@test tarena-passport]# vim passport-provider/src/main/resources/application-vm.yml
jwt:
rsa:
enabled: true
private-key: |
-----BEGIN PRIVATE KEY-----
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANAn5giVT7oy/drc
o0evOFJUYSnHLbYtXG4MUuEUM2QdGX9d1q3y5k9orwX3wrt4WP4gIkQdB0EzQApp
WZMUbbVsibVWkVSTQ5aInPgjLjfaDlcP5U4Z1hh3QiPZ01i3AWYY8HS+2SBIlRLH
S5X0MjZkdbOVEPODU73JNSjFKz4XAgMBAAECgYBwXblt1LxPNYuYBBcYcVwkBWzW
ErF4cJA+z+RFoJQFbTgAa3WiPUdagpZI0HCMpvDTbiFRR6JM7g+aDzjNju+RUCW9
0iaDrB5vKyh3INMzcdCfm4btGectxb/ZCYFkXPBvqtqzK/H9ANk/Xlq1KFw0O2x2
fgV7swYuiZ3kSYLbEQJBAPx2gXPkpraqEPmt//ce7AP5fHxC8Td2JFROsRfyweJP
0dUdiLDgMxwpFZIhidU1sJBWX62Vqv6Jh/MvoMBhttsCQQDTEnqy9P+VAS1huYkl
XwWjbZKxHEIaxW+Bg/ombXLhGudpy+chHFy4QEgA1Puda7kxgcTMhRj1i1EliytB
ecR1AkEA9STJPNS4wURQKXG4y6f9+zoFk8+Y1IbmberfcWaqt2tUUEFWWpHJbz3B
kVz5rstsgCsuyqo7GOBI323PBR+c4wJBAJxA3dyFSn+AM5xYwZKM2Zu2jhXXGYjA
CGAU16aC97x1MkM704rLeEheLe+PvAU5rgtcSdgt3+BGlnf4orkB79ECQE2uNOTP
enyfRVLgN0j3ZLSyOSqw+kqGsoU2jpcxFCGy0RGk3z1fHVccHfspqCA7AMj9jK5O
3EULSLOmkXQHPLQ=
-----END PRIVATE KEY-----
expiration: 31536000
public-key: |
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQJ+YIlU+6Mv3a3KNHrzhSVGEp
xy22LVxuDFLhFDNkHRl/Xdat8uZPaK8F98K7eFj+ICJEHQdBM0AKaVmTFG21bIm1
VpFUk0OWiJz4Iy432g5XD+VOGdYYd0Ij2dNYtwFmGPB0vtkgSJUSx0uV9DI2ZHWz
lRDzg1O9yTUoxSs+FwIDAQAB
-----END PUBLIC KEY-----
spring:
datasource:
url: jdbc:mysql://192.168.1.12:3306/cs_mall_passport?useSSL=false&useUnicode=true&allowPublicKeyRetrieval=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
username: cs_mall_user
password: Taren123
redis:
host: 192.168.1.147
port: 6379
password: "Taren123"
database: 9
jedis:
pool:
max-active: 8
min-idle: 5
max-idle: 8
max-wait: PT15M
time-between-eviction-runs: PT15M
cloud:
nacos:
discovery:
server-addr: 192.168.1.13:8848
namespace: 5a34018d-0a70-42f5-b1b9-ebbf9565db54
enabled: true
register-enabled: true
application:
name: passport-server
mybatis:
mapper-locations: classpath:mapper/*.xml
logging:
level:
com.tarena.passport: trace
file:
name: logs/passport.log
#打包测试
[root@test tarena-passport]# mvn clean package -D'maven.test.skip'=true
...
[INFO] passport-bom ....................................... SUCCESS [ 0.228 s]
[INFO] passport-protocol .................................. SUCCESS [ 2.154 s]
[INFO] passport-autoconfigure ............................. SUCCESS [03:57 min]
[INFO] passport-common .................................... SUCCESS [ 0.766 s]
[INFO] passport-domain .................................... SUCCESS [ 0.456 s]
[INFO] passport-adaptor ................................... SUCCESS [ 0.520 s]
[INFO] passport-instruction ............................... SUCCESS [ 0.320 s]
[INFO] passport-sdk ....................................... SUCCESS [ 0.372 s]
[INFO] passport-main ...................................... SUCCESS [ 0.262 s]
[INFO] passport-provider .................................. SUCCESS [ 7.911 s]
[INFO] tarena-passport .................................... SUCCESS [ 0.001 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 04:11 min
[INFO] Finished at: 2023-07-10T01:39:06+08:00
[INFO] ------------------------------------------------------------------------
查看结果并启动jar测试
[root@test tarena-passport]# ls passport-provider/target/passport-provider-1.0-SNAPSHOT.jar
[root@test tarena-passport]# java -Dfile.encoding=utf-8 -jar passport-provider/target/passport-provider-1.0-SNAPSHOT.jar -Xmx128M -Xms128M -Xmn64m -XX:MaxMetaspaceSize=128M -XX:MetaspaceSize=128M --server.port=30094 --spring.profiles.active=vm
另外开一个终端查看启动结果
[root@test ~]# ss -antlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1204,fd=5))
LISTEN 0 100 *:30094 *:* users:(("java",pid=4107,fd=28))
[root@test ~]# jps
1138 WrapperSimpleApp
4107 passport-provider-1.0-SNAPSHOT.jar
4157 Jps
#清理测试文件
[root@test tarena-passport]# mvn clean
二、安装jenkins
二、安装jenkins
1、实现自动化部署
[root@test tarena-passport]# cd /root/
[root@test ~]# yum -y install jenkins-2.361.4-1.1.noarch.rpm
[root@test ~]# systemctl enable --now jenkins
[root@test ~]# ss -antlp | grep 8080
LISTEN 0 50 *:8080 *:* users:(("java",pid=48056,fd=9))
2、jenkins初始化
给jenkins直接绑定一个公网IP,浏览器访问test主机的公网ip:公网ip:8080
#获取Jenkins初始密码
[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
197027e9419f4943aae3add096deb4b0
3、登录测试
重新使用用户admin,密码123456登录jenkins
#离线部署Jenkins插件
[root@test ~]# ls /var/lib/jenkins/plugins/ #空目录,没有任何插件
[root@test ~]# tar -xPpf jenkins_plugins.tar.gz -C / #解压jenkins插件,保留文件归属
[root@test ~]# ls -l /var/lib/jenkins/plugins/ #确认该目录下文件归属
[root@test ~]# systemctl restart jenkins.service #重启Jenkins加载插件
[root@test ~]# ss -antpul | grep java
tcp LISTEN 0 50 *:8080 *:* users:(("java",pid=5628,fd=9))
浏览器刷新jenkins页面,可以看到中文,因为离线部署的插件中有中文支持插件
4、对接gitee
需要安装gitee的插件才能去gitee拉取代码
链接名:tea: 学茶网项目部署 ,gitee拉取的项目
域名:https://gitee.com,gitee的地址,获取证书令牌:https://gitee.com/profile/personal_access_tokens,浏览器输入以上地址
1、构建项目
构建一个自由风格的项目,拉取代码
设置参数和源码管理
选择【参数化构建过程】或英文【This project is parameterized】,点击【添加参数】的下拉列表,选择【Git 参数】
定义变量【名称】可以任意,编写变量信息【描述】,根据提示填写【默认值】,选择【Git】,填写git仓库的url路径【Repository URL】
git获取项目地址:https://gitee.com/cc-0001/tea;分支为$webver
1、构建项目
2、测试结果
[root@test ~]# ls /var/lib/jenkins/workspace/tea/ #可以看到结果
code README.md sql teaimg.tar.gz
5、部署测试
1、后端JAR包部署
#使用jenkins对接maven打包项目使用jar包
#创建存放jar包的工作目录
[root@test ~]# mkdir -p /project/jar
#创建存放网站的存储目录
[root@test ~]# mkdir -p /project/page
[root@test ~]# chmod -R 777 /project/
#创建存放图片的存储目录
[root@test ~]# mkdir -p /home/images/vm/tea_attach/
[root@test ~]# chmod -R 777 /home/images/
继续点击增加构建步骤,使用maven打包,并把jar包拷贝到/project/jar目录
maven环境配置
使用maven的配置文件,定义maven私有仓库/usr/local/maven/conf/settings.xml
设置名字:mvn,取消自动安装
替换更改好的code目录到/var/lib/jenkins/workspace/tea/,使用jenkins打包jar包
rm -rf /var/lib/jenkins/workspace/tea/code/
cp -r /root/tea/code/ /var/lib/jenkins/workspace/tea/
6、配置mvn打包jar包
目标:clean package
POM:code/backend/tarena-passport/pom.xml
继续增加2个构建步骤,按照以上步骤继续使用maven打包把除了passport之外的jar也要打包;步骤和打包passport一样,只是pom的路径换成以下:
code/backend/tarena-tp-attach/pom.xml
code/backend/tarena-tp-tea/pom.xml
最后增加构建shell的步骤,拷贝jar到test主机的/project/jar
执行的shell如下所示
cp /var/lib/jenkins/workspace/tea/code/backend/tarena-passport/passport-provider/target/passport-provider-1.0-SNAPSHOT.jar /project/jar/
cp /var/lib/jenkins/workspace/tea/code/backend/tarena-tp-attach/attach-server/attach-server-main/target/attach-server-main-1.0.0-SNAPSHOT.jar /project/jar/
cp /var/lib/jenkins/workspace/tea/code/backend/tarena-tp-tea/tea-admin/tea-admin-main/target/tea-admin-main-1.0.0-SNAPSHOT.jar /project/jar/
cp /var/lib/jenkins/workspace/tea/code/backend/tarena-tp-tea/tea-server/tea-server-main/target/tea-server-admin-1.0.0-SNAPSHOT.jar /project/jar/
指定maven的本地仓库,需要额外定义更改配置文件
[root@test ~]# vim /usr/local/maven/conf/settings.xml
55 <localRepository>/var/lib/jenkins/workspace/tea/.repository/</localRepository>
拷贝仓库文件
[root@test ~]# cp -r /usr/local/maven/repository /var/lib/jenkins/workspace/tea/
[root@test ~]# cd /var/lib/jenkins/workspace/tea/
[root@test tea]# mv repository/ .repository/
更改启动jenkins服务的用户,否则执行拷贝和更改归属关系时没有权限
[root@test ~]# vim /etc/sysconfig/jenkins #更改jenkins的配置文件
31 JENKINS_USER="root" #更改为root,运行jenkins的用户
[root@test ~]# vim /lib/systemd/system/jenkins.service
34 User=root
35 Group=root
[root@test ~]# chown -R root.root /var/lib/jenkins/
[root@test ~]# systemctl daemon-reload
[root@test ~]# systemctl restart jenkins
test主机查看结果,已经有jar包
[root@test tea]# ls /project/jar/
attach-server-main-1.0.0-SNAPSHOT.jar tea-admin-main-1.0.0-SNAPSHOT.jar
passport-provider-1.0-SNAPSHOT.jar tea-server-admin-1.0.0-SNAPSHOT.jar
三、Node部署
一、前后端页面编译打包
1、node安装
1、node初始化
#Node安装
[root@test tea]# cd /root/
[root@test ~]# tar -xf node-v16.13.0-linux-x64.tar.gz
[root@test ~]# mv node-v16.13.0-linux-x64 /usr/local/node
[root@test ~]# ls /usr/local/node
bin CHANGELOG.md include lib LICENSE README.md share
#配置环境变量
[root@test ~]# vim /etc/bashrc
...
99 export JDK8_HOME="/usr/lib/jvm/jdk8"
100 export MAVEN_HOME="/usr/local/maven"
101 export NODE_HOME="/usr/local/node" #新添加
102 export PATH=${JDK8_HOME}/bin/:${MAVEN_HOME}/bin/:${NODE_HOME}/bin/:$PATH #更改
[root@test ~]# source /etc/bashrc
#测试node命令
[root@test ~]# node -v
v16.13.0
[root@test ~]# npm -v
8.1.0
#node初始化配置
[root@test ~]# mkdir /usr/local/node/{node_global,node_cache}
[root@test ~]# npm config set prefix "/usr/local/node/node_global/"
[root@test ~]# npm config set cache "/usr/local/node/node_cache/"
[root@test ~]# npm config set registry https://registry.npm.taobao.org
[root@test ~]# npm config list
; "user" config from /root/.npmrc
cache = "/usr/local/node/node_cache"
prefix = "/usr/local/node/node_global"
registry = "https://registry.npm.taobao.org/"
; node bin location = /usr/local/node/bin/node
; cwd = /root
; HOME = /root
; Run `npm config ls -l` to show all defaults.
[root@test ~]# cat /root/.npmrc
prefix=/usr/local/node/node_global
cache=/usr/local/node/node_cache
registry=https://registry.npm.taobao.org/
2、部署网站页面
1、商品后台管理页面
#测试编译
[root@test ~]# cd /root/tea/code/page/backend-page/
[root@test backend-page]# npm install
[root@test backend-page]# npm run build:test
...
Images and other types of assets omitted.
DONE Build complete. The dist directory is ready to be deployed.
INFO Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html
#拷贝商品的后台管理页面到/project/page/backend-page/
[root@test backend-page]# mkdir /project/page/backend-page
[root@test backend-page]# cp -r dist/ /project/page/backend-page
#清理测试文件
[root@test backend-page]# rm -rf node_modules/ dist/ package-lock.json
[root@test backend-page]# npm cache clean --force
[root@test backend-page]# npm cache verify
Cache verified and compressed (/usr/local/node/node_cache/_cacache)
Content verified: 0 (0 bytes)
Index entries: 0
Finished in 0.005s
2、商品前台页面
#测试编译
[root@test backend-page]# cd /root/tea/code/page/front-page/
[root@test front-page]# npm install
...
added 1902 packages in 1m
[root@test front-page]# npm run build:linuxTech
...
Images and other types of assets omitted.
DONE Build complete. The dist directory is ready to be deployed.
INFO Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html
#拷贝商品的前台管理页面到/project/page/front-page/
[root@test front-page]# mkdir /project/page/front-page
[root@test front-page]# cp -r dist/ /project/page/front-page
#清理测试文件
[root@test front-page]# rm -rf dist/ node_modules/ package-lock.json
[root@test front-page]# npm cache clean --force
npm WARN using --force Recommended protections disabled.
[root@test front-page]# npm cache verify
Cache verified and compressed (/usr/local/node/node_cache/_cacache)
Content verified: 0 (0 bytes)
Index entries: 0
Finished in 0.004s
3、图片站点部署,存放网站图片
#测试编译
[root@test backend-page]# cd /root/tea/code/page/front-page/
[root@test front-page]# npm install
...
added 1902 packages in 1m
[root@test front-page]# npm run build:linuxTech
...
Images and other types of assets omitted.
DONE Build complete. The dist directory is ready to be deployed.
INFO Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html
#拷贝商品的前台管理页面到/project/page/front-page/
[root@test front-page]# mkdir /project/page/front-page
[root@test front-page]# cp -r dist/ /project/page/front-page
#清理测试文件
[root@test front-page]# rm -rf dist/ node_modules/ package-lock.json
[root@test front-page]# npm cache clean --force
npm WARN using --force Recommended protections disabled.
[root@test front-page]# npm cache verify
Cache verified and compressed (/usr/local/node/node_cache/_cacache)
Content verified: 0 (0 bytes)
Index entries: 0
Finished in 0.004s