当前位置: 首页 > news >正文

OpenEuler学习笔记(二十三):在OpenEuler上部署开源MES系统

在这里插入图片描述

在OpenEuler上部署小企业开源MES(制造执行系统,Manufacturing Execution System)是一个非常有价值的项目,可以帮助企业实现生产过程的数字化管理。以下是基于开源MES系统(如 Odoo MESOpenMES)的部署步骤。
在这里插入图片描述


1. 环境准备

1.1 系统要求
  • 操作系统:OpenEuler 20.03 LTS 或更高版本。
  • 硬件:建议至少4核CPU、8GB内存、50GB存储。
  • 网络:确保服务器可以访问互联网。
1.2 更新系统

确保系统是最新的:

sudo dnf update -y
1.3 安装基础工具

安装必要的工具和依赖:

sudo dnf install -y git wget curl

2. 安装依赖

MES系统通常需要数据库(如PostgreSQL)、Python环境和Web服务器(如Nginx)。

2.1 安装Python 3

OpenEuler默认可能已经安装了Python 3,如果没有,可以手动安装:

sudo dnf install -y python3 python3-pip
2.2 安装PostgreSQL

MES系统通常使用PostgreSQL作为数据库后端:

sudo dnf install -y postgresql-server postgresql-contrib

初始化PostgreSQL并启动服务:

sudo postgresql-setup --initdb
sudo systemctl start postgresql
sudo systemctl enable postgresql

创建MES数据库用户:

sudo -u postgres createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt mesuser
2.3 安装其他依赖

安装MES系统所需的系统依赖:

sudo dnf install -y libxslt-devel libxml2-devel libjpeg-devel libopenjp2-7-devel zlib-devel libpq-devel

3. 选择开源MES系统

以下是两个常见的开源MES系统:

  1. Odoo MES:基于Odoo的MES模块,适合中小企业。
  2. OpenMES:一个轻量级的开源MES系统。

以下以 Odoo MES 为例进行部署。


4. 部署Odoo MES

4.1 下载Odoo源码

从GitHub下载Odoo源码:

git clone https://github.com/odoo/odoo.git --depth 1 --branch 16.0 --single-branch /opt/odoo
4.2 创建虚拟环境

为Odoo创建一个Python虚拟环境:

python3 -m venv /opt/odoo/venv
source /opt/odoo/venv/bin/activate
4.3 安装Python依赖

在虚拟环境中安装Odoo所需的Python包:

pip install -r /opt/odoo/requirements.txt
4.4 配置Odoo

创建Odoo配置文件:

sudo mkdir /etc/odoo
sudo nano /etc/odoo/odoo.conf

在配置文件中添加以下内容:

[options]
; 数据库配置
db_host = localhost
db_port = 5432
db_user = mesuser
db_password = your_password
db_name = mesdb; Odoo服务配置
addons_path = /opt/odoo/addons
data_dir = /var/lib/odoo
logfile = /var/log/odoo/odoo.log
log_level = info; HTTP服务配置
http_port = 8069
4.5 创建日志和数据目录

创建Odoo日志和数据目录并设置权限:

sudo mkdir /var/log/odoo
sudo mkdir /var/lib/odoo
sudo chown -R odoo:odoo /var/log/odoo /var/lib/odoo
4.6 创建系统服务

创建Systemd服务文件:

sudo nano /etc/systemd/system/odoo.service

添加以下内容:

[Unit]
Description=Odoo
After=postgresql.service[Service]
Type=simple
User=odoo
Group=odoo
ExecStart=/opt/odoo/venv/bin/python3 /opt/odoo/odoo-bin -c /etc/odoo/odoo.conf
Restart=on-failure[Install]
WantedBy=multi-user.target

启动并启用Odoo服务:

sudo systemctl daemon-reload
sudo systemctl start odoo
sudo systemctl enable odoo

5. 安装MES模块

  1. 访问Odoo的Web界面:
    http://<your-server-ip>:8069
    
  2. 创建数据库并登录。
  3. 在应用商店中搜索并安装 MES 模块。

6. 配置MES系统

根据企业的生产流程配置MES模块:

  • 定义生产线和工作中心。
  • 配置生产订单和工单。
  • 设置物料清单(BOM)和工艺路线。
  • 集成条码扫描或RFID设备(可选)。

7. 优化与维护

7.1 配置Nginx反向代理(可选)

使用Nginx作为反向代理,提供HTTPS支持:

sudo dnf install -y nginx
sudo nano /etc/nginx/conf.d/odoo.conf

添加以下内容:

server {listen 80;server_name your_domain.com;location / {proxy_pass http://127.0.0.1:8069;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}

重启Nginx:

sudo systemctl restart nginx
7.2 定期备份

定期备份数据库和Odoo数据目录:

sudo -u postgres pg_dump mesdb > /backup/mesdb_$(date +%F).sql
sudo tar -czvf /backup/odoo_data_$(date +%F).tar.gz /var/lib/odoo

8. 常见问题排查

  • 数据库连接失败:检查PostgreSQL服务是否运行,以及odoo.conf中的数据库配置是否正确。
  • 权限问题:确保Odoo用户对相关目录有读写权限。
  • 日志查看:查看/var/log/odoo/odoo.log以获取错误信息。

总结

通过以上步骤,你可以在OpenEuler上成功部署开源MES系统,为小企业提供生产管理支持。根据企业需求,你可以进一步扩展和优化系统,例如:

  • 集成企业现有系统(如ERP、SCADA)。
  • 配置自动化数据采集(如PLC、传感器)。
  • 扩展MES功能(如质量管理、设备维护)。

如果有更具体的需求或问题,可以进一步讨论!

相关文章:

OpenEuler学习笔记(二十三):在OpenEuler上部署开源MES系统

在OpenEuler上部署小企业开源MES&#xff08;制造执行系统&#xff0c;Manufacturing Execution System&#xff09;是一个非常有价值的项目&#xff0c;可以帮助企业实现生产过程的数字化管理。以下是基于开源MES系统&#xff08;如 Odoo MES 或 OpenMES&#xff09;的部署步骤…...

SpringSecurity:授权服务器与客户端应用(入门案例)

文章目录 一、需求概述二、基本授权登录功能实现1、授权服务器开发2、客户端开发3、功能测试 三、自定义授权服务器登录页1、授权服务器开发2、功能测试 四、自定义授权服务器授权页1、授权服务器开发2、功能测试 五、客户端信息保存数据库1、授权服务器开发2、功能测试 一、需…...

没用的文章又➕1

次次登陆GitHub都让我抓心挠肝&#xff0c;用了热度最高的法子也不抵事儿。谁说github上全是大神了&#xff0c;也要有我这样的小菜鸟。下面是我的失败记录… 查询目标网站的DNS 在whois上输入目标网站github.com&#xff0c;在查询结果当中选取任意一个DNS将地址和名称添加在…...

BiGRU双向门控循环单元多变量多步预测,光伏功率预测(Matlab完整源码和数据)

代码地址&#xff1a;BiGRU双向门控循环单元多变量多步预测&#xff0c;光伏功率预测&#xff08;Matlab完整源码和数据) BiGRU双向门控循环单元多变量多步预测&#xff0c;光伏功率预测 一、引言 1.1、研究背景和意义 随着全球对可再生能源需求的不断增长&#xff0c;光伏…...

谷歌浏览器多开指南:如何完成独立IP隔离?

对于跨境电商来说&#xff0c;在进行社交媒体营销、广告投放等业务活动时&#xff0c;往往需要同时登录多个账号来提高运营效率和提升营销效果。然而&#xff0c;如果这些账号共享相同的 IP 地址&#xff0c;很容易被平台检测为关联账号&#xff0c;进而触发安全验证甚至封禁。…...

Django开发入门 – 3.用Django创建一个Web项目

Django开发入门 – 3.用Django创建一个Web项目 Build A Web Based Project With Django By JacksonML 本文简要介绍如何利用最新版Python 3.13.2来搭建Django环境&#xff0c;以及创建第一个Django Web应用项目&#xff0c;并能够运行Django Web服务器。 创建该Django项目需…...

【Java】多线程和高并发编程(三):锁(下)深入ReentrantReadWriteLock

文章目录 4、深入ReentrantReadWriteLock4.1 为什么要出现读写锁4.2 读写锁的实现原理4.3 写锁分析4.3.1 写锁加锁流程概述4.3.2 写锁加锁源码分析4.3.3 写锁释放锁流程概述&释放锁源码 4.4 读锁分析4.4.1 读锁加锁流程概述4.4.1.1 基础读锁流程4.4.1.2 读锁重入流程4.4.1.…...

讲解ES6中的变量和对象的解构赋值

在 ES6 中&#xff0c;解构赋值是一种非常方便的语法&#xff0c;它使得从数组或对象中提取值变得更加简洁和直观。解构赋值支持变量赋值&#xff0c;可以通过单独提取数组或对象的元素来赋值给变量。 下面我将分别讲解 数组解构 和 对象解构 的基本用法和一些高级特性。 1. …...

DeepSeek Coder + IDEA 辅助开发工具

开发者工具 我之前用的是Codegeex4模型&#xff0c;现在写一款DeepSeek Coder 本地模型 DeepSeek为什么火&#xff0c;我在网上看到一个段子下棋DeepSeek用兵法赢了ChatGpt&#xff0c;而没有用技术赢&#xff0c;这就是AI的思维推理&#xff0c;深入理解孙子兵法&#xff0c…...

云计算——AWS Solutions Architect – Associate(saa)4.安全组和NACL

安全组一充当虚拟防火墙对于关联实例&#xff0c;在实例级别控制入站和出站流量。 网络访问控制列表(NACL)一充当防火墙关联子网&#xff0c;在子网级别控制入站和出站流量。 在专有网络中&#xff0c;安全组和网络ACL(NACL)一起帮助构建分层网络防御。 安全组在实例级别操作…...

动量+均线组合策略关键点

动量均线组合策略关键点&#xff1a; 趋势确认&#xff1a; MA系统判断主趋势方向动量指标判断趋势强度 入场条件&#xff1a; 价格站上重要均线(如20日线)动量指标向上并保持高位短期均线上穿长期均线 出场条件&#xff1a; 价格跌破均线系统动量指标见顶回落短期均线下…...

Blazor-<select>

今天我们来说说<select>标签的用法&#xff0c;我们还是从一个示例代码开始 page "/demoPage" rendermode InteractiveAuto inject ILogger<InjectPage> logger; <h3>demoPage</h3> <select multiple>foreach (var item in list){<…...

Synchronized使用

文章目录 synchronized使用基本概念使用方法实现原理锁的粒度并发编程注意事项与Lock锁对比比较线程安全性与性能 synchronized使用 当涉及到多线程编程时&#xff0c;保证数据的正确性和一致性是至关重要的。而synchronized关键字是Java语言中最基本的同步机制之一&#xff0…...

OpenStack四种创建虚拟机的方式

实例&#xff08;Instances&#xff09;是在云内部运行的虚拟机。您可以从以下来源启动实例&#xff1a; 一、上传到镜像服务的镜像&#xff08;Image&#xff09; 使用已上传到镜像服务的镜像来启动实例。 二、复制到持久化卷的镜像&#xff08;Volume&#xff09; 使用已…...

Expo运行模拟器失败错误解决(xcrun simctl )

根据你的描述&#xff0c;问题主要涉及两个方面&#xff1a;xcrun simctl 错误和 Expo 依赖版本不兼容。以下是针对这两个问题的解决方案&#xff1a; 解决 xcrun simctl 错误 错误代码 72 通常表明 simctl 工具未正确配置或路径未正确设置。以下是解决步骤&#xff1a; 确保 …...

Docker从入门到精通- 容器化技术全解析

第一章&#xff1a;Docker 入门 一、什么是 Docker&#xff1f; Docker 就像一个超级厉害的 “打包神器”。它能帮咱们把应用程序和它运行所需要的东东都整整齐齐地打包到一起&#xff0c;形成一个独立的小盒子&#xff0c;这个小盒子在 Docker 里叫容器。以前呢&#xff0c;…...

开启对话式智能分析新纪元——Wyn商业智能 BI 携手Deepseek 驱动数据分析变革

2月18号&#xff0c;Wyn 商业智能 V8.0Update1 版本将重磅推出对话式智能分析&#xff0c;集成Deepseek R1大模型&#xff0c;通过AI技术的深度融合&#xff0c;致力于打造"会思考的BI系统"&#xff0c;让数据价值触手可及&#xff0c;助力企业实现从数据洞察到决策执…...

RabbitMQ 消息顺序性保证

方式一&#xff1a;Consumer设置exclusive 注意条件 作用于basic.consume不支持quorum queue 当同时有A、B两个消费者调用basic.consume方法消费&#xff0c;并将exclusive设置为true时&#xff0c;第二个消费者会抛出异常&#xff1a; com.rabbitmq.client.AlreadyClosedEx…...

防御保护作业二

拓扑图 需求 需求一&#xff1a; 需求二&#xff1a; 需求三&#xff1a; 需求四&#xff1a; 需求五&#xff1a; 需求六&#xff1a; 需求七&#xff1a; 需求分析 1.按照要求进行设备IP地址的配置 2.在FW上开启DHCP功能&#xff0c;并配置不同的全局地址池&#xff0c;为…...

Spring Boot中实现多租户架构

文章目录 Spring Boot中实现多租户架构多租户架构概述核心思想多租户的三种模式优势挑战租户识别机制1. 租户标识(Tenant Identifier)2. 常见的租户识别方式3. 实现租户识别的关键点4. 租户识别示例代码5. 租户识别机制的挑战数据库隔离的实现1. 数据库隔离的核心目标2. 数据…...

【AI-27】DPO和PPO的区别

DPO&#xff08;Direct Preference Optimization&#xff09;和 PPO&#xff08;Proximal Policy Optimization&#xff09;有以下区别&#xff1a; 核心原理 DPO&#xff1a;基于用户偏好或人类反馈直接优化&#xff0c;核心是对比学习或根据偏好数据调整策略&#xff0c;将…...

Git stash 暂存你的更改(隐藏存储)

一、Git Stash 概述 在开发的时候经常会遇到切换分支时需要你存储当前的更改&#xff0c;如果你暂时不想应用当前更改也不想放弃更改&#xff0c;那么你可以使用 git stash先将其隐藏存储&#xff0c;这样代码就会变成未修改的状态&#xff0c;等解决其他问题后&#xff0c;在…...

负载测试和压力测试的原理分别是什么

负载测试和压力测试是性能测试的两种主要类型&#xff0c;它们的原理和应用场景有所不同。 负载测试&#xff08;Load Testing&#xff09; 原理&#xff1a; 负载测试通过模拟实际用户行为&#xff0c;逐步增加系统负载&#xff0c;观察系统在不同负载下的表现。目的是评估系…...

shell脚本控制——定时运行作业

在使用脚本时&#xff0c;你也许希望脚本能在以后某个你无法亲临现场的时候运行。Linux系统提供了多个在预选时间运行脚本的方法&#xff1a;at命令、cron表以及anacron。每种方法都使用不同的技术来安排脚本的运行时间和频率。接下来将依次介绍这些方法。 1.使用at命令调度作…...

LeetCode 热题 100 回顾

目录 一、哈希部分 1.两数之和 &#xff08;简单&#xff09; 2.字母异位词分组 &#xff08;中等&#xff09; 3.最长连续序列 &#xff08;中等&#xff09; 二、双指针部分 4.移动零 &#xff08;简单&#xff09; 5.盛最多水的容器 &#xff08;中等&#xff09; 6…...

HTML5--网页前端编程(上)

HTML5–网页前端编程(上) 1.网页 (1)网站是根据一定的规则,使用html制作的相关的网页的集合。 网页是网站上的一页,通常是html格式的文件,他要通过浏览器来阅读。网页是网站的基本元素,由图片链接声音文字等元素造成,以.html或.htm后缀结尾的文件称为html文件。 (2…...

气体控制器联动风机,检测到环境出现异常时自动打开风机进行排风;

一、功能&#xff1a;检测到环境出现异常时自动打开风机进行排风&#xff1b; 二、设备&#xff1a; 1.气体控制器主机&#xff1a;温湿度&#xff0c;TVOC等探头的主机&#xff0c;可上报数据&#xff0c;探头监测到异常时&#xff0c;主机会监测到异常可联动风机或声光报警…...

示波器使用指南

耦合方式 在示波器中&#xff0c;耦合方式决定了信号源与示波器输入之间的信号传输方式。具体来说&#xff0c;直流耦合、交流耦合和接地耦合这三种方式有不同的工作原理和应用场景&#xff0c;下面是它们的差异&#xff1a; 1. 直流耦合&#xff08;DC Coupling&#xff09;…...

Post-trained猜想

强化 -- 输出Action 真实的避障 ActionCond 输入Action 生成视频 原来只是仿真 没有和整个的机器人系统结合 gym生成视频 不需要后处理 obersation...

javaEE-10.CSS入门

目录 一.什么是CSS ​编辑二.语法规则: 三.使用方式 1.行内样式: 2.内部样式: 3.外部样式: 空格规范 : 四.CSS选择器类型 1.标签选择器 2.类选择器 3.ID选择器 4.通配符选择器 5.复合选择器 五.常用的CSS样式 1.color:设置字体颜色 2.font-size:设置字体大小 3…...