Odoo 12开发之部署和维护生产实例

本文旨在介绍 Odoo 部署的重要配置和最佳实践,这样系统管理员可以更好地准备 Odoo 服务器主机。通过本文的学习,我们将能创建一个相对安全的 Odoo 服务器,足够应对普通的生产环境使用。本文所述并非部署 Odoo 的唯一方法,其它的方法也会同样适用。

本文主要内容有:

  • 通过源码安装 Odoo,主要包含:
    • 安装依赖
    • 准备一个独立的系统用户
    • 通过源码安装
    • 设置配置文件
    • 多进程
  • 设置 Odoo 为系统服务,主要包含:
    • 创建 systemd 服务
    • 创建自启动或 sysvinit 服务
    • 通过命令行查看 Odoo 服务
  • 设置 Nginx 反向代理
  • 配置HTTPS安全服务, 主要包含 :
    • 创建自签名SSL证书
    • 在 Nginx 上配置 HTTPS访问
    • 缓存静态内容
  • 服务器和模块更新,主要包含:
    • 创建模拟环境
    • 更新 Odoo 源码

 

开发准备

本章无需使用前面开发的代码,相关代码和脚本请见 GitHub 仓库

通过源码安装 Odoo

Odoo 有 Debian 或 Ubuntu的安装包,使用它可以实现工作服务进程以及在系统启动时自动开启服务。安装过程按步骤即可,在https://nightly.odoo.com/上可以找到相关信息。上面还有CentOS的rpm文件以及 Windows 的.exe 安装包。

虽然这样安装 Odoo 很容易也很方便,大多数人倾向于部署和运行版本控制的源码来进行集成。这样能更好地控制部署内容,并且在生产环境中也更易于管理代码的变更和修复。

安装依赖

使用Debian发行版时,默认登录用户为带有管理员权限的 root,这时命令行显示的为#。在Ubuntu系统中,禁用了 root 账号,在安装时配置的初始用户可通过 sudo 来运行 root 权限的命令。首先我们应更新包索引,然后执行升级来确保所有安装的程序是最新的,命令如下:

 

1

2

sudo apt update

sudo apt upgrade -y

下一步,我们将安装PostgreSQL数据库,并让当前用户成为数据库超级用户,命令如下:

 

1

2

sudo apt install postgresql y

sudo su “createuser -s $USER” postgres

我们将通过源码运行 odoo,但在那之前,我们需要安装所需依赖。以下是所需的Debian包:

 

1

2

sudo apt-get install git python3-dev python3-pip –y

sudo apt install build-essential libxslt-dev libzip-dev libldap2-dev libsasl2-dev libssl-dev -y

还应记得安装打印报表所需的wkhtmltox,命令如下:

 

1

2

3

wget “https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.xenial_amd64.deb” O /tmp/wkhtml.deb

sudo dpkg -i /tmp/wkhtml.deb

sudo apt-get -fy install # 处理依赖错误

注意安装包时可能报依赖错误,像这里最一条命令会强制这些依赖的安装并正确完成安装。

 

1

2

3

4

5

6

# 错误信息

dpkg: error processing package wkhtmltox (–install):

dependency problems – leaving unconfigured

Errors were encountered while processing:

wkhtmltox

现在我们就只缺少 Odoo 所需要的 Python 包了,它们大多数都有Debian或Ubuntu系统包。官方Debian安装包使用到这些,可在Odoo 源码debian/control文件中找到这些包名。但是这些 Python 依赖也可以通过PyPI(Python Package Index)直接安装。所要求的包和通常基于 Python 的项目一样在 Odoo 的requirements.txt文件中。我们可以使用如下命令安装这些包:

 

1

2

wget https://raw.githubusercontent.com/odoo/odoo/12.0/requirements.txt

sudo pip3 install -r requirements.txt

在Ubuntu 18.04中,最后一条命令可能会打印了红色的警告,内容是PyYAML 和pySerial的卸载,这在系统中通过包安装了老版本时会发生。这种警告可以安全的略过。

既然我们有了所有的依赖,安装了数据库服务、系统包和 Python 包,我们就可以安装 Odoo 了。

准备独立的系统用户

从安全角度建议使用独立的用户运行 Odoo,这一用户不带有任何系统的特权。为此我们需要创建系统和数据库用户,使用命令如下:

 

1

2

3

sudo adduser –disabled-password —gecos “Odoo” odoo

sudo su “createuser odoo” postgres

createdb –owner=odoo odoo-prod

以上odoo 为用户名,odoo-prod用于运行 Odoo 实例的数据库名。odoo用户成为了odoo-prod数据库的所有者。也就说它对该数据库有创建和删除的权限,包括删除整个数据库的权限。如果你运行的是多租户服务器,应为每个租户创建一个类似 odoo 的指定系统用户。

原创文章,作者:江河,如若转载,请注明出处:http://boke.6ke.com.cn/?p=42205

发表评论

登录后才能评论

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息