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. 重新啟動伺服器
rep
o
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

CKAN 技術介紹 (基礎篇)

Editor's Notes

  • #13 在安裝完CKAN網站後,最重要的就是後續的管理與維護。 在此首先會介紹三個重要的設定檔案與指令:環境設定檔、後台管理指令與搜尋索引定義檔。 再者會介紹用以除錯的系統記錄檔,以及備份時應包含的檔案。