一个无人机平台+算法监督平台的离线部署指南

文档清单

表1 主应用清单

序号 名称 位置 IP 用途

表格内容隐藏
mqtt_for_airport.7z 机场、设备接入
FuyaAirportCenter.7z 机场对接
mongodb-org-server-4.2.3-1.el7.x86_64.rpm 数据库
ufss-enterprise.7z 无人机平台-业务模块
mqtt_ins_1.7z 内部通信
ins.7z Web客户端
nginx-http.7z Web静态容器
ufss-station.7z 无人机平台-算法管理模块
mqtt_uss_1.7z 内部通信
geoserver-2.14.0.7z.001 geoserver-2.14.0.7z.002 geoserver-2.14.0.7z.003 geoserver-2.14.0.7z.004GIS服务
Dependent.tar.gz Maps.tar.gz schedule.tar.gz 航线规划算法
视频web插件_V1.3.2_20190929.7z 视频播放插件

表2 第三方组件清单

序号 名称 位置 IP 用途

表格内容隐藏

表3端口列表

序号 端口 主机 开放策略 功能

表格内容隐藏

注意事项

(1)以下所有指令都以root权限执行;

(2)指令中涉及单引号的,注意务必输入单引号, 不能用双引号替代;

(3)如果某一项指令的结果与预期不符合,请停止指令输入,立即联系厂家;

(4)如果非实机操作,需要用到远程ssh工具, 例如xshell/xftp.

(5)进机房前需要把整个ufss文件夹拷入U盘, 以下操作都以U盘数据为前提

详细安装步骤

文件拷贝(所有主机)

目标主机: 所有

步骤:

首先切换到root账户,然后按顺序执行以下指令:

(1)创建用户:

bash 复制代码
groupadd russ
useradd -g russ russ
passwd ****

输入密码, 例如alkdfjpoaewif123456

这样系统将自动创建/home/russ文件夹

(1)挂载U盘:

bash 复制代码
modprobe usb-storage
fdisk -l

(注意: 参数是小写的L, 不是数字1)

这一步需要根据显示结果找到U盘对应的卷标, 例如我的U盘空间32G,可以确定就是下图的/dev/sdb4:

如果是其它卷标, 那么以下指令中/dev/sdb4需要被替换为实际卷标

bash 复制代码
mkdir /mnt/usb
mount /dev/sdb4 /mnt/usb

(2)拷贝文件

bash 复制代码
mkdir /home/russ/file
cp -R /mnt/usb/ufss /home/russ/file
chown -R russ:russ /home/russ/file/*
cd /home/russ/file/ufss
umount /dev/sdb4

安装基础组件(所有主机)

目标主机: 所有

(1)安装7zip

bash 复制代码
cd /home/russ/file/ufss
tar -zxvf p7zip.tar.gz
chmod +x 7z/bin/*
mv 7z /usr/local
echo -e '\nexport PATH=$PATH:.:/usr/local/7z/bin' >> /etc/profile
export PATH=$PATH:.:/usr/local/7z/bin
7za a

出现以下结果表示安装成功:

(2)安装base

bash 复制代码
cd /home/russ/file/ufss
7za x base.7z
cd base
rpm -Uvh *.rpm --nodeps --force
cd ..
cmake --version

出现以下结果表示安装成功:

(3)安装gcc-centos

bash 复制代码
cd /home/russ/file/ufss
7za x gcc-centos.7z
cd gcc-centos
rpm -Uvh *.rpm --nodeps --force
cd ..
gcc -v

出现以下结果表示安装成功:

(4)安装java

bash 复制代码
cd /home/russ/file/ufss
tar -zxvf jdk-8u241-linux-x64.tar.gz
chmod +x jdk1.8.0_241/bin/*
chmod +x jdk1.8.0_241/jre/bin/*
chmod +x jdk1.8.0_241/lib/jexec
mkdir /usr/local/java
mv jdk1.8.0_241 /usr/local/java
echo -e '\nexport JAVA_HOME=/usr/local/java/jdk1.8.0_241\nexport JRE_HOME=${JAVA_HOME}/jre\nexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib\nexport PATH=$PATH:${JAVA_HOME}/bin' >> /etc/profile
source /etc/profile
java -version

出现以下结果表示安装成功:

(5)安装python

bash 复制代码
cd /home/russ/file/ufss
7za x python3.7z
chmod +x python3/bin/*
chmod +x python3/lib/*.a
chmod +x python3/lib/python3.7/*.py
mv python3 /usr/local/
echo -e '\nexport PATH=/usr/local/python3/bin:$PATH\nexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64:/usr/local/lib:.:/usr/local/python3/lib\n' >> /etc/profile
echo -e '\n/usr/local/python3/lib\n' >> /etc/ld.so.conf
source /etc/profile
ldconfig
python3 -V

出现以下结果表示安装成功:

安装机场对接服务(ip:xxx)

目标主机: xxx

步骤:

(1)安装并启动mqtt

bash 复制代码
cd /home/russ/file/ufss
7za x mqtt_for_airport.7z
mv emqx2 /home/russ/emqx2
cd /home/russ/emqx2/bin
chmod +x *
./emqx start
netstat -anp | grep 21883

看到如下图示表示启动成功:

(2)安装并启动机场对接服务

bash 复制代码
cd /home/russ/file/ufss
7za x FuyaAirportCenter.7z
mv FuyaAirportCenter /home/russ
cd /home/russ/FuyaAirportCenter
chmod +x airport_center
chmod +x *.sh
./start_airport_loop.sh &

启动成功后将会有相应日志输出, 或者直接到log文件夹查看日志

(3)配置开机启动

bash 复制代码
echo -e '\n\n/home/russ/emqx2/bin/startup.sh' >> /etc/rc.local
echo -e '\n/home/russ/FuyaAirportCenter/start_airport_loop.sh &' >> /etc/rc.local
chmod +x /etc/rc.local

(4)开启防火墙

bash 复制代码
firewall-cmd --permanent --add-port=1883/tcp
firewall-cmd --permanent --add-port=8083/tcp
firewall-cmd --permanent --add-port=21883/tcp
firewall-cmd --permanent --add-port=28083/tcp
firewall-cmd --permanent --add-port=12345/tcp

(5)日志说明

FuyaAirportCenter产生的日志在当前工作目录下log子目录, 每次运行将会产生一个日志文件.

3.4.安装无人机作业平台(ip:yyy)

目标主机: yyy

(1)安装内部通信组件

bash 复制代码
cd /home/russ/file/ufss
7za x mqtt_ins_1.7z
mv emqx /home/russ/emqx
cd /home/russ/emqx/bin
chmod +x *
./emqx start
netstat -anp | grep 1883

看到如下图示表示启动成功:

(2)安装数据库

bash 复制代码
cd /home/russ/file/ufss
rpm -ivh mongodb-org-server-4.2.3-1.el7.x86_64.rpm
service mongod start
netstat -anp | grep 27017

如下图表示启动成功:

(3)安装无人机作业平台服务

bash 复制代码
cd /home/russ/file/ufss
7za x ufss-enterprise.7z
mv ufss-enterprise /home/russ/
cd /home/russ/ufss-enterprise
chmod +x ufss-enterprise.sh
./ufss-enterprise.sh
netstat -anp | grep 18196

如下图表示启动成功:

(4)安装客户端容器

bash 复制代码
cd /home/russ/file/ufss
7za x nginx-http.7z
chmod +x nginx-http/sbin/*
mv nginx-http /usr/local

(5)安装客户端静态页面

bash 复制代码
cd /home/russ/file/ufss
7za x ins.7z
mv ins /usr/local/nginx-http/html
cd /usr/local/nginx-http
chmod +x sbin/*
./sbin/nginx -c ./conf/nginx.conf
netstat -anp | grep :80

如下图表示启动成功:

(6)配置开机启动

bash 复制代码
echo -e '\n\n/home/russ/emqx/bin/startup.sh' >> /etc/rc.local
echo -e '\nservice mongod start' >> /etc/rc.local
echo -e '\n/home/russ/ufss-enterprise/ufss-enterprise.sh' >> /etc/rc.local
echo -e '\n/usr/local/nginx-http/startup.sh' >> /etc/rc.local
chmod +x /etc/rc.local

(7)开启防火墙

复制代码
firewall-cmd --permanent --add-port=1883/tcp
firewall-cmd --permanent --add-port=8083/tcp
firewall-cmd --permanent --add-port=18196/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=27017/tcp

(8)日志说明

无人机平台ufss-enterprise产生的日志在当前工作目录下logs子目录, 日志文件名为enterprise.log. 超过24M后自动打包归档.

3.5.安装算法监管平台(ip:zzz)

目标主机: zzz

(1)安装内部通信组件

bash 复制代码
cd /home/russ/file/ufss
7za x mqtt_uss_1.7z
mv emqx /home/russ/emqx
cd /home/russ/emqx/bin
chmod +x /home/russ/emqx/bin/*
./emqx start
netstat -anp | grep 1883

看到如下图示表示启动成功:

(2)安装算法监管平台服务

bash 复制代码
cd /home/russ/file/ufss
7za x ufss-station.7z
mv ufss-station /home/russ/
cd /home/russ/ufss-station
chmod +x ufss-station.sh
./ufss-station.sh
netstat -anp | grep 18190

如下图所示表示启动成功:

(3)配置开机启动

bash 复制代码
echo -e '\n\n/home/russ/emqx/bin/startup.sh' >> /etc/rc.local
echo -e '\n/home/russ/ufss-station/ufss-station.sh' >> /etc/rc.local
chmod +x /etc/rc.local

(4)开启防火墙

bash 复制代码
firewall-cmd --permanent --add-port=1883/tcp
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=18190/tcp

(5)日志说明

无人机平台ufss-station产生的日志在当前工作目录下logs子目录, 日志文件名为station.log. 超过24M后自动打包归档.

算法与GIS安装(ip:zzz)

创建用户

groupadd uav

useradd -g uav uav

passwd ****

输入密码,例如asdfafeewaf2018

安装GIS服务平台

目标主机: zzz

步骤:

bash 复制代码
cd /home/russ/file/ufss
7za x geoserver-2.14.0.7z.001
rm -rf geoserver-2.14.0/bin/guardGis.sh
cp guardGis.sh geoserver-2.14.0/bin/
chown -R uav:uav geoserver-2.14.0
chmod +x geoserver-2.14.0/bin/*.sh
find -type f|xargs chmod 644 geoserver-2.14.0
find -type d|xargs chmod 755 geoserver-2.14.0
mv geoserver-2.14.0 /home/uav
cd /home/uav/geoserver-2.14.0/bin/
./guardGis.sh &
netstat -anp | grep 8080

如下图所示表示启动成功:

配置开机自启动:

复制代码
echo -e '\n/home/uav/geoserver-2.14.0/bin/guardGis.sh &' >> /etc/rc.local
chmod +x /etc/rc.local

4.3.安装算法服务平台

目标主机: zzz

步骤:

bash 复制代码
cd /home/russ/file/ufss
tar -zxvf Dependent.tar.gz
tar -zxvf Maps.tar.gz
tar -zxvf schedule.tar.gz
mkdir /gis
mv Maps /gis

mv Dependent /home/uav
chmod +x /home/uav/Dependent/gdal/bin/*
chmod +x /home/uav/Dependent/OpenBLAS/bin/*
echo -e '\nPATH=$PATH:/home/uav/Dependent/gdal/bin\n' >> /etc/profile
echo -e '\nLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/uav/Dependent/gdal/bin:/home/uav/Dependent/gdal/lib:/home/uav/Dependent/arma/usr/lib64:/home/uav/Dependent/OpenBLAS/lib\n' >> /etc/profile
source /etc/profile
gdalinfo --version

echo -e '\n/usr/lib\n/usr/local/lib\n/home/uav/schedule/Audit\n/home/uav/schedule/Route\n/home/uav/schedule/RouteNet\n/home/uav/Dependent/OpenBLAS/lib\n/home/uav/Dependent/gdal/lib\n/home/uav/Dependent/arma/usr/lib64' >> /etc/ld.so.conf

ldconfig

mv schedule /home/uav
cd /home/uav/schedule/Main
chmod +x Traffic
chmod +x guardSchedule.sh
./guardSchedule.sh &

出现如下控制台输出,则安装成功

配置开机自启动:

bash 复制代码
echo -e '\n/home/uav/schedule/Main/guardSchedule.sh &' >> /etc/rc.local
chmod +x /etc/rc.local

安全防护通用操作

防火墙

(1). 永久性开启和关闭防火墙. 重启后生效

开启:systemctl enable firewalld.service

关闭:systemctl disable firewalld.service

(2). 临时开启和关闭防火墙,重启后失效

开启:systemctl start firewalld

关闭:systemctl stop firewalld

(3).查看防火墙状态
firewall-cmd --state

(4).重启防火墙
systemctl restart firewalld

(5).开放一个端口, 例如80
firewall-cmd --permanent --add-port=80/tcp

开放多个端口, 例如10000~20000
firewall-cmd --permanent --add-port=10000-20000/tcp

(6).关闭一个端口, 例如80
firewall-cmd --permanent --remove-port=80/tcp

关闭多个端口, 例如10000~20000
firewall-cmd --permanent --remove-port=10000-20000/tcp

(7).查看端口开放情况
firewall-cmd --permanent --list-ports

5.2.selinux

(1). 永久性开启和关闭selinux. 重启后生效

开启:
echo 'SELINUX=enforcing\nSELINUXTYPE=targeted' > /etc/selinux/config

关闭:
echo 'SELINUX=disabled\nSELINUXTYPE=targeted' > /etc/selinux/config

(2). 临时开启和关闭selinux,重启后失效

开启:setenforce 1

关闭:setenforce 0

(3).查看selinux状态
getenforce

输出Enforcing表示运行中;输出Permissive表示已停止

相关推荐
凤山老林2 小时前
SpringBoot + MyBatis-Plus 如何高效实现数据变更记录
java·spring boot·mybatis
ygklwyf2 小时前
零基础薄纱树套树——高级数据结构的结合
算法·线段树·树状数组·树套树
Vivienne_ChenW2 小时前
Spring 事件驱动用法总结
java·开发语言·spring boot·spring
喵手2 小时前
Python爬虫实战:房产数据采集实战 - 链家二手房&安居客租房多页爬虫完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·房产数据采集·链家二手房/安居客房源采集·采集结果sqlite导出
不懒不懒2 小时前
【机器学习:下采样 VS 过采样——逻辑回归在信用卡欺诈检测中的实践】
python·numpy·scikit-learn·matplotlib·pip·futurewarning
Leinwin2 小时前
Moltbot 部署至 Azure Web App 完整指南:从本地到云端的安全高效跃迁
后端·python·flask
毕设源码-邱学长2 小时前
【开题答辩全过程】以 基于Springboot个人健康运动系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
愿你天黑有灯下雨有伞2 小时前
Spring Boot + FastExcel:打造完美的导入校验功能
java·spring boot·后端