본문으로 바로가기

 

안녕하세요 씨앤텍 시스템즈의 김준형 입니다.

이번 포스트는 관리자계정 생성 및 업로드 기능 추가에 대해서 정리해 보았습니다. 

기존 CKAN 게시물은 패키지 버전 중심으로 설명 되어 있기때문에 Ubuntu 18.04버전에서 소스설치 후 따라하게 될 경우

오류가 나타나기 때문에 다시 정리하여 게시하게 되었습니다.

 

설치 매뉴얼은https://docs.ckan.org/en/2.8를 참고했습니다.

모든 명령어는 항상 가상환경에서 진행하여야 합니다.

1. 관리자계정 생성

   1-1. . /usr/lib/ckan/default/bin/activate 명령어로 가상환경에 들어갑니다.

   1-2. cd /usr/lib/ckan/default/src/ckan 명령어로 ckan폴더에 들어갑니다.

   1-3. paster sysadmin add cnt email=cnt@localhost name=cnt -c /etc/ckan/default/development.ini

           명령어로 계정을 생성합니다.  (이 명령어는 꼭 ckan폴더에서 실행해야만 합니다.)

                                                                  (명령어의 cnt 부분에 자신이 원하는 아이디 값을 넣어주세요.)

                                                                  

   1-4. paster sysadmin add cnt -c /etc/ckan/default/development.ini 명령어를 통해 관리자로 설정합니다.


# 테스트 데이터 생성#

paster create-test-data -c /etc/ckan/default/development.ini


2. 업로드 기능

   2-1. sudo mkdir -p /var/lib/ckan/default 명령어를 통해 업로드한 데이터를 저장할 디렉토리를 생성합니다.

   2-2. vi /etc/ckan/default/development.ini 명령어로 설정파일에 들어가서 그림과 같이 storage_path를

           설정합니다.

 

2-2 storage_path 설정

   2.3 sudo chown -R www-data /var/lib/ckan/default 명령어로 스토리지 폴더의 주인을 바꿔줍니다.

   2.4 sudo chmod -R u+rwx /var/lib/ckan/default 명령어로 권한을 설정합니다.


# 2.4 #

데이터가 들어가면 스토리지 폴더안에 다른 폴더들이 생성이 되는데

이 폴더들의 주인도 www-data가 맞는지 확인해 주세요.

아닐 경우 500 internal server error를 보시게 될겁니다.

( 안에 있는 파일들도 주인이 www-data여야 합니다. )

500 internal server error를 보신다면 항상 이곳부터 의심해 보세요!

 


   2.5 cd /usr/lib/ckan/default/src/ckan 명령어로 설정 폴더로 들어갑니다.

   2.6 paster db init -c /etc/ckan/default/development.ini 명령어로 설정파일을 적용합니다.

   2.7 paster serve /etc/ckan/default/development.ini명령어로 CKAN을 실행합니다.

   

3. 업로드 기능 확장 (DataStore)

   3.1 먼저 자동 업로드 기능이 있는 DataPusher를 설치해야 합니다.

sudo apt-get install python-dev python-virtualenv build-essential libxslt1-dev libxml2-dev zlib1g-dev git libffi-dev 
명령어로 필요한 패키지를 설치합니다.

   3.2 cd ~ 명령어로 home으로 돌아갑니다.

        git clone https://github.com/ckan/datapusher 명령어로 패키지를 다운받고

        cd datapusher 명령어로 폴더에 들어갑니다.

   3.3 1. pip install -r requirements.txt

        2. pip install -e . 명령어로 설치합니다.

   3.4 python datapusher/main.py deployment/datapusher_settings.py 명령어로 DataPusher를

          실행합니다. (datapusher 폴더에서 실행 해야 합니다.)

실행화면

# 3.4 -1 #

datapusher가 실행되지 않고 werkzeug.contrib.fixers import ProxyFix 관련 에러가 뜬다면

vi /usr/local/lib/python2.7/dist-packages/ckanserviceprovider/web.py 명령어로 설정파일에 들어가서

그림처럼 werkzeug 부분을 변경합니다.

( from werkzeug.middleware.proxy_fix import ProxyFix )

werkzeug 버전이 바뀌면서 참조하는 방법이 변경 된것 같습니다.

그래도 안된다면

pip3 uninstall werkzeug

pip3 install werkzeug

명령어를 통해 재설치 해봅시다.

 

# 3.4 -2 #

Datapusher의 기본 포트는 8800으로 되어있습니다.

포트가 사용중이라면 DataPusher가 실행이 안될 수 있습니다.

vi ~/datapusher/deployment/datapusher_settings.py 명령어로 설정 파일에 들어가서

그림과 같이 사용하지 않는 포트로 변경 합니다.

포트변경

 

   3.5 sudo -u postgres createuser -S -D -R -P -l datastore_default 명령어로 datastore_default라는

          database_user를 생성하고 비밀번호를 설정 합니다.

   3.6 sudo -u postgres createdb -O ckan_default datastore_default -E utf-8 명령어로 ckan_default가

         소유한 데이터베이스를 생성합니다.

   3.7 vi /etc/ckan/default/development.ini 명령어로 설정파일에 들어가서 그림과 같이 편집합니다.

 

plugins 추가

datapusher 설정

datastore 설정

   3.8 cd /usr/lib/ckan/default/src/ckan명령어로 설정 폴더로 들어갑니다.

   3.9 paster db init -c /etc/ckan/default/development.ini 명령어로 설정파일을 적용합니다.

   3.10 paster --plugin=ckan datastore set-permissions -c /etc/ckan/default/development.ini | sudo -u postgres psql --set ON_ERROR_STOP=1 명령어로 권한을 부여합니다.

   3.11 paster serve /etc/ckan/default/development.ini명령어로 CKAN을 실행합니다.

 

홈페이지에 들어가서 데이터를 보면 DataStore에 올릴 수 있습니다.

Ckan DataStore

 

데이터 스토어에 올라간 자료는 미리보기가 가능 해 집니다.

Ckan 데이터 미리보기

 

# 한글로 변경 #

CKAN 설정파일에서 해당 문자열을 찾아서 en을 ko_KR로 변경하고 저장합니다

감사합니다.


댓글을 달아 주세요