一、安装harbor
一、安装部署
1、部署harbor
#安装部署
[root@jumpserver ~]# ssh -p2222 operation@192.168.1.252
operation@192.168.1.252's password:
运维人员, JumpServer 开源堡垒机
1) 输入 部分IP,主机名,备注 进行搜索登录(如果唯一).
2) 输入 / + IP,主机名,备注 进行搜索,如:/192.168.
3) 输入 p 进行显示您有权限的主机.
4) 输入 g 进行显示您有权限的节点.
5) 输入 d 进行显示您有权限的数据库.
6) 输入 k 进行显示您有权限的Kubernetes.
7) 输入 r 进行刷新最新的机器和节点信息.
8) 输入 s 进行中英日语言切换.
9) 输入 h 进行显示帮助.
10) 输入 q 进行退出.
Opt> 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,总数量:2
提示:输入资产ID直接登录,二级搜索使用 // + 字段,如://192 上一页:b 下一页:n
搜索:
[Host]> 1
[op@harbor ~]$ sudo -s
# 安装部署 docker 及 compose 组件
[root@harbor op]# yum install -y docker-ce docker-compose-plugin
[root@harbor harbor]# systemctl enable --now docker
拷贝harbor-v2.7.0.tgz 到 harbor 主机
[root@jumpserver ~]# scp /root/s4/public/harbor-v2.7.0.tgz 192.168.1.30:/root/
#创建 https 证书,后期harbor使用https的方式访问,使用openssl工具生成一个RSA密钥对,放到/root/tls/,名称为cert.key,秘钥位数2048位;使用openssl工具生成一个有效期为10年的证书,私钥使用之前生成的/root/tls/cert.key文件,将生成的证书保存到/root/tls/cert.crt文件中,并设置证书的主题信息
[root@harbor op]# cd /root/
[root@harbor ~]# tar -xf harbor-v2.7.0.tgz -C /usr/local/
[root@harbor ~]# cd /usr/local/harbor
[root@harbor harbor]# mkdir /root/tls
[root@harbor harbor]# openssl genrsa -out /root/tls/cert.key 2048
[root@harbor harbor]# openssl req -new -x509 -days 3650 -key /root/tls/cert.key -out /root/tls/cert.crt -subj "/C=CN/ST=BJ/L=BJ/O=Tedu/OU=NSD/CN=harbor"
# 修改配置文件
[root@harbor harbor]# cp harbor.yml.tmpl harbor.yml
[root@harbor harbor]# vim harbor.yml
5 hostname: harbor #harbor地址
8 #http: #加上注释
10 #port: 80 #加上注释
17 certificate: /root/tls/cert.crt #nginx的证书文件位置
18 private_key: /root/tls/cert.key #nginx的秘钥文件位置
# 安装harbor
[root@harbor harbor]# ./install.sh
[root@harbor harbor]# docker compose ps # 查看容器状态,全部是healthy
NAME COMMAND SERVICE STATUS PORTS
harbor-core "/harbor/entrypoint.…" core running (healthy)
harbor-db "/docker-entrypoint.…" postgresql running (healthy)
harbor-jobservice "/harbor/entrypoint.…" jobservice running (healthy)
harbor-log "/bin/sh -c /usr/loc…" log running (healthy) 127.0.0.1:1514->10514/tcp
harbor-portal "nginx -g 'daemon of…" portal running (healthy)
nginx "nginx -g 'daemon of…" proxy running (healthy) 0.0.0.0:80->8080/tcp, :::80->8080/tcp, 0.0.0.0:443->8443/tcp, :::443->8443/tcp
redis "redis-server /etc/r…" redis running (healthy)
registry "/home/harbor/entryp…" registry running (healthy)
registryctl "/home/harbor/start.…" registryctl running (healthy)
1、发布 harbor 服务
通过ELB发布,ELB发布时监听443端口即可
点击提交,点击返回列表
3、访问测试
通过浏览器访问:https://ELB地址
4、制作镜像,测试上传下载
制作启动jar的基础镜像
通过test主机制作镜像,测试上传下载
[root@harbor harbor]# exit
[op@harbor ~]$ logout
[Host]> 4
开始连接到 普通用户op@192.168.1.101 0.1
...
[op@test ~]$ sudo -s
[root@test op]# vim /etc/hosts #配置主机名解析
192.168.1.30 harbor
[root@test op]# yum -y install docker-ce
[root@test op]# mkdir -p /etc/docker
[root@test op]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://harbor:443"],
"insecure-registries": ["harbor:443"]
}
[root@test op]# systemctl enable --now docker
# 登录 harbor 仓库,用户名密码可能和自己的环境不一样,使用直接设置的用户名和密码
[root@test op]# docker login harbor:443
Username: admin #用户名admin
Password: #密码Harbor12345
# 认证信息记录文件在/root/.docker/config.json文件中
制作启动jar的基础镜像
[root@test op]# scp 192.168.1.252:/root/s4/public/myos.tar.xz /root/
[root@test op]# docker load -i /root/myos.tar.xz
[root@test op]# mkdir /root/jar-package
[root@test op]# cd /root/jar-package/
[root@test jar-package]# vim Dockerfile
FROM myos:8.5
RUN yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel && yum clean all
CMD ["/bin/bash"]
[root@harbor jar-package]# docker build -t jar:base .
打标签上传jar:base镜像
[root@test jar-package]# docker tag jar:base harbor:443/myimg/jar:base
[root@test jar-package]# docker push harbor:443/myimg/jar:base
打标签上传myos:nginx镜像
[root@test jar-package]# docker tag myos:nginx harbor:443/myimg/tea:nginx
[root@test jar-package]# docker push harbor:443/myimg/tea:nginx
在harboor的web页面可以看到myimg项目中有两个镜像
测试下载
[root@test jar-package]# docker rmi jar:base
[root@test jar-package]# docker rmi harbor:443/myimg/jar:base
[root@test jar-package]# docker pull harbor:443/myimg/jar:base #下载成功
如果harbor停止了,可以使用如下命令启动
[root@harbor k8s]# cd /usr/local/harbor/
[root@test harbor]# docker compose start
可以看到下载次数为1
二、数据库部署
一、购买MySQL数据库
1、部署后端MySQL数据库
下载https://gitee.com/cc-0001/tea项目到自己真机本地,使用华为云的RDS数据库
1、准备学茶网数据库
创建存放学茶网站数据的数据库tarena_tp_tea
创建授权用户teauser,任意主机可以连接,密码Taren123,并授权
导入数据
2、准备验证码数据库
创建存放学茶登录网站验证码数据库cs_mall_passport
创建用户cs_mall_user,任意主机可以连接,密码Taren123,并授权
导入数据
二、购买redis数据库
1、Redis服务部署
使用云数据库GaussDB(for Redis)
命令行连接redis,找到redis负载均衡的地址
使用jumpserver的主机测试
[root@jumpserver ~]# yum -y install redis
[root@jumpserver ~]# redis-cli -h 192.168.1.147 -p 6379 -a Taren123
192.168.1.147:6379> ping
PONG
192.168.1.147:6379>
三、nacos部署
三、nacos服务部署
#通过jumpserver连接nacos
[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]> 2 #进入nacos主机
[op@nacos ~]$ sudo -s
#另开一个jumpserver终端,解压tar包
[root@jumpserver ~]# tar -xf package.tar.gz -C /root
#安装nacos,上传nacos到jumpserver主机的root目录下,拷贝到nacoa主机
[root@nacos op]# scp 192.168.1.252:/root/package/nacos-server-2.0.2.tar.gz /root/
[root@nacos op]# tar xf /root/nacos-server-2.0.2.tar.gz -C /usr/local/
#安装JDK8环境并配置环境变量
[root@nacos op]# yum -y install java-1.8.0-openjdk-devel
[root@nacos op]# ln -s /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-4.el8.x86_64/ /usr/lib/jvm/jdk8
[root@nacos op]# vim /etc/bashrc #文件末尾添加
...
export JDK8_HOME="/usr/lib/jvm/jdk8"
export NACOS_HOME="/usr/local/nacos"
export PATH=${JDK8_HOME}/bin/:${NACOS_HOME}/bin/:$PATH
[root@nacos nacos]# source /etc/bashrc
#配置nacos
[root@nacos ~]# cd /usr/local/nacos/
[root@nacos nacos]# vim conf/application.properties
33 spring.datasource.platform=mysql
36 db.num=1
39 db.url.0=jdbc:mysql://192.168.1.12:3306/nacos?characterEncoding=utf8&connectTim eout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&se rverTimezone=UTC
40 db.user.0=nacos
41 db.password.0=Taren123
1、nacos服务部署
1、创建nacos库,存储注册中心数据
创建nacos库
创建nacos用户任意主机可以连接,密码Taren123,并授权
导入数据
#修改nacos启动脚本
[root@nacos nacos]# vim bin/startup.sh
55 export MODE="standalone"
87 JAVA_OPT="${JAVA_OPT} -Xms256m -Xmx256m -Xmn128m"
#启动nacos服务
[root@tea nacos]# ./bin/startup.sh
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el8_5.x86_64/bin/java -Xms256m -Xmx256m -Xmn128m -Dnacos.standalone=true -Dnacos.member.list= -Djava.ext.dirs=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el8_5.x86_64/jre/lib/ext:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el8_5.x86_64/lib/ext -Xloggc:/usr/local/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/usr/local/nacos/plugins/health,/usr/local/nacos/plugins/cmdb -Dnacos.home=/usr/local/nacos -jar /usr/local/nacos/target/nacos-server.jar --spring.config.additional-location=file:/usr/local/nacos/conf/ --logging.config=/usr/local/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with standalone
nacos is starting,you can check the /usr/local/nacos/logs/start.out
#确认nacos服务启动
[root@nacos nacos]# tail -2 logs/start.out
2023-07-05 02:37:20,239 INFO Nacos started successfully in stand alone mode. use external storage
[root@nacos nacos]# jps
3073 Jps
1122 WrapperSimpleApp
2827 nacos-server.jar
[root@nacos nacos]# ss -antpul | grep java
udp UNCONN 0 0 *:52671 *:* users:(("java",pid=5726,fd=68))
udp UNCONN 0 0 *:38540 *:* users:(("java",pid=5726,fd=67))
tcp LISTEN 0 100 *:8848 *:* users:(("java",pid=5726,fd=147))
tcp LISTEN 0 128 *:9848 *:* users:(("java",pid=5726,fd=100))
tcp LISTEN 0 128 *:9849 *:* users:(("java",pid=5726,fd=101))
tcp LISTEN 0 128 *:7848 *:* users:(("java",pid=5726,fd=102))
[root@tea nacos]#
#设置nacos服务开机自启动,文件最后添加
[root@nacos nacos]# vim /etc/rc.d/rc.local
...
/usr/local/nacos/bin/startup.sh
[root@nacos nacos]# chmod +x /etc/rc.d/rc.local
2、通过负载均衡ELB发布nacos
访问nacos,ELB的公网ip:8848/nacos访问,用户名nacos,密码nacos
创建新的名称空间project,用于后期使用
四、RocketMQ服务部署
四、安装RockerMQ
1、安装RockerMQ
依然使用jumpserver管理机器
[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]> 3 #进入rocketmq主机
[op@rocketmq ~]$ sudo -s
#安装RocketMQ
[root@rocketmq op]# scp 192.168.1.252:/root/package/rocketmq-all-4.9.4-bin-release.zip /root/
[root@rocketmq op]# unzip /root/rocketmq-all-4.9.4-bin-release.zip
[root@rocketmq op]# mv rocketmq-all-4.9.4-bin-release/ /usr/local/rocketmq
[root@rocketmq op]# ls /usr/local/rocketmq
benchmark bin conf lib LICENSE NOTICE README.md
#安装JDK8环境并RocketMQ环境变量
[root@rocketmq op]# yum -y install java-1.8.0-openjdk-devel
[root@rocketmq op]# ln -s /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-4.el8.x86_64/ /usr/lib/jvm/jdk8
[root@rocketmq op]# vim /etc/bashrc #文件末尾添加
...
export JDK8_HOME="/usr/lib/jvm/jdk8"
export ROCKETMQ_HOME="/usr/local/rocketmq"
export PATH=${JDK8_HOME}/bin/:${ROCKETMQ_HOME}/bin/:$PATH
[root@rocketmq op]# source /etc/bashrc
#配置RocketMQ服务
[root@rocketmq op]# cd /usr/local/rocketmq/
[root@rocketmq rocketmq]# vim conf/broker.conf #文件末尾追加
...
namesrvAddr=0.0.0.0:9876 #指定RocketMQ Broker要连接的NameServer的地址和端口,0.0.0.0表示监听所有网络接口
brokerIP1=192.168.1.14 #指定Broker所在主机的IP地址,写自己本机eth0的ip
brokerIP2=127.0.0.1 #写自己本机127.0.0.1
#配置JVM虚拟机参数
[root@rocketmq rocketmq]# vim bin/runserver.sh
71 JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSiz e=128m -XX:MaxMetaspaceSize=128m"
[root@rocketmq rocketmq]# vim bin/runbroker.sh
85 JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m"
#启动RocketMQ服务
[root@rocketmq rocketmq]# nohup bash /usr/local/rocketmq/bin/mqnamesrv -n 0.0.0.0:9876 &> /usr/local/rocketmq/bin/namesrv.log 2>&1 &
[root@rocketmq rocketmq]# nohup bash /usr/local/rocketmq/bin/mqbroker -n 192.168.1.14:9876 autoCreateTopicEnable=true -c /usr/local/rocketmq/conf/broker.conf &> /usr/local/rocketmq/bin/mqbroker.log 2>&1 & #autoCreateTopicEnable=true 是否启用自动创建Topic的功能,地址改成自己本机eth0的ip
#验证RocketMQ启动结果
[root@rocketmq rocketmq]# jps
2787 Jps
1128 WrapperSimpleApp
2697 BrokerStartup
2378 NamesrvStartup
[root@rocketmq rocketmq]# ss -antplu | grep java
tcp LISTEN 0 1024 *:9876 *:* users:(("java",pid=2378,fd=94))
tcp LISTEN 0 1024 *:10909 *:* users:(("java",pid=2697,fd=129))
tcp LISTEN 0 1024 *:10911 *:* users:(("java",pid=2697,fd=128))
tcp LISTEN 0 50 *:10912 *:* users:(("java",pid=2697,fd=124))
2、验证RocketMQ启动结果
#拷贝jar包到rocketmq主机,使用以下命令启动,用于启动RocketMQ控制台;--rocketmq.config.namesrvAddr=192.168.1.14:9876 是指定RocketMQ控制台连接的Name Server的地址和端口
[root@rocketmq rocketmq]# scp 192.168.1.252:/root/package/rocketmq-console-ng-1.0.0.jar /root/
[root@rocketmq rocketmq]# nohup java -jar /root/rocketmq-console-ng-1.0.0.jar --rocketmq.config.namesrvAddr=192.168.1.14:9876 &> /usr/local/rocketmq/bin/rocketmq-console.log 2>&1 & #地址改成自己eth0的ip
另开一个终端查看
[root@rocketmq rocketmq]# ss -antlp #有8080端口
...
LISTEN 0 100 *:8080 *:*
#设置RocketMQ服务开机自启动
[root@rocketmq rocketmq]# vim /etc/rc.d/rc.local #文件末尾追加
nohup bash /usr/local/rocketmq/bin/mqnamesrv -n 0.0.0.0:9876 &> /usr/local/rocketmq/bin/namesrv.log 2>&1 &
nohup bash /usr/local/rocketmq/bin/mqbroker -n 192.168.1.14:9876 autoCreateTopicEnable=true -c /usr/local/rocketmq/conf/broker.conf &> /usr/local/rocketmq/bin/mqbroker.log 2>&1 &
nohup java -jar /root/rocketmq-console-ng-1.0.0.jar --rocketmq.config.namesrvAddr=192.168.1.14:9876 &> /usr/local/rocketmq/bin/rocketmq-console.log 2>&1 &
[root@rocketmq rocketmq]# chmod +x /etc/rc.d/rc.local
3、通过负载均衡发布rocketmq
监听8080端口,浏览器访问 负载均衡ip:8080