前置条件

  1. .sh脚本与解压后的文件需在同一文件夹中,不要随意移动。
  2. 执行命令: sudo sh xxx.sh 防止使用的是其它用户,导致无权限执行脚本。
  3. 脚本在执行过程中会判断是否已经安装jdk与redis,并且安装过程中需要用户根据提示输入相应信息,请留意。

    完整脚本

    ```shell

    ! /bin/bash -e

sudo apt-get update

javaPath=which java echo $javaPath if [ -f “$javaPath” ] then while true do echo “检测到您可能已经安装JDK,是否卸载已存在JDK,安装JDK1.8” read -p “[Y/N],同意选{Y},拒绝选{N}: “ updateJava case $updateJava in [yY][eE][sS]|[yY]) echo “卸载已存在的JDK …” sudo apt-get remove openjdk -y echo “卸载完成,准备安装JDK1.8 …” sudo apt install openjdk-8-jdk -y echo “JDK安装完成 …” break ;; [nN][oO]|[nN]) echo “不更换JDK …” break ;; ) echo “输入错误,请重新输入” ;; esac done else echo “检测到JDK不存在,准备安装 …” sleep 5s sudo apt install openjdk-8-jdk -y echo “JDK安装完成 …” fi sleep 5s

redisPath=which redis-cli echo $redisPath if [ -f “$redisPath” ] then while true do echo “检测到您可能已经安装redis,是否先卸载之前版本再进行安装?” read -p “[Y/N],同意选{Y},拒绝选{N}: “ updateRedis case $updateRedis in [yY][eE][sS]|[yY]) echo “redis进行卸载 …” sudo apt-get autoremove —purge redis-server -y echo “redis卸载完成,准备安装 …” sudo apt-get install redis-server -y echo “redis安装完成准备修改配置文件” break ;; [nN][oO]|[nN]) echo “不卸载已存在redis” echo “因为不确定您之前的安装方式,请您根据部署文档进行手动部署.” exit ;; *) echo “输入错误,请重新输入” ;; esac done else echo “检测到redis不存在,准备安装” sleep 5s sudo apt-get install redis-server -y echo “redis安装完成准备修改配置文件” fi sleep 5s

echo “修改redis.conf配置文件” sudo sed -i ‘69s/bind 127.0.0.1 ::1/bind 0.0.0.0/g’ /etc/redis/redis.conf while true do read -p “请设置redis的密码: “ redisPassword read -p “请再次输入redis的密码: “ redisPasswordAgain if [ $redisPassword = $redisPasswordAgain ] then echo “密码设置完成” break else echo “两次输入的密码不相同,请重新输入” fi done sleep 5s

sudo echo “requirepass $redisPassword” >> /etc/redis/redis.conf

主redis添加的配置

while true do read -p “当前安装是主服务器还是从服务器{主服务器选M/从服务器选S}: “ masterOrSlave if [ $masterOrSlave = “M” ] || [ $masterOrSlave = “m” ] then sudo echo “masterauth $redisPassword” >> /etc/redis/redis.conf break elif [ $masterOrSlave = “S” ] || [ $masterOrSlave = “s” ] then read -p “请输入主服务器的ip: “ masterIP sudo echo “slaveof $masterIP 6379” >> /etc/redis/redis.conf read -p “请输入主redis的密码: “ masterPassword sudo echo “masterauth $masterPassword” >> /etc/redis/redis.conf break fi done

echo “redis配置修改完成,重启redis” systemctl restart redis-server echo “redis重启完成” sleep 5s ip_host=ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:" echo “配置本机host,修改/etc/hosts文件”

if grep -w “redis1” /etc/hosts then echo “redis域名地址已配置” break else if [ $masterOrSlave = “M” ] || [ $masterOrSlave = “m” ] then sudo sed -i ‘2 a ‘$ip_host’ edge.loginx.redis1’ /etc/hosts sudo sed -i ‘3 a ‘$ip_host’ redis.host’ /etc/hosts break elif [ $masterOrSlave = “S” ] || [ $masterOrSlave = “s” ] then sudo sed -i ‘2 a ‘$masterIP’ edge.loginx.redis1’ /etc/hosts sudo sed -i ‘3 a ‘$masterIP’ redis.host’ /etc/hosts break fi fi echo “hosts文件修改完成”

——————————————————————————————————————-

currentPath=pwd echo “获取脚本及部署程序所在位置$currentPath” echo “开始部署broker” brokerConfPath=$currentPath/loginx-mqtt-broker/broker.conf echo “修改broker.conf文件” sudo sed -i ‘s/8883/443/g’ $brokerConfPath sudo sed -i ‘s/127.0.0.1:6379/edge.loginx.redis1:6379/g’ $brokerConfPath if [ $masterOrSlave = “M” ] || [ $masterOrSlave = “m” ] then sudo sed -i ‘s/\”password\”:\”\”/\”password\”:”‘$redisPassword’”/g’ $brokerConfPath break elif [ $masterOrSlave = “S” ] || [ $masterOrSlave = “s” ] then sudo sed -i ‘s/\”password\”:\”\”/\”password\”:”‘$masterPassword’”/g’ $brokerConfPath break fi echo “broker.conf修改完成” sudo sh $currentPath/loginx-mqtt-broker/script/install.sh systemctl start loginx-mqtt-broker echo “broker部署完成…” sleep 5s

——————————————————————————————————————-

echo “开始部署platform…” platformConfPath=$currentPath/loginx-edge-platform/conf/conf.properties echo “修改conf.properties”

if [ $masterOrSlave = “M” ] || [ $masterOrSlave = “m” ] then sudo sed -i ‘s/resource.proxy.domain./resource.proxy.domain=http:\/\/‘$ip_host’:${server.port}/g’ $platformConfPath sudo sed -i “s/edge.redis.host./edge.redis.host=”$ip_host”/g” $platformConfPath sudo sed -i “s/edge.redis.password./edge.redis.password=$redisPassword/g” $platformConfPath sudo sed -i “s/REDIS_PASSWORD./REDIS_PASSWORD=$redisPassword/g” $platformConfPath break elif [ $masterOrSlave = “S” ] || [ $masterOrSlave = “s” ] then sudo sed -i ‘s/resource.proxy.domain./resource.proxy.domain=http:\/\/‘$masterIP’:${server.port}/g’ $platformConfPath sudo sed -i “s/edge.redis.host./edge.redis.host=”$masterIP”/g” $platformConfPath sudo sed -i “s/edge.redis.password./edge.redis.password=$masterPassword/g” $platformConfPath sudo sed -i “s/REDIS_PASSWORD./REDIS_PASSWORD=$masterPassword/g” $platformConfPath break fi

echo “配置修改完成,开始注册服务”

注册platform

sudo bash $currentPath/loginx-edge-platform/bin/linux/install.sh echo “开始启动边缘服务” sudo bash $currentPath/loginx-edge-platform/bin/linux/start.sh echo “边缘服务启动完成…” sleep 5s

——————————————————————————————————————-

echo “开始部署gateway…” gatewayPath=$currentPath/loginx-edge-gateway sudo sh $gatewayPath/install.sh echo “配置集群” read -p “请输入集群标识: “ clusterId sudo mkdir -p /root/loginx-edge-gateway/conf sudo chmod -R 777 /root/loginx-edge-gateway/conf echo “cluster.id=$clusterId”>/root/loginx-edge-gateway/conf/conf.properties

启动gateway

sudo sh $gatewayPath/start.sh echo “准备激活loginx-edge-gateway” while true do read -p “请先在iot平台获取注册链接,然后再回来输入链接地址: “ registeUrl if [ -n “$registeUrl” ] then registerUrl=”http://127.0.0.1:7007/activation?url=$registeUrl“ break else echo “输入的url不许为空,请重新输入” fi done

echo $registerUrl

curl $registerUrl -vv echo “loginx-edge-gateway install success …”

查看loginx-mqtt-broker

systemctl status loginx-mqtt-broker

查看loginx-edge-platform

systemctl status loginx-edge-platform

查看loginx-edge-gateway

systemctl status loginx-edge-gateway ```