1. 说明
Odoo是python语言开发的一个开源的ERP系统。
目前,我们工作中用到的也只有休假这一个模块。
2. 原服务情况
- 服务
- Odoo v10.0_20170303
- postgresql v9.2
- 目录
- /usr/lib/python2.7/site-packages/odoo #Odoo运行的所有服务端代码存放位置
- /var/lib/odoo #Odoo的数据存储位置
- /etc/odoo/odoo.conf #Odoo的服务端配置文件
- OS
- CentOS 7.2
3. 备份
大致了解了原服务器的大致信息后,我们就开始备份数据。有一点很重要,我们为了确保数据的完整,一定要先停掉服务,然后再做备份的操作。
- Odoo
/var/lib/odoo
目录下有三个目录addons
、filestore
、sessions
。addons目录默认是空的,实际的文件都在/usr/lib/python2.7/site-package/odoo/addons
这个目录下面的。filestore是Odoo用来存放附件的目录,这个必须做一个备份才行。sessions是Odoo用来存放用户会话信息的目录,对于迁移后的新服务器来说没什么用,所以不需要做备份。
~]# tar zcvf Odoo_install.tar.gz /usr/lib/python2.7/site-packages/odoo /usr/lib/python2.7/site-packages/odooodoo-10.0_20170303-py2.7.egg-info #备份python程序部分
~]# tar zcfv Odoo_alldata.tar.gz /var/lib/odoo/filestore/oadbadmin #备份Odoo数据部分的附件部分
- Postgresql
~]$ pg_dump -U postgres oadbdmin -f Odoo_postgres_data.sql #备份postgresql数据
4. Odoo及postgresql安装
原来的数据都备份完成了,接下来我们就要开始新服务器的部署配置工作了。我们先列出来Odoo对硬件的要求。从官方文档中没找到,但是官方论坛里面有人贴出来了,链接地址:https://www.odoo.com/zh_CN/forum/help-1/question/server-requirements-121217,我把内容也贴出来吧。
Minimum Server Specification:
Processor = Intel (64 bit)
Number of Processors = 1
Processor Core available = 6
Memory = 8 Gigabyte
OS = Ubuntu 14.04 LTSRecommended server:
Processor = Intel (64 bit)
Number of Processors = 2
Processor core available = 8
Memory = 16 Gigabyte
OS = Ubuntu 14.04
HDD = Up to client本次我们使用的操作系统为
CentOS7.2
,主要是为了减少与原来系统的差异。
CentOS的自带yum源中包含postgresql相关的软件包,可以直接安装。
$ sudo yum install -y postgresql-server #安装postgresql的服务端 $ sudo postgresql-setup initdb #postgresql初始化,包括创建数据目录、生成共享目录表以及创建template1和postgresql数据库,该操作不能使用root用户 $ sudo systemctl enable postgresql #启用开机启动postgresql功能 $ sudo systemctl start postgresql #启动postgresql服务
在CentOS系统上安装Odoo,有很多的依赖是自带的yum源所没有的,所以我们还需要安装EPEL的源,EPEL源中所没有的依赖部分会在文末列出来。
官方的yum源每天都会有一个新的滚动版本发布,为了更贴近原有服务器的odoo版本,我们采用rpm包的方式安装,官方仓库中已经没有20170303的版本了,所以这里我们使用20170401的版本。~]# wget http://nightly.odoo.com/10.0/nightly/rpm/odoo_10.0.20170401.noarch.rpm ~]# yum install odoo_10.0.20170401.noarch.rpm
官方步骤如下:
$ sudo yum install yum-utils #yum包管理工具 $ sudo yum-config-manager --add-repo=https://nightly.odoo.com/10.0/nightly/rpm/odoo.repo #添加odoo的yum源 $ sudo yum install -y odoo $ sudo systemctl enable odoo $ sudo systemctl start odoo
- 配置
本次主要是系统迁移,就不需要像新安装Odoo的步骤一样了。
(1). 我们需要把原系统的Odoo的配置文件放到新的服务器的
/etc/odoo/odoo.conf
目录下,覆盖安装时自动生成的配置文件。
(2). 删除现有的Odoo服务器端程序~]# rm -rf /usr/lib/python2.7/site-packages/odoo/*
(3). 将之前备份的
Odoo_install.tar.gz
和Odoo_alldata.tar.gz
上传到新服务器上,然后解压到对应的位置。~]# tar xvf Odoo_install.tar.gz -C / ~]# tar xvf Odoo_alldata.tar.gz -C /
(4). 重启Odoo
~]#systemctl restart odoo
(5). 数据库恢复
Odoo安装时会自动创建odoo用户,现在我们需要对数据库进行一些操作了。操作数据库我们需要切换用户到postgres
,然后执行psql
就会进入数据库。postgres=# CREATE DATABASE oadbadmin; #创建odoo要使用的数据库 postgres=# ALTER DATABASE oadbadmin OWNER TO odoo; #修改oadbadmin数据库的owner为odoo
数据库的基本操作结束了,现在我们就要把之前备份的数据库导入到新的数据库中,与上面操作一样需要使用postgres用户来操作。
~]$ psql -U postgres -d oadbadmin -f Odoo_postgres_data.sql
5. 访问
Odoo和postgresql都准备好了,这下我们就可以来访问Odoo的页面了。
访问链接为: http://new_server's ip:8069,系统会自动跳转到登录页面,我们使用管理员用户登录系统(和操作原有系统一模一样)。
至此,Odoo基本OK了,但是还有一点点问题,在Odoo原来的配置中我们使用了OpenLDAP来做用户统一认证。原有的OpenLDAP也做了迁移,所以我们需要把这个部分也做相应的修改,我们在设置
的通用设置
中进行LDAP认证的修改。
6. LDAP配置
10.0版本的ldap配置项如下图所示。
openldap
- LDAP服务器地址
这个就是指的提供ldap信息验证的服务所在服务器的IP地址,也可以是域名,但是需要在odoo服务端配置好dns服务器,否则无法解析域名。- LDAP服务器端口
与上面提供的ldap服务相关的服务端口号,openLDAP默认389端口。- LDAP绑定DN
这个账号是用来和ldap服务进行数据交互使用的,一般使用管理员的账号。- LDAP密码
与上面的用户对应的密码- LDAP基节点
这个代表我们需要搜索的用户所在的域,或者一个用户组,如果不做限制就用dc=xx,dc=xx
这样的,做限制的话,类似ou=xxx,dc=xx,dc=xx
。- LDAP筛选
这个选项代表的意思是我们使用ldap服务返回的那个字段来用作odoo用户的用户名(登录名),我们这里使用uid,也有很多使用mail。- 创建用户
这个选项代表,在ldap中创建用户后,我们第一次在odoo中登录时,odoo系统会去ldap系统查找是否存在该用户,如果存在就会在odoo中创建该用户,并登录,但是这个版本会报500的服务器错误,服务器日志的打印是记录不存在或者已删除
,这种情况下odoo就会创建该系统用户。- 模板用户
该选项可以使用户在odoo中第一次登录的时候按照该用户的信息模板进行新用户的创建,包括邮件、手机号、权限等。这样的话,在odoo用户第二次登录的时候就可以正常进入系统(必须授予访问权限)。- 序号
默认值即可,也可以改下一些。- 使用TLS传输层套接字
如果服务端启用的话,可以勾选。
附1
Odoo特殊依赖列表
- http://rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/python-docutils-0.11-0.3.20130715svn7687.el7.noarch.rpm
- http://mirror.centos.org/centos/7/os/x86_64/Packages/http-parser-2.7.1-5.el7_4.x86_64.rpm
- ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/epel/7/x86_64/debug/Packages/t/tcpflow-debuginfo-1.4.5-1.el7.x86_64.rpm
- http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/noarch/RPMS.classic//python-module-antlr-2.7.7-alt12_53jpp8.noarch.rpm
- http://rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/python-jinja2-2.7.2-2.el7.noarch.rpm
- ftp://bo.mirror.garr.it/1/slc/centos/7.0.1406/extras/x86_64/Packages/python-werkzeug-0.9.1-2.el7.noarch.rpm
- http://rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/libxslt-python-1.1.28-5.el7.x86_64.rpm
网友评论