当前位置: 首页 > 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. 数据…...

3步搭建PP-DocLayoutV3服务:快速体验文档版面分析的强大能力

3步搭建PP-DocLayoutV3服务&#xff1a;快速体验文档版面分析的强大能力 1. 引言&#xff1a;文档版面分析的价值 在日常工作中&#xff0c;我们经常需要处理各种文档——合同、论文、报告、书籍等。传统OCR技术虽然能识别文字&#xff0c;但往往无法理解文档的结构&#xff…...

SPIRAN ART SUMMONER图像生成前端展示效果优化技巧

SPIRAN ART SUMMONER图像生成前端展示效果优化技巧 1. 引言 你有没有遇到过这种情况&#xff1a;用SPIRAN ART SUMMONER生成了超棒的图片&#xff0c;但在网站上展示时却加载缓慢&#xff0c;用户还没看到效果就流失了&#xff1f;或者图片显示不完整&#xff0c;影响了整体的…...

YOLO-v8.3实战:用AI识别图片中的物体,5分钟完成你的第一个检测项目

YOLO-v8.3实战&#xff1a;用AI识别图片中的物体&#xff0c;5分钟完成你的第一个检测项目 你是否曾经好奇&#xff0c;那些能自动识别照片中物体的人工智能是如何工作的&#xff1f;想象一下&#xff0c;你拍了一张街景照片&#xff0c;AI不仅能告诉你照片里有汽车、行人和红…...

5分钟搞定OpenCV摄像头实时监控(附Jupyter避坑指南)

5分钟搞定OpenCV摄像头实时监控&#xff08;附Jupyter避坑指南&#xff09; 在计算机视觉领域&#xff0c;实时摄像头监控是最基础也最实用的功能之一。无论是安防监控、人脸识别还是简单的视频采集&#xff0c;OpenCV都提供了简洁高效的接口。但对于Python初学者和Jupyter Not…...

基于PostGIS与SpringBoot构建高性能动态MVT矢量瓦片服务

1. 为什么需要动态矢量瓦片服务 第一次接触矢量瓦片是在2018年做智慧城市项目时&#xff0c;当时前端同事抱怨加载行政区划数据太慢。一个省级行政区划的GeoJSON文件大小超过10MB&#xff0c;每次打开网页都要等半天。后来尝试了Mapbox的矢量瓦片方案&#xff0c;加载速度直接提…...

终端里的“皇帝新衣”:扒开 Claude Code 的源码,我看到了 Agent 的求生欲

下午三点&#xff0c;阳光斜着打在机械键盘的侧边&#xff0c;你刚解决完一个诡异的内存溢出&#xff0c;正打算接杯咖啡。 顺手更新了 Anthropic 刚发布的 Claude Code&#xff0c;这个号称能直接在终端里帮你写代码、改 bug、跑测试的“神级工具”。 [外链图片转存中…(img…...

告别pip install失败:手把手教你用Anaconda虚拟环境快速部署Mayavi(Python 3.9亲测)

告别pip install失败&#xff1a;手把手教你用Anaconda虚拟环境快速部署Mayavi&#xff08;Python 3.9亲测&#xff09; 科学计算和三维可视化是Python生态中的重要应用场景&#xff0c;而Mayavi作为一款强大的三维数据可视化库&#xff0c;在流体力学、医学影像、地质勘探等领…...

CanFestival主站PDO配置避坑指南:以Kinco FD伺服的速度/位置模式控制为例

CanFestival主站PDO配置实战&#xff1a;从零解析Kinco FD伺服双模式控制 当你在深夜的实验室里盯着屏幕上闪烁的CAN报文&#xff0c;却发现伺服电机对控制指令毫无反应时&#xff0c;那种挫败感每个工控开发者都深有体会。本文将带你穿透CanFestival主站配置的迷雾&#xff0c…...

Mathtype公式识别:Magma多模态AI在教育领域的应用

Mathtype公式识别&#xff1a;Magma多模态AI在教育领域的应用 1. 引言 作为一名长期关注AI技术发展的从业者&#xff0c;我最近在测试微软开源的Magma多模态模型时&#xff0c;发现了一个特别有意思的应用场景——数学公式识别与处理。想象一下这样的场景&#xff1a;老师批改…...

抖音下载器技术解析:突破平台限制的高效内容获取方案

抖音下载器技术解析&#xff1a;突破平台限制的高效内容获取方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppor…...