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

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


1. 环境准备

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

确保系统是最新的:

bash 复制代码
sudo dnf update -y
1.3 安装基础工具

安装必要的工具和依赖:

bash 复制代码
sudo dnf install -y git wget curl

2. 安装依赖

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

2.1 安装Python 3

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

bash 复制代码
sudo dnf install -y python3 python3-pip
2.2 安装PostgreSQL

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

bash 复制代码
sudo dnf install -y postgresql-server postgresql-contrib

初始化PostgreSQL并启动服务:

bash 复制代码
sudo postgresql-setup --initdb
sudo systemctl start postgresql
sudo systemctl enable postgresql

创建MES数据库用户:

bash 复制代码
sudo -u postgres createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt mesuser
2.3 安装其他依赖

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

bash 复制代码
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源码:

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

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

bash 复制代码
python3 -m venv /opt/odoo/venv
source /opt/odoo/venv/bin/activate
4.3 安装Python依赖

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

bash 复制代码
pip install -r /opt/odoo/requirements.txt
4.4 配置Odoo

创建Odoo配置文件:

bash 复制代码
sudo mkdir /etc/odoo
sudo nano /etc/odoo/odoo.conf

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

ini 复制代码
[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日志和数据目录并设置权限:

bash 复制代码
sudo mkdir /var/log/odoo
sudo mkdir /var/lib/odoo
sudo chown -R odoo:odoo /var/log/odoo /var/lib/odoo
4.6 创建系统服务

创建Systemd服务文件:

bash 复制代码
sudo nano /etc/systemd/system/odoo.service

添加以下内容:

ini 复制代码
[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服务:

bash 复制代码
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支持:

bash 复制代码
sudo dnf install -y nginx
sudo nano /etc/nginx/conf.d/odoo.conf

添加以下内容:

nginx 复制代码
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:

bash 复制代码
sudo systemctl restart nginx
7.2 定期备份

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

bash 复制代码
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功能(如质量管理、设备维护)。

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

相关推荐
每天题库20 分钟前
危险货物道路运输从业资格证题库刷题重点与错题梳理
学习·安全·考试·题库·考证
m4Rk_43 分钟前
【论文阅读】Agent 记忆机制(86):Skill-Pro——用 Non-Parametric PPO 将交互经验演化为可复用技能
论文阅读·人工智能·学习·开源·github
AOI小白新手上路1 小时前
从 Keil 调试视角看 51 指针,到 Cortex-M 内存映射访问寄存器 · 学习笔记
笔记·学习
shdkfbbv1 小时前
【无标题】
linux·运维·服务器
Joe_Wang51 小时前
【从0到1学习JVM · 15】对象在堆里来回倒腾,究竟怎样才会进老年代?
java·jvm·学习·垃圾回收
周洲08302 小时前
STM32片内Flash读写深度详解|掉电参数保存、底层原理
linux·前端·stm32
对象存储与RustFS2 小时前
升级 RustFS 二进制不停机:一条一条换,留一条退路
后端·rust·开源
shimly1234562 小时前
比 find + grep 更好用的 nm + addr2line
linux
迷途之人不知返2 小时前
【进程控制】-3-进程等待
linux
_upupup3 小时前
包管理器和vim
linux·服务器