24
CKAN 技術介紹 ( 基礎篇 ) 李承錱 (Sol) 中央研究院資訊科學研究所 本著作採用創用 CC 「姓名標示 - 相同方式分享」授權條款台灣 3.0

CKAN 技術介紹 (基礎篇)

Embed Size (px)

Citation preview

CKAN 技術介紹 (基礎篇 )

李承錱 (Sol)

中央研究院資訊科學研究所

本著作採用創用 CC 「姓名標示 -相同方式分享」授權條款台灣 3.0版

2

大綱

● CKAN技術架構● 安裝● 管理與維護● 升級

3

CKAN技術架構

網頁伺服器

網路應用程式

搜尋引擎

4

CKAN技術架構

Python

Linux

SQL

5

安裝

經由 Ubuntu套件庫

經由原始碼

經由 Docker映像檔

較困難

較容易 彈性低

彈性高

6

安裝:經由 Ubuntu套件

● 優點:最簡單方便● 缺點:需安裝於特定環境 (64-bit Ubuntu 12.04)、一台主機僅能執行一

CKAN實體、不適於開發環境● 步驟

1.安裝必須系統套件: nginx、 apache2 (網頁伺服器 )、 libapache2-mod-wsgi (Python網頁程式溝通介面 )、 libpq5 (資料庫函式庫 )

2.自官方下載 .deb套件檔案並安裝3.安裝、初始化資料庫4.安裝Solr搜尋引擎5.啟動mod-wsgi模組與 apache2

7

安裝:經由 Docker映像檔

● 優點:獨立於作業系統環境、可自訂安裝● 缺點:目前仍在發展中、映像檔內缺乏部分元件● 暫不建議使用

8

安裝:經由原始碼

● 推薦方式,以下教學以此法為主● 優點:可自訂安裝位置、一主機可執行多個CKAN實體、可安裝於非Ubuntu系統 *

● 缺點:步驟繁複、易引發套件相依性問題● 步驟

1.安裝必須系統套件2.建立Python虛擬環境 (Virtual Environment)

3.自GitHub下載CKAN程式碼並安裝於前一步驟建立之虛擬環境4.建立CKAN環境設定檔5.安裝、初始化資料庫6.安裝Solr搜尋引擎7.啟動開發環境 (paster)或開始部署 (apache2+nginx)

*仍須滿足套件相依性要求

9

擴充套件與外掛

● 擴充套件 (Extension):由多個外掛所組成,可擴充多項功能

● 外掛 (Plugin):擴充功能的最小單位

擴充套件 ckanext-spatial:提供地理相關功能

外掛 wms_view

提供wms預覽功能

外掛 geojson_view

提供 geojson預覽功能

...

10

安裝:擴充套件

1.自GitHub下載擴充套件2.進入 Python虛擬環境

3.安裝擴充套件

4.於環境設定檔設定啟用該套件

5.重新啟動伺服器repo

11

安裝詳細步驟

● 官方教學文件– http://docs.ckan.org/en/ckan-

2.3/maintaining/installing/index.html● 中文版教學文件 (對應 CKAN 2.2,僅供參考 )

– https://ckan-docs-tw.readthedocs.org/– 中文搜尋支援安裝教學– 部分擴充套件之詳細安裝教學

12

管理與維護

● 環境設定檔 production.ini

● 後台管理指令 Paster

● Solr搜尋索引定義檔 schema.xml

● 系統存取 /錯誤記錄檔● 備份內容

13

管理與維護

● 環境設定檔 production.ini*

– 位置: /etc/ckan/default

*或 Development.ini. **http://docs.ckan.org/

系統功能開關

系統全域變數設定

設定欲啟用之外掛 (Plugins)

部分外掛之功能開關與變數設定

文件 **: Maintainer’s guide » Config File Options

14

管理與維護

● 後台管理指令 Paster

– 進行系統管理相關操作 (即所謂系統開發員權限 )● 如:建立使用者、初始化資料庫等

– 指令參考: http://docs.ckan.org/en/ckan-2.3/maintaining/paster.html 進入 Python虛擬環境

paster user list:列出使用者清單--plugin=ckan:指定 CKAN程式-c:指定環境設定檔位置

輸出結果

文件 : Maintainer’s guide » Command Line Interface

15

管理與維護

● Solr搜尋索引定義檔 schema.xml

– 位置 * : /etc/solr/conf

– 定義搜尋索引 (可搜尋 )欄位

*實務上,會將修改後之 schema.xml置入網站客製擴充套件目錄

中文搜尋定義

空間搜尋定義

16

管理與維護

● 系統存取 /錯誤記錄檔– 位置: /var/log/apache2

– ckan_default.error.log:網頁程式錯誤傾印– ckan_default.custom.log:網站存取紀錄

17

管理與維護

● 備份內容– 程式目錄: /usr/lib/ckan/default/src/

– 資料庫– 實體 (上傳 )檔案儲存目錄

● 由環境設定檔之 ckan.storage_path變數定義– 環境設定檔 Production.ini

– 伺服器設定檔 (apache、 nginx)

18

管理與維護

● 補充:關於程式目錄– CKAN主程式為 AGPL授權,修改之原始碼必須釋出– 建議上傳至GitHub (以美國 data.gov為例 )

1.建立一GitHub組織,存放所有欲開放之程式如:GSA (美國總務署 )

2. Fork (複製 ) CKAN主程式而非建立新儲存庫 (repository)

3.建立分支版本 (git branch)放置主程式之修改 若遇官方升級,再使用 git merge合併升級 若有功能提升或錯誤修正,適時提交原專案

19

升級

● CKAN版本命名原則M.m.p (例: 2.2.2)

M大版本更新

(Major Releases)

● 更新週期 >1年● 重大程式架構與 API調整● 有不可逆之資料庫升級

m小版本更新

(Minor Releases)

● 更新週期約 3個月● 小幅更動程式架構● 仍可能有資料庫升級

p增補更新

(Patch Releases)

● 不定時更新● 錯誤修正、安全性更新● 無資料庫升級

20

升級

● 升級前– 閱讀新版更改紀錄 (changelog),留意對應調整– 測試自行修改內容及擴充套件與新版本之相容性

● nosetests --ckan --with-pylons=test-core.ini ckan● 即使網站操作正常,仍需留意系統記錄檔之輸出,避免網站修改部分使用到已過時 (deprecated)方法等

– 進行完整備份 (透過 paster db dump指令 )

21

升級

● 升級中

1. 下載最新程式碼2.安裝新相依套件3.安裝新主程式4.重啟 Solr (若有 Solr定義變動 *)

5.升級資料庫 (若有資料庫變動 *,透過 paster db upgrade指令 )

6.重建 Solr搜尋索引7.重新啟動伺服器

*參考 changelog說明

22

升級

● 升級後– 持續測試網站– 留意系統記錄檔之輸出

23

基礎篇重點摘要

● CKAN關鍵技術:Python、 HTML、 JavaScript、 SQL、 Linux

● 三種安裝方式 (建議使用原始碼安裝 )

● 後台管理指令 Paster、設定檔、記錄檔之功能● 日常備份內容

– 修改之主程式需釋出● 升級前、中、後應注意事項

24

感謝聆聽 敬請指教 Email: cjlee AT iis.sinica.edu.tw