### 平安电器更新 #### 一.打包 ##### 1。选择相应的项目打包 选择相应的项目,点击右键选择打包,然后相应的打包配置如下: ![](./PackagConfig.png) 点击发布后等待程序打包完成,然后点击导航进入打包后的文件,按照时间顺序排序选择刚刚打包完成的文件,具体图片如下: ![](./SelectPackage.png) 注意:此处不要忘记引入的项目是否更改,引入项的更改必须找到对应的引入项目的.dll文件一并选择。 #### 二.登录生产或测试环境 ##### 1。登录 双击 华为云.tlp或平安电气.tlp 文件,进入以下页面 ![](./login.png) 点击Log in登录,进入如下页面: ![](./ServerControl.png) 点击目录选项,进入到目录中,选到项目的目录中 平安的api在:/workspace/www/pingan-iot(测试)/workspace/www/pingan-iot/api(开发) 平安的定时任务在:/workspace/www/jobs(开发)/workspace/www/jobs(测试) 平安的MQTT在:/workspace/www/mqtt(开发)/workspace/www/mqtt(测试) #### 三.备份文件和发布项目 打卡控制台, ``` 压缩: tar -cvf [文件名].tar [文件目录] //打包成.tar文件 tar -jcvf [文件名].tar.bz2 [文件目录] //打包成.bz2文件 tar -zcvf [文件名].tar.gz [文件目录] //打包成.gz文件 解压缩: tar -xvf [文件名].tar //解压到当前文件 tar -xvf [文件名].tar -C [文件目录] //将.tar文件解压到指定目录 tar -jxvf [文件名].tar.bz2 -C [文件目录] //解压.bz2文件到指定目录 tar -zxvf [文件名].tar.gz -C [文件目录] //解压.gz文件到指定目录 创建目录: a、mkdir test 在当前目录下创建一个名为test的目录 b、mkdir test1 test2 同时创建两个目录 c、mkdir ./test/test3 在指定目录下创建一个名为test的目录 创建文件: a、touch test001.txt 创建一个test001.txt的空文件 b、touch test002 创建一个test002的空文件 c、touch ./test3/test003.txt 在指定目录下创建一个test003.txt的空文件 将一个文件夹下的所有内容复制到另一个文件夹下: cp -r home/packageA/* home/cp/packageB/(相对地址) 或 cp -r home/packageA/. home/cp/packageB/(相对地址) 这两种方法效果是一样的。 删除一个文件夹及其下面的所有文件: rm -rf /home/packageA(绝对地址) -r表示向下递归,不管有多少级目录,一并删除 -f表示直接强行删除,不作任何提示的意思 ``` liunx压缩目录命令,上面为相对地址切记要到目录所在的位置输入指令。 将选择的文件放到程序的目录下覆盖,然后重启docker容器。docker命令如下: ``` docker ps -a //查看所有的容器,不带a查看在运行中的容器 docker stop [OPTIONS] CONTAINER [CONTAINER...]//停止容器的命令。[OPTIONS]:可选参数,用于配置停止过程,如超时时间等。CONTAINER [CONTAINER...]要停止的容器名称或ID 。 docker start [OPTIONS] CONTAINER [CONTAINER...]//启动容器的命令。[OPTIONS]:可选参数,用于配置启动过程,如守护模式等。CONTAINER [CONTAINER...]要启动的容器名称或ID。 docker restart [OPTIONS] CONTAINER [CONTAINER...]//重启容器的命令。[OPTIONS]:可选参数,用于配置重启过程,如超时时间等。CONTAINER [CONTAINER...]要重启的容器名称或ID。 docker kill [OPTIONS] CONTAINER [CONTAINER...]//终止容器的命令。[OPTIONS]:可选参数,用于配置终止过程,如信号等。CONTAINER [CONTAINER...]要终止的容器名称或ID。 docker logs [OPTIONS] CONTAINER //查看容器日志的命令。[OPTIONS]:可选参数,用于配置输出结果,如时间戳等。CONTAINER [CONTAINER...]要查看日志的容器名称或ID。例子:docker logs --tail=100 jobs -t(-t为加上时间,--tail=100为最近的100行日志) docker inspect [OPTIONS] NAME|ID [NAME|ID...]获取详细信息的命令。与上面类似 docker build [OPTIONS] PATH | URL | - 构建镜像的命令。[OPTIONS]:可选参数,用于配置构建过程,如镜像标签、构建上下文路径等。PATH | URL | -:Dockerfile所在的路径、URL或者使用标准输入作为Dockerfile。 使用docker create命令新建的容器处于停止状态,可以使用docker start 命令来启动。 ``` 重启docker后查看docker日志无报错,则发布完成,然后登录相应的服务器https://pa-iot.yinghuasoft.com/(测试)https://ypt.sdpadq.com/(开发)账号 :admin,密码:mick730. 以上为发布的内容。 #### 以下为个人的注意事项: 123.249.108.39为测试的IP地址,114.215.110.136为生产的IP地址。 appsettings.json生产的平安iot配置文件,其他的平安项目与其类似 ``` { 数据库和redis配置 "ConnectionStrings": { 测试数据库连接地址: //"DefaultConnection": "Host=yinghuasoft.com;Port=5431;Database=pingan-iot;Username=postgres;Password=yhsoft@ecs;Pooling=true", 内网生产的数据库连接地址: //"DefaultConnection": "Host=172.19.30.168;Port=5432;Database=pingan-iot-db;Username=postgres;Password=Pingan@ecs;Pooling=true;CommandTimeout=300;KeepAlive=300", 内网新生产的数据库: //"DefaultConnection": "Host=172.19.30.168;Port=5432;Database=pingan-iot-dbnew;Username=postgres;Password=Pingan@ecs;Pooling=true;CommandTimeout=300;KeepAlive=300", 外网老生产的连接地址: // "DefaultConnection": "Host=172.19.30.169;Port=5430;Database=pingan-iot;Username=postgres;Password=Pingan@ecs;Pooling=true;CommandTimeout=300;KeepAlive=300", 外网新的连接地址(写文档直到现在的最新开发数据库连接地址): "DefaultConnection": "Host=172.19.30.169;Port=5430;Database=pingan-iot-db;Username=postgres;Password=Pingan@ecs;Pooling=true;CommandTimeout=300;KeepAlive=300", 内网的redis连接地址: "RedisConnection": "172.19.30.168:6379,ssl=false,password=rapid.app,allowAdmin=true" }, 日志记录级别为:默认、系统、Microsoft、Microsoft.AspNetCore为Warning,PAIoT为Information "Logging": { "LogLevel": { "Default": "Warning", "System": "Warning", "Microsoft": "Warning", "Microsoft.AspNetCore": "Warning", "PAIoT": "Information" } }, 允许的主机为 "AllowedHosts": "*", 跨域资源共享(CORS)允许的来源为 "CorsOrigins": "*", 安全密钥为 "SecurityKey": "rapidapp", AES加密选项为:默认密码短语为"@=padq-yfb-%d-xx",默认盐为"pingaiot",初始化向量为"jkE49230Tf093b42" "AESEncryptionOptions": { "DefaultPassPhrase": "@=padq-yfb-%d-xx", "DefaultSalt": "pingaiot", "InitVector": "jkE49230Tf093b42" }, JWT身份验证启用,安全密钥为"rapid_C421AAEE0D114E9CGZ041HLL4IM8EF47E2E730CACA",发行者为"devaid",受众为"rapid" "Authentication": { "JwtBearer": { "IsEnabled": "true", "SecurityKey": "rapid_C421AAEE0D114E9CGZ041HLL4IM8EF47E2E730CACA", "Issuer": "devaid", "Audience": "rapid" } }, 静态文件目标为本地,域为"https://pds.yinghuasoft.com/" "StaticFiles": { "Target": "local", "Domain": "https://pds.yinghuasoft.com/", //oss:"https://pds.yinghuasoft.com/",local: 应用程序服务器:"/",本地文件服务器:"http://192.168.3.7:8181/" "ContentType": { ".jpg": "image/jpeg", ".png": "image/png", ".psd": "image/vnd.adobe.photoshop", ".mp3": "audio/mpeg", ".3mf": "model/3mf", ".3ds": "image/x-3ds", ".fbx": "model/vnd.collada", ".gltf": "model/gltf+json", ".obj": "application/x-tgif", ".glb": "model/gltf-binary", ".pdf": "application/pdf", ".dwg": "image/vnd.dwg", ".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", ".css": "text/css" } }, 阿里云 "Aliyun": { "AccessKeyId": "", "AccessKeySecret": "", "Oss": { "AccessKeyId": "", "AccessKeySecret": "", "Endpoint": "oss-cn-qingdao.aliyuncs.com", "BucketName": "devaid", "Domain": "http://devaid.oss-cn-qingdao.aliyuncs.com", "CallbackServer": "" }, 阿里云短信签名 "Sms": { "AccessKeyId": "LTAI5tFV98kvRkKFwQvgBUgU", "AccessKeySecret": "8YFLCUtQ2Wbv4oIblYTVchaSdq4Sor", "SignName": "平安电气" }, 阿里云VMS相关信息 "Vms": { "AccessKeyId": "LTAI5tFV98kvRkKFwQvgBUgU", "AccessKeySecret": "8YFLCUtQ2Wbv4oIblYTVchaSdq4Sor", "ResourceOwnerAccount": "", "ResourceOwnerId": "", "CalledShowNumber": "" }, 阿里云NLS相关信息 "Nls": { "AccessKeyId": "LTAI5tFV98kvRkKFwQvgBUgU", "AccessKeySecret": "8YFLCUtQ2Wbv4oIblYTVchaSdq4Sor", "Action": "CreateToken", "Version": "2019-02-28", "Format": "JSON", "RegionId": "cn-shanghai", "SignatureMethod": "HMAC-SHA1", "SignatureVersion": "1.0", "AppKey": "Xn69e9KYJQPvGfTu" } }, 上传目标为本地,域为"http://114.215.110.136" "Upload": { "Target": "local", "Domain": "http://114.215.110.136" }, MqttBroker主机为"172.19.30.168",端口为1883 "MqttBroker": { "Host": "172.19.30.168", //"Host": "127.0.0.1", "Port": 1883, "UserName": "", "Password": "" }, RabbitMQ设置:主机名为"172.19.30.168",端口为5672,虚拟主机为"MyRabbitMq",用户名为"root",密码为"paiot" "RabbitMQSet": { //"HostName": "127.0.0.1", "HostName": "172.19.30.168", "Port": 5672, "VirtualHost": "MyRabbitMq", "UserName": "root", "Password": "paiot" }, ES索引为"paiot",URL为"http://localhost:9200" "ES": { "Index": "paiot", "Url": "http://localhost:9200" }, 微信小程序AppID为"wxedd0f049a5e63e8c",AppSecret为"bb885c7e60039ebb076f902cfea6c77b" 微信公众号为"wx7329c415fab07e39",小程序ID为"wxedd0f049a5e63e8c" "Wechat": { "Accounts": [ { //小程序:平安电器 "AppID": "wxedd0f049a5e63e8c", "AppSecret": "bb885c7e60039ebb076f902cfea6c77b" } ], "OfficialAccount": "wx7329c415fab07e39", "MiniProgram": "wxedd0f049a5e63e8c" }, Redis数据库为3 "RedisDb": 3, Elasticsearch URI为"http://127.0.0.1:9200",索引名称为"realtimedata" "Elasticsearch": { "Uri": "http://127.0.0.1:9200", "IndexName": "realtimedata" //"Username": "elastic", //"Password": "wISyIqQMcHA1_g0r3CJF", //"CertificateFingerprint": "D14A46DD3CB0925401964689B58750F4DC48155294A74A56BF395841C5DF6E90" } } ```