1. 安装docker(ubuntu)
1.更换国内软件源,推荐中国科技大学的源,稳定速度快(可选)
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo apt update
2.安装需要的包
sudo apt install apt-transport-https ca-certificates software-properties-common curl
3.添加 GPG 密钥,并添加 Docker-ce 软件源,这里还是以中国科技大学的 Docker-ce 源为例
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable"
4.添加成功后更新软件包缓存
sudo apt update
5.安装 Docker-ce
sudo apt install docker-ce
6.设置开机自启动并启动 Docker-ce(安装成功后默认已设置并启动,可忽略)
sudo systemctl enable docker
sudo systemctl start docker
7.docker镜像加速
阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://nirshqm9.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
8.测试运行
sudo docker run hello-world
2、安装mysql
1.拉取镜像
sudo docker pull mysql:5.7
2.运行容器
sudo docker run -itd --restart=always --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=xxxx mysql:5.7
3、安装mongodb(docker版)
1.拉取镜像
sudo docker pull mongo:4.4.16
2.运行容器
--auth:需要密码才能访问容器服务
docker run -itd --restart=always --name mongo -v /data/db:/data/db -p 27017:27017 mongo:4.4.16 --auth --wiredTigerCacheSizeGB 1.5
3.设置用户名密码
docker exec -it mongo mongo admin
# 创建一个名为 root,密码为 xxx 的用户。
> db.createUser({ user:'root',pwd:'xxx',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('root', 'xxx')
4.安装MongoDB 客户端
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
sudo apt-get update
sudo apt-get install -y mongodb-org-shell=4.4.16 mongodb-org-tools=4.4.16
安装MongoDB(原生版)
装了docker版这个就不用装了
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
sudo apt-get update
sudo apt-get install -y mongodb-org=4.4.15 mongodb-org-server=4.4.15 mongodb-org-shell=4.4.15 mongodb-org-mongos=4.4.15 mongodb-org-tools=4.4.15
启动:
sudo systemctl start mongod
开机自启:
sudo systemctl enable mongod
配置文件:sudo vim /etc/mongod.conf
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
# engine:
# mmapv1:
wiredTiger:
engineConfig:
cacheSizeGB: 1
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 27017
bindIpAll: true
# how the process runs
processManagement:
timeZoneInfo: /usr/share/zoneinfo
security:
authorization: enabled
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
4、安装redis
1.拉取镜像
sudo docker pull redis:6.0
2.运行容器
sudo docker run -itd --restart=always --name redis -p 6379:6379 redis:6.0
5、安装jdk
sudo apt-get install openjdk-8-jre-headless
6、安装本地端程序
1、新建目录:~/local
~/local/resources
~/local/resources/device_config
mkdir -p ~/local ~/local/resources ~/local/resources/device_config ~/local/resources/config
2、上传目录target/lib
到~/local
目录下。
scp -P ${port} -r target/lib tewo@my.jmal.top:/home/tewo/local/
3、上传文件local.sh
local-${version}.jar
到~/local
目录下。
scp -P ${port} local.sh target/local-${version}-exec.jar tewo@my.jmal.top:/home/tewo/local
4、上传文件application.yml
和application-dev.yml
到~/local/resources
目录下。
scp -P src/main/resources/application.yml src/main/resources/application-dev.yml tewo@my.jmal.top:/home/tewo/local/resources
5、上传目录device_config
到~/local/resources
目录下。
scp -P ${port} -r src/main/resources/device_config/${regionId}/ tewo@my.jmal.top:/home/tewo/local/resources/device_config/
6、上传流程参数配置文件trigger_device_param.yml
到~/local/resources/config
目录下。
scp -P ${port} src/main/resources/config/trigger_device_param.yml tewo@my.jmal.top:/home/tewo/local/resources/config/
定时清理日志文件
# 编辑crontab
crontab -e
# 定时清理日志
0 0 * * 0 > /home/tewo/local/local.log
7、安装本地端界面
https://blog.jmal.top/s/install-tewo-ubuntu
8、安装内网穿透程序
https://blog.jmal.top/s/install-npc-client
9、使本地端程序开机自启
sudo vim /lib/systemd/system/rc-local.service
在文件尾部中添加:
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
随后创建rc.local文件
sudo vim /etc/rc.local
并添加以下内容: #不能添加阻塞进程 不然开机卡死
#!/bin/sh
# 启动本地端程序
nohup su tewo -c "/home/tewo/local/local.sh start" > /dev/null 2>&1 &
exit 0
给rc.local加上权限
sudo chmod +x /etc/rc.local
在 /etc/systemd/system 目录下创建软链接
sudo ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/
10、同步基础数据到本地端
在平台端创建一个项目
复制平台端数据库里的project表和region表数据到本地端的数据库,并执行如下sql, (保证本地端数据库的project表和region表都只有一条数据)
-- 设置角色模块表
update role_module set project_id = {项目id} where project_id is not NUll;
-- 设置用户项目表
update user_project set project_id = {项目id} where user_name = 'admin';
修改
application-prod.yml
文件 里的projectId和regionId
11、部署配置界面
安装nginx
sudo apt update
sudo apt-get install nginx
nginx配置文件/etc/nginx/sites-enabled/default
server {
listen 13333 default_server;
listen [::]:13333 default_server;
root /home/tewo/dist;
index index.html index.htm index.nginx-debian.html;
location /api/ {
proxy_pass http://localhost:10001/;
proxy_set_header Host $http_host;
}
location /mq/ {
proxy_pass http://localhost:10001/mq/;
#websocket额外配置开始
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 60s;#l连接超时时间,不能设置太长会浪费连接资源
proxy_read_timeout 500s;#读超时时间
proxy_send_timeout 500s;#写超时时间
#websocket额外配置结束
}
auth_basic "tewo secured";
auth_basic_user_file /etc/nginx/.htpasswd;
}