1. 說明
Odoo是python語言開發(fā)的一個開源的ERP系統(tǒng)。
目前十偶,我們工作中用到的也只有休假這一個模塊。
2. 原服務(wù)情況
- 服務(wù)
- Odoo v10.0_20170303
- postgresql v9.2
- 目錄
- /usr/lib/python2.7/site-packages/odoo #Odoo運行的所有服務(wù)端代碼存放位置
- /var/lib/odoo #Odoo的數(shù)據(jù)存儲位置
- /etc/odoo/odoo.conf #Odoo的服務(wù)端配置文件
- OS
- CentOS 7.2
3. 備份
大致了解了原服務(wù)器的大致信息后园细,我們就開始備份數(shù)據(jù)惦积。有一點很重要,我們?yōu)榱舜_保數(shù)據(jù)的完整猛频,一定要先停掉服務(wù)狮崩,然后再做備份的操作。
- Odoo
/var/lib/odoo
目錄下有三個目錄addons
鹿寻、filestore
睦柴、sessions
。addons目錄默認是空的毡熏,實際的文件都在/usr/lib/python2.7/site-package/odoo/addons
這個目錄下面的坦敌。filestore是Odoo用來存放附件的目錄,這個必須做一個備份才行招刹。sessions是Odoo用來存放用戶會話信息的目錄恬试,對于遷移后的新服務(wù)器來說沒什么用,所以不需要做備份疯暑。
~]# 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數(shù)據(jù)部分的附件部分
- Postgresql
~]$ pg_dump -U postgres oadbdmin -f Odoo_postgres_data.sql #備份postgresql數(shù)據(jù)
4. Odoo及postgresql安裝
原來的數(shù)據(jù)都備份完成了,接下來我們就要開始新服務(wù)器的部署配置工作了哑舒。我們先列出來Odoo對硬件的要求妇拯。從官方文檔中沒找到,但是官方論壇里面有人貼出來了洗鸵,鏈接地址:https://www.odoo.com/zh_CN/forum/help-1/question/server-requirements-121217越锈,我把內(nèi)容也貼出來吧。
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本次我們使用的操作系統(tǒng)為
CentOS7.2
膘滨,主要是為了減少與原來系統(tǒng)的差異甘凭。
CentOS的自帶yum源中包含postgresql相關(guān)的軟件包,可以直接安裝火邓。
$ sudo yum install -y postgresql-server #安裝postgresql的服務(wù)端 $ sudo postgresql-setup initdb #postgresql初始化丹弱,包括創(chuàng)建數(shù)據(jù)目錄德撬、生成共享目錄表以及創(chuàng)建template1和postgresql數(shù)據(jù)庫,該操作不能使用root用戶 $ sudo systemctl enable postgresql #啟用開機啟動postgresql功能 $ sudo systemctl start postgresql #啟動postgresql服務(wù)
在CentOS系統(tǒng)上安裝Odoo躲胳,有很多的依賴是自帶的yum源所沒有的蜓洪,所以我們還需要安裝EPEL的源,EPEL源中所沒有的依賴部分會在文末列出來坯苹。
官方的yum源每天都會有一個新的滾動版本發(fā)布隆檀,為了更貼近原有服務(wù)器的odoo版本,我們采用rpm包的方式安裝粹湃,官方倉庫中已經(jīng)沒有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
- 配置
本次主要是系統(tǒng)遷移为鳄,就不需要像新安裝Odoo的步驟一樣了菊霜。
(1). 我們需要把原系統(tǒng)的Odoo的配置文件放到新的服務(wù)器的
/etc/odoo/odoo.conf
目錄下,覆蓋安裝時自動生成的配置文件济赎。
(2). 刪除現(xiàn)有的Odoo服務(wù)器端程序~]# rm -rf /usr/lib/python2.7/site-packages/odoo/*
(3). 將之前備份的
Odoo_install.tar.gz
和Odoo_alldata.tar.gz
上傳到新服務(wù)器上鉴逞,然后解壓到對應(yīng)的位置。~]# tar xvf Odoo_install.tar.gz -C / ~]# tar xvf Odoo_alldata.tar.gz -C /
(4). 重啟Odoo
~]#systemctl restart odoo
(5). 數(shù)據(jù)庫恢復
Odoo安裝時會自動創(chuàng)建odoo用戶司训,現(xiàn)在我們需要對數(shù)據(jù)庫進行一些操作了构捡。操作數(shù)據(jù)庫我們需要切換用戶到postgres
,然后執(zhí)行psql
就會進入數(shù)據(jù)庫壳猜。postgres=# CREATE DATABASE oadbadmin; #創(chuàng)建odoo要使用的數(shù)據(jù)庫 postgres=# ALTER DATABASE oadbadmin OWNER TO odoo; #修改oadbadmin數(shù)據(jù)庫的owner為odoo
數(shù)據(jù)庫的基本操作結(jié)束了勾徽,現(xiàn)在我們就要把之前備份的數(shù)據(jù)庫導入到新的數(shù)據(jù)庫中,與上面操作一樣需要使用postgres用戶來操作统扳。
~]$ psql -U postgres -d oadbadmin -f Odoo_postgres_data.sql
5. 訪問
Odoo和postgresql都準備好了喘帚,這下我們就可以來訪問Odoo的頁面了。
訪問鏈接為: http://new_server's ip:8069咒钟,系統(tǒng)會自動跳轉(zhuǎn)到登錄頁面吹由,我們使用管理員用戶登錄系統(tǒng)(和操作原有系統(tǒng)一模一樣)。
至此朱嘴,Odoo基本OK了倾鲫,但是還有一點點問題,在Odoo原來的配置中我們使用了OpenLDAP來做用戶統(tǒng)一認證萍嬉。原有的OpenLDAP也做了遷移乌昔,所以我們需要把這個部分也做相應(yīng)的修改,我們在設(shè)置
的通用設(shè)置
中進行LDAP認證的修改壤追。
6. LDAP配置
10.0版本的ldap配置項如下圖所示磕道。
openldap
- LDAP服務(wù)器地址
這個就是指的提供ldap信息驗證的服務(wù)所在服務(wù)器的IP地址,也可以是域名行冰,但是需要在odoo服務(wù)端配置好dns服務(wù)器溺蕉,否則無法解析域名伶丐。- LDAP服務(wù)器端口
與上面提供的ldap服務(wù)相關(guān)的服務(wù)端口號,openLDAP默認389端口焙贷。- LDAP綁定DN
這個賬號是用來和ldap服務(wù)進行數(shù)據(jù)交互使用的撵割,一般使用管理員的賬號。- LDAP密碼
與上面的用戶對應(yīng)的密碼- LDAP基節(jié)點
這個代表我們需要搜索的用戶所在的域辙芍,或者一個用戶組啡彬,如果不做限制就用dc=xx,dc=xx
這樣的,做限制的話故硅,類似ou=xxx,dc=xx,dc=xx
庶灿。- LDAP篩選
這個選項代表的意思是我們使用ldap服務(wù)返回的那個字段來用作odoo用戶的用戶名(登錄名),我們這里使用uid吃衅,也有很多使用mail往踢。- 創(chuàng)建用戶
這個選項代表,在ldap中創(chuàng)建用戶后徘层,我們第一次在odoo中登錄時峻呕,odoo系統(tǒng)會去ldap系統(tǒng)查找是否存在該用戶,如果存在就會在odoo中創(chuàng)建該用戶趣效,并登錄瘦癌,但是這個版本會報500的服務(wù)器錯誤,服務(wù)器日志的打印是記錄不存在或者已刪除
跷敬,這種情況下odoo就會創(chuàng)建該系統(tǒng)用戶讯私。- 模板用戶
該選項可以使用戶在odoo中第一次登錄的時候按照該用戶的信息模板進行新用戶的創(chuàng)建,包括郵件西傀、手機號斤寇、權(quán)限等。這樣的話拥褂,在odoo用戶第二次登錄的時候就可以正常進入系統(tǒng)(必須授予訪問權(quán)限)娘锁。- 序號
默認值即可,也可以改下一些肿仑。- 使用TLS傳輸層套接字
如果服務(wù)端啟用的話致盟,可以勾選。
附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