记一次测试环境部署流程

一、部署说明

记录公司一项目部署测试环境,用到的中间件:nacos、nginx、rockermq、mysql、harbor等
服务启动方式:docker(docker-compose编排启动)

1、挂载磁盘

#查看数据盘
lsblk 
#磁盘分区
fdisk /dev/sdb
#创建pv
pvcreate /dev/sdb
#创建vg,data_vg为你想创建的vg名称
vgcreate data_vg /dev/sdb
#创建lv,-l指定大小,-n指定lv名称
lvcreate -l +100%FREE -n data_lv data_vg
#查看创建的pv、vg、lv
pvdisplay
vgdisplay
lvdisplay
#格式化
mkfs.ext4 /dev/data_vg/data_lv
#创建挂载目录
mkdir /data
#配置永久挂载,仿照内容添加下行
vi /etc/fstab
/dev/data_vg/data_lv /data ext4 defaults 0 0
#执行挂载命令
mount -a
#查看挂载情况
df -h

2、基础配置

#配置所有用户的最大文件打开数、最大进程数及最大内存限制
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
* soft memlock unlimited
* hard memlock unlimited
#配置内核参数
fs.file-max = 655360
vm.max_map_count = 655360
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 2
net.ipv4.tcp_keepalive_probes = 2
net.ipv4.ip_local_port_range = 2048 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_retries2 = 5
net.core.somaxconn = 4096
net.netfilter.nf_conntrack_tcp_timeout_established = 300
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 12
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
#关闭防火墙及selinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vi /etc/selinux/config
SELINUX=disabled

3、安装docker及docker-compose

https://download.docker.com/linux/centos/

从中找到对应系统版本的stable(稳定版)并下载docker-ce、docker-ce-cli、containerd.io

https://github.com/docker/compose/releases

从中下载docker-compose

#安装docker
rpm -Uvh --nofiles --force *.rpm
#安装docker-compose
mv docker-compose-linux-x86_64 docker-compose
chmod +x docker-compose
mv docker-compose /bin/ #或者/sbin/

4、安装harbor

https://github.com/goharbor/harbor/releases

从中下载harbor离线包

tar xf harbor-offline-installer-v2.3.4.tgz -C /data
cd /harbor
vi harbor.yml

#自定义配置信息,主要修改内容如下
hostname #主机名,一般与url域名一致
http  https #协议及端口 
certificate #证书路径
private_key
external_url #harbor服务器的url 
harbor_admin_password #admin用户密码
data_volume #harbor安装目录

#安装
./install.sh

#验证
docker-compose ps

5、安装mysql

https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/
#下载mysql的离线rpm源,mysql-community-client、mysql-community-common、mysql-community-libs、mysql-community-server
#依照顺序安装
rpm -ivh mysql-community-common-8.0.12-1.el7.x86_64.rpm 
rpm -ivh mysql-community-libs-8.0.12-1.el7.x86_64.rpm 
rpm -ivh mysql-community-client-8.0.12-1.el7.x86_64.rpm 
rpm -ivh mysql-community-server-8.0.12-1.el7.x86_64.rpm
#初始化配置
grep passwor/var/log/mysqld.log #获取初始化密码
mysql -u root -p
alter user root@localhost identified by '123456'#数据库修改初始化密码
systemctl restart mysqld #重启数据库生效
update user set host='%' where user='root'; #开启远程登录

6、安装nacos

https://registry.hub.docker.com/
#从中找到对应nacos版本镜像,并下载
https://github.com/alibaba/nacos/blob/develop/distribution/conf/nacos-mysql.sql
#从中下载nacos的初始化数据库脚本,并执行
mysql -u root -p
#创建nacos数据库
create database nacos DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#创建nacos用户
create user 'nacos'@'%' identified by 'Nacos_123';
#为nacos授权
grant all privileges on nacos.* to 'nacos'@'%';
#使用nacos登陆mysql,并初始化数据
mysql -u nacos -p
source /root/init.sql;

#编写docker-compose文件,并启动nacos
version: "2"
services:
  nacos:
    image: nacos/nacos-server:2.0.3
    container_name: nacos
    environment:
      PREFER_HOST_MODE: hostname
      MODE: standalone
      MYSQL_SERVICE_HOST: 172.31.88.22
      MYSQL_SERVICE_DB_NAME: nacos
      MYSQL_SERVICE_PORT: 3306
      MYSQL_SERVICE_USER: nacos
      MYSQL_SERVICE_PASSWORD: Nacos_123
    volumes:
      - ./standalone-logs/:/home/nacos/logs
    ports:
      - "8848:8848"
    restart: always
    
#验证
docker-compose ps

7、安装rocketmq

https://registry.hub.docker.com/
#从中找到对应rocketmq镜像,并下载
vi docker-compose.yaml

version: '3.5'
services:
  rmqnamesrv:
    image: foxiswho/rocketmq:server
    container_name: rmqnamesrv
    ports:
      - 9876:9876
    volumes:
      - /etc/localtime:/etc/localtime\ro
    networks:
        rmq:
          aliases:
            - rmqnamesrv
     restart: always

  rmqbroker:
    image: foxiswho/rocketmq:broker
    container_name: rmqbroker
    ports:
      - 10909:10909
      - 10911:10911
    volumes:
      - /etc/localtime:/etc/localtime\ro
      - ./data/brokerconf/broker.conf:/etc/rocketmq/broker.conf
    environment:
        NAMESRV_ADDR: "namesrvip:9876" #注意修改ip地址
        JAVA_OPTS: " -Duser.home=/opt"
        JAVA_OPT_EXT: "-server -Xms4g -Xmx4g -Xmn4g"
    command: mqbroker -c /etc/rocketmq/broker.conf
    depends_on:
      - rmqnamesrv
    networks:
      rmq:
        aliases:
          - rmqbroker
     restart: always

  rmqconsole:
    image: styletang/rocketmq-console-ng
    container_name: rmqconsole
    ports:
      - 28080:8080
    environment:
        JAVA_OPTS: "-Drocketmq.namesrv.addr=namesrvip:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"  #注意修改ip地址
    depends_on:
      - rmqnamesrv
    networks:
      rmq:
        aliases:
          - rmqconsole
     restart: always

networks:
  rmq:
    name: rmq
    driver: bridge
    
#创建boker配置文件
vi ./data/brokerconf/broker.conf

# 所属集群名字
brokerClusterName=DefaultCluster

# broker 名字,注意此处不同的配置文件填写的不一样,如果在 broker-a.properties 使用: broker-a,
# 在 broker-b.properties 使用: broker-b
brokerName=broker-a

# 0 表示 Master,> 0 表示 Slave
brokerId=0

# nameServer地址,分号分割
namesrvAddr=namesrvip:9876

# 启动IP,如果 docker 报 com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <192.168.0.120:10909> failed
# 解决方式1 加上一句 producer.setVipChannelEnabled(false);,解决方式2 brokerIP1 设置宿主机IP,不要使用docker 内部IP
brokerIP1=namesrvip


# 在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4

# 是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭 !!!这里仔细看是 false,false,false
autoCreateTopicEnable=true

# 是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true

# Broker 对外服务的监听端口
listenPort=10911

# 删除文件时间点,默认凌晨4点
deleteWhen=04

# 文件保留时间,默认48小时
fileReservedTime=120

# commitLog 每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824

# ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整
mapedFileSizeConsumeQueue=300000

# destroyMapedFileIntervalForcibly=120000
# redeleteHangedFileInterval=120000
# 检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
# 存储路径
# storePathRootDir=/home/ztztdata/rocketmq-all-4.1.0-incubating/store
# commitLog 存储路径
# storePathCommitLog=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/commitlog
# 消费队列存储
# storePathConsumeQueue=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/consumequeue
# 消息索引存储路径
# storePathIndex=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/index
# checkpoint 文件存储路径
# storeCheckpoint=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/checkpoint
# abort 文件存储路径
# abortFile=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/abort
# 限制的消息大小
maxMessageSize=65536

# flushCommitLogLeastPages=4
# flushConsumeQueueLeastPages=2
# flushCommitLogThoroughInterval=10000
# flushConsumeQueueThoroughInterval=60000

# Broker 的角色
# - ASYNC_MASTER 异步复制Master
# - SYNC_MASTER 同步双写Master
# - SLAVE
brokerRole=ASYNC_MASTER

# 刷盘方式
# - ASYNC_FLUSH 异步刷盘
# - SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH

# 发消息线程池数量
sendMessageThreadPoolNums=128
useReentrantLockWhenPutMessage=true
# 拉消息线程池数量
# pullMessageThreadPoolNums=128

#启动
docker-compose up -d
#查看状态
docker-compose ps

8、安装nginx

#下载地址
https://nginx.org/packages/centos/7/x86_64/RPMS/

#安装
rpm -ivh *.rpm
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值