2020年2月27日 星期四

Odoo教育訓練學習筆記 (1)

  由於轉換職場跑道的緣故,許久沒有撰寫學習筆記或書摘心得等文章,原本自學內容以Python為核心,著重資料科學的技術與應用,但由於新工作的需求,必須轉而學習開放原始碼ERP系統-Odoo的開發,對於僅有類似系統分析經驗的我而言,這是非常難得的機會,可以讓我真正跨入系統工程師的領域。

  由於自己並非資訊相關科系畢業,基礎知識與技能相當貧乏,透過此次學習Odoo系統基礎建置與開發,我才初次接觸了如何在Windows系統透過VM來使用Linux系統,以及終端機指令的操作,來一步一步建置Odoo系統,包括所需的Python套件、PostgreSQL資料庫系統、pgAdmin資料庫管理工具、Odoo系統資料夾結構、Odoo系統設定文件、PyCharm整合開發環境、系統更新與維護方式等等,需要了解與學習的技術非常非常的多,自己也僅學習使用了一小部分的工具與技巧而已。

  系統開發由於牽涉到許多資料夾結構與不同文件如csvpyxml等,因此未來使用Git做為示範檔案存放空間的需求或許也將越來越迫切,現階段仍純粹在網誌整理、發布文章;本系列一共六篇學習筆記,為花費大量時間綜合整理Peter Wu老師課堂教學、《Odoo快速入門與實戰》簡體書,以及零散的網路教學文章而得,前五篇的學習筆記完全操作使用Odoo社群版,第六篇的學習筆記則加入「康虎雲報表」的安裝與教學,可至「康虎軟件工作室」官方網站下載相關軟體,配合學習筆記的說明來安裝使用。

  自學Odoo系統的建置開發相當不容易:在台灣,Odoo系統的知名度與普及性遠不如SAP、鼎新、Oracle等大廠,資訊廠商與開發人員的數量也相對稀少,就連參考書籍也完全沒有繁體中文的版本,僅有少數英文書與簡體書可以購買(而且這些書都寫得很糟),加上這幾年Odoo系統的快速發展,不同的版本之間有不小的變動,學會的技術可能過幾年就完全不能用了…。綜合上述許多原因,即便本系列學習筆記已經整理很清楚了,對於完全零經驗的開發者而言,相信仍舊難以閱讀、理解。

  目前Odoo系統在歐美與中國大陸的資源、社群與討論,都比台灣頻繁、密集得多,想要入門Odoo系統的學習者建議還是需要老師來帶領,才有辦法掌握操作、管理、開發的各項眉眉角角。

操作系統
l   建議使用DebianUbuntu操作系統,因為Odoo的開發團隊一直將Debian做為參考部屬平台,而且其SaaS應用也是基於Debian

Odoo 12PostgreSQL 11在終端機輸入指令安裝與設定
l   建議安裝Odoo雙位數版本。
l   Step 1更新應用程式來源清單:
sudo apt-get update

l   Step 2安裝更新:
sudo apt-get -y upgrade

l   Step 3.1安裝Odoo 12所需的套件:
sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less

Step 3.2
使用pip3安裝Python套件:
pip3 install Babel decorator docutils ebaysdk feedparser gevent greenlet html2text Jinja2 lxml Mako MarkupSafe mock num2words ofxparse passlib Pillow psutil psycogreen psycopg2-binary pydot pyparsing PyPDF2 pyserial python-dateutil python-openid pytz pyusb PyYAML qrcode reportlab requests six suds-jurko vatnumber vobject Werkzeug XlsxWriter xlwt xlrd

l   Step 4安裝Odoo 12所需的網頁工具:
sudo apt-get install -y npm

sudo ln -s /usr/bin/nodejs /usr/bin/node

sudo npm install -g less less-plugin-clean-css

sudo apt-get install node-less

sudo python3 -m pip install libsass

l   Step 5安裝PostgreSQL 11
sudo apt-get install curl ca-certificates gnupg

curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

sudo apt-get update

sudo apt-get install postgresql-11 pgadmin4

l   Step 6建立Odoo 12使用者資料庫(ubuntu_user_nametimmy為例)
sudo su - postgres

cd

createuser -s odoo

createuser -s timmy

exit

l   Step 7odoo為例,建立使用者和群組:
sudo adduser --system --home=/opt/odoo --group odoo

l   Step 8安裝Gdata
cd /opt/odoo

sudo wget https://pypi.python.org/packages/a8/70/bd554151443fe9e89d9a934a7891aaffc63b9cb5c7d608972919a002c03c/gdata-2.0.18.tar.gz

sudo tar zxvf gdata-2.0.18.tar.gz

sudo chown -R odoo: gdata-2.0.18

sudo -s

cd gdata-2.0.18/

python setup.py install

exit

l   Step 9GitHub下載Odoo 12
cd /opt/odoo

sudo su - odoo -s /bin/bash

git clone https://www.github.com/odoo/odoo --depth 1 --branch 12.0 --single-branch

exit

l   Step 10建立Odoo 12Log檔:
sudo mkdir /var/log/odoo

sudo chown -R odoo:root /var/log/odoo

l   Step 11建立custom資料夾存放客製化開發的模組,並檢視/opt/odoo/odoo路徑的所有目錄和檔案權限是否皆為odoo
cd /opt/odoo/odoo

sudo mkdir custom

sudo chown -R odoo.odoo custom

ls -l


l   Step 12.1編輯Odoo 12設定檔:
sudo apt-get install vim

sudo vim /etc/odoo.conf

Step 12.2
加入以下指令,完成後輸入:wq離開編輯畫面
[options]
; This is the password that allows database operations:
; admin_passwd = admin
db_host = False
db_port = False
db_user = odoo
db_password = False
; logfile = /var/log/odoo/odoo-server.log
addons_path = /opt/odoo/odoo/addons,/opt/odoo/odoo/custom

Step 12.3
開啟Odoo 12設定檔權限:
sudo chown odoo: /etc/odoo.conf

l   Step 13安裝WKHTMLTOPDF
cd /opt/odoo

sudo wget https://builds.wkhtmltopdf.org/0.12.1.3/wkhtmltox_0.12.1.3-1~bionic_amd64.deb

sudo apt install ./wkhtmltox_0.12.1.3-1~bionic_amd64.deb

sudo cp /usr/local/bin/wkhtmltoimage /usr/bin/wkhtmltoimage

sudo cp /usr/local/bin/wkhtmltopdf /usr/bin/wkhtmltopdf

l   Step 14.1開啟Odoo 12伺服器,若成功執行,畫面將顯示如下圖:
cd /opt/odoo/odoo

./odoo-bin

Step 14.2
在瀏覽器瀏覽Odoo 12的頁面:
http://localhost:8069/

Step 14.3
關閉Odoo 12伺服器:
ctrl + c


PostgreSQL 11在終端機輸入指令設定
l   Step 1.1修改PostgreSQL 11設定:
cd /etc/postgresql/11/main

sudo vim pg_hba.conf

Step 1.2
修改以下指令,按i鍵以插入模式編輯,原peer改為trust如下,按esc鍵退出模式,完成後輸入:wq離開編輯畫面:
local all postgres trust
local all all trust

Step 1.3
繼續修改PostgreSQL 11設定:
sudo vim postgresql.conf

Step 1.4
修改以下指令,按i鍵以插入模式編輯,取消標註並將原'localhost'改為'*'如下,按esc鍵退出模式,完成後輸入:wq離開編輯畫面:
listen_addresses = '*'


l   Step 2設定odoo使用者密碼以利後續設定pgAdmin 4
sudo -u postgres psql

ALTER USER odoo WITH ENCRYPTED PASSWORD 'odoo';

\q

l   Step 3重新啟動:
sudo /etc/init.d/postgresql restart

pgAdmin 4設定
l   開啟pgAdmin 4,再點選Add New Server,設定完成後點選Save
點選GeneralName設定為odoo12
點選ConnectionHost name/address設定為localhost
Username
設定為odoo
Password
設定為odoo


PyCharm在終端機輸入指令安裝與設定
l   在終端機輸入指令安裝PyCharm
sudo snap install pycharm-community --classic

l   在終端機開啟整個工作目錄(Working directory)的權限:
sudo chmod -R 777 /opt/odoo/odoo

l   開啟Pycharm,再點選Create New Project,設定完成後點選CreateYes
Location
設定為/opt/odoo/odoo
Base interpreter
設定為/usr/bin/python3.6


l   點選Run > Edit Configurations... > + > Python,設定完成後點選OK
Name
設定為odoo12
Script path
設定為/opt/odoo/odoo/odoo-bin
Parameters
設定為-c /etc/odoo.conf
Python interpreter
設定為Python 3.6
Working directory
設定為/opt/odoo/odoo


l   Google搜尋pycharm odoo template,或直接到https://github.com/mohamedmagdy/odoo-pycharm-templates下載setting.jar,點選File > Import Setting...,選擇setting.jar並點選OK,再點選OK匯入Live templates (schemes),此時PyCharm會關閉並重新啟動。
l   點選File > Settings... > Editor > Code Style > File and Code Templates > Python ScriptEnable Live Templates打勾,加入以下文字,設定完成後點選OK
# -*- coding: utf-8 -*-
# Author: Timmy Nueh


l   點選Run > Run 'odoo12',若成功執行,畫面將顯示如下圖,在瀏覽器輸入localhost:8069才能成功瀏覽Odoo 12的頁面,之後可由左下方綠色與紅色按鈕開啟與關閉。


Sublime Text在終端機輸入指令安裝
l   參考官方(https://www.sublimetext.com/docs/3/linux_repositories.html)指示,在終端機輸入指令安裝Sublime Text
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -

sudo apt-get install apt-transport-https

echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list

sudo apt-get update

sudo apt-get install sublime-text

補充-從別台電腦接收檔案的技巧
l   Step 1.1設定網路:
sudo apt install net-tools

Step 1.2
輸入ifconfig指令,於此例中,顯示介面名稱為enp0s3
ifconfig

cd /etc/network

sudo vim interfaces

Step 1.3
加入以下指令,按i鍵以插入模式編輯,加入後顯示如下,按esc鍵退出模式,完成後輸入:wq離開編輯畫面:
auto lo
iface lo inet loopback
auto enp0s3
iface enp0s3 inet dhcp


l   Step 2壓縮檔案,在想要產生壓縮檔案的路徑下輸入:sudo tar cvf FileName.tar DirName
sudo tar cvf openacademy.tar openacademy
l   Step 3接收別台電腦的檔案,輸入:scp 管理者帳號@IP位址:檔案位置 存放檔案的路徑:
scp odoo@192.168.31.20:/Users/odoo/Desktop/openacademy.tar /opt/odoo/odoo/tmp
l   Step 4解壓縮檔案,在想要解壓縮檔案的路徑下輸入:sudo tar xvf DirName/FileName.tar
sudo tar xvf /opt/odoo/odoo/tmp/openacademy.tar

補充-Odoo Server正式機連線操作
l   Step 1在終端機輸入指令登入Odoo Server正式機:
ssh
使用者帳號@伺服器IP
l   Step 2登入之後,在終端機輸入指令開關Odoo Server正式機:
sudo /etc/init.d/odoo-server start
sudo /etc/init.d/odoo-server stop
sudo /etc/init.d/odoo-server restart
l   Step 3在終端機輸入指令登出Odoo Server正式機:
exit

沒有留言:

張貼留言