このガイドでは、Ubuntu16.04を使用したCKANリポジトリのデプロイとセットアップについて説明します。 CKANは、国勢調査データ、スプレッドシート、地理データ、政府および研究データを含むあらゆる種類のソースから大規模なデータコレクションを収集および配布するために使用されるオープンソースのデータセットリポジトリです。
このガイドを完了すると、新しいデータセットをインポートする準備ができているCKAN 2.7を実行する本番サーバーができますが、CKANを開始する場合は、公式ドキュメントを確認して開発環境をセットアップする必要があります。
このガイドを完了するには、次のものが必要です。
- パブリックIPを備えたUbuntu16.0464ビットを実行するクラウドVPSまたは仮想マシン
- VPSに関連付けられているドメイン名(サブドメインも使用できます)
- Python仮想環境とコマンドラインシェルでの作業経験
- についてのいくつかの知識 Apache、Nginx、Tomcat
- CSVで構造化されたサンプルデータセットまたは Excel format(オプション)
1.システムをセットアップします
まず、必要なパッケージを使用してubuntuマシンをセットアップしましょう。
a。 サーバーを更新します
$ sudo ssh root@$REMOTE_SERVER
apt update && apt upgrade
b。 バックアップスクリプトを作成する
$ cat > /usr/bin/backme.sh
#! /bin/bash -e
backme () {
TIMESTAMP=$( date +'%s')
for SOURCE_FILE in $*
do
cp -av $SOURCE_FILE ${SOURCE_FILE}-${TIMESTAMP}
done
}
backme $*
exit $?
$ sudo chmod +x /usr/bin/backme.sh
c。 サーバーのホスト名構成を更新します。「xxxx」をサーバーのIPアドレスに置き換え、yourdomain.comをサーバーに割り当てられたドメインに置き換える必要があります。
backme.sh /etc/hosts /etc/hostname
echo "ckanproduction.yourdomain.com" > /etc/hostname
echo -e "nx.x.x.x ckanproduction.yourdomain.com ckanproduction" >> /etc/hosts
$ sudo hostname ckanproduction.yourdomain.com
exit
$ sudo ssh root@$REMOTE_SERVER
d。 CKANを展開するためのユーザーアカウントを設定します
adduser ckanadmin
# USE THE INTERACTIVE PROGRAM TO SETUP A NEW USER AND PASSWORD TO MANAGE CKAN
echo -e "nckanadmin ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers
また、「visudo」を使用してユーザー権限を設定することもできます。
$ su - ckanadmin
mkdir .ssh
$ cat > .ssh/authorized_keys
# INSERT A PUBLIC KEY TO ACCESS YOUR SERVER AS THE USER ckanadmin
chmod 700 .ssh
exit
$ ssh ckanadmin@$REMOTE_SERVER
e。 CKANのソフトウェアパッケージの依存関係をインストールします
$ cat > packagelist
apache2
build-essential
git
git-core
jq
libapache2-mod-rpaf
libapache2-mod-wsgi
libffi-dev
libgeos-c1
libgeos-dev
libjts-java
libpq5
libpq-dev
libtomcat6-java
libxml2-dev
libxslt1-dev
links
openjdk-8-jdk
postgresql
postgresql-9.3-postgis-2.1
python-dev
python-jinja2
python-pastescript
python-pip
python-virtualenv
python-werkzeug
redis-server
solr-tomcat
tomcat8
unzip
virtualenvwrapper
zlib1g-dev
postfix
unzip
unrar
p7zip-full
python-gdal
$ sudo apt install -y $( cat packagelist )
$ sudo service apache2 stop
$ sudo apt install nginx -y
$ sudo service nginx stop
注:使用 apt search packagename*
現在のバージョンのUbuntuでサポートされているパッケージバージョンを検索し、それに応じて「packagelist」ファイルを更新します。
2.本番用のCKANパッケージをダウンロードしてインストールします
wgetコマンドを使用してckanパッケージングWebサイトからそれぞれのファイルをダウンロードする必要があります。
$ sudo wget https://packaging.ckan.org/python-ckan_2.7-trusty_amd64.deb
$ sudo dpkg -i python-ckan_2.7-trusty_amd64.deb
3.PostgreSQLデータベースをセットアップします
a。 PostgreSQLが正しくインストールされていることを確認します。データベースのエンコーディングがUTF8であることを確認します。
sudo -u postgres psql -l
b。 次に、データベースユーザーを作成する必要があります(別のパスワードを使用してください)
$ sudo -u postgres createuser -S -D -R -P ckan_default
password: f!+hRnztXgDtKSLW9kY
c。 新しいPostgreSQLデータベースを作成します。
$ sudo -u postgres createdb -O ckan_default ckan_default -E utf-8
database: ckan_default
5.Solrのセットアップ
a。 Tomcat構成ファイルを編集します
$ sudo backme.sh /etc/tomcat8/server.xml
$ sudo sed -r -i "/Connector port="8080"/ s/$/address="127.0.0.1"/" /etc/tomcat6/server.xml
$ sudo sed -r -i "/port=.8080./ s/8080/8983/g" /etc/tomcat8/server.xml
$ diff /etc/tomcat8/server.xml /etc/tomcat8/server.xml.last
sudo service tomcat8 restart
b。 デフォルトのschema.xmlファイルをCKANスキーマへのシンボリックリンクに置き換えます
$ sudo mv -v /etc/solr/conf/schema.xml /etc/solr/conf/schema.xml.orig.back
$ sudo ln -s /usr/lib/ckan/default/src/ckan/ckan/config/solr/schema.xml /etc/solr/conf/schema.xml
$ sudo service tomcat8 restart
c。 CKAN構成ファイルのsolr_url設定を変更します
$ sudo backme.sh /etc/ckan/default/production.ini
$ sudo sed -r -i "/solr_url/ s/^#//" /etc/ckan/default/production.ini
$ diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last
$ sudo ln -s /usr/bin/rotatelogs /usr/sbin/rotatelogs
$ sudo service tomcat8 restart
$ sudo service apache2 restart
links https://localhost:8983/solr/
$ ssh -L 8983:localhost:8983 [email protected]
Use a web browser to check https://localhost:8983/solr/
6.構成を更新し、データベースを初期化します
d。 ckan.site_idを設定します
sudo backme.sh /etc/ckan/default/production.ini
sudo sed -i "/ckan.site_id/ s/default/tenosolution/" /etc/ckan/default/production.ini
diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last
e。 ckan.site_urlを設定します
sudo backme.sh /etc/ckan/default/production.ini
sudo sed -r -i "/ckan.site_url/ s/$/ https://ckanproduction.yourdomain.com/" /etc/ckan/default/production.ini
diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last
c。 sqlalchemy.url設定を編集します(sqlalchemy.url = postgresql:// ckan_default:pass @ localhost / ckan_default)
sudo backme.sh /etc/ckan/default/production.ini
sudo sed -i "/sqlalchemy/ s/pass/f!+hRnztXgDtKSLW9kY/" /etc/ckan/default/production.ini
diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last
c。 CKANデータベースを初期化します
$ sudo ckan db init
d。 Webサーバーを再起動します
$ sudo service apache2 restart
$ sudo service nginx restart
7.管理者アカウントとテストデータの設定
a。 virt環境を初期化します
$ . /usr/lib/ckan/default/bin/activate
$ cd /usr/lib/ckan/default/src/ckan
b。 sysadminユーザーの作成(別のパスワードを設定してください)
paster sysadmin add mycompanyadmin -c /etc/ckan/default/production.ini
password: mycompanyadmin
c。 テストデータの作成
$ paster create-test-data -c /etc/ckan/default/production.ini
d。 後で拡張機能をインストールするためにCKANの所有権を設定します…
$ cd /usr/lib/ckan
$ sudo chown -R ckanadmin: default/
8.ckanext-spatialを設定します
a。 PostGISをインストールします:
cd /usr/lib/ckan/default/src/ckan
$ sudo apt-get install postgresql-9.3-postgis-2.1 python-dev libxml2-dev libxslt1-dev libgeos-c1
b。 データベースに必要なテーブルと関数を作成します
$ sudo -u postgres psql -d ckan_default -f /usr/share/postgresql/9.3/contrib/postgis-2.1/postgis.sql
$ sudo -u postgres psql -d ckan_default -f /usr/share/postgresql/9.3/contrib/postgis-2.1/spatial_ref_sys.sql
c。 空間テーブルの所有者をCKANユーザーに変更します
sudo -u postgres psql -d ckan_default -c 'ALTER VIEW geometry_columns OWNER TO ckan_default;'
$ sudo -u postgres psql -d ckan_default -c 'ALTER TABLE spatial_ref_sys OWNER TO ckan_default;'
d。 PostGISが正しくインストールされているかどうかを確認してください:
$ sudo -u postgres psql -d ckan_default -c "SELECT postgis_full_version()"
e。 拡張機能をインストールします
$ cd /usr/lib/ckan/default/src
$ git clone https://github.com/okfn/ckanext-spatial.git
$ cd ckanext-spatial
$ sudo pip install -r pip-requirements.txt
$ python setup.py develop
f。 拡張機能を構成します。
$ cd /usr/lib/ckan/default/src/ckanext-spatial
$ paster --plugin=ckanext-spatial spatial initdb 4326 -c /etc/ckan/default/production.ini
$ sudo backme.sh /etc/ckan/default/production.ini
$ sudo sed -r -i "/ckan.plugins =/ s/$/ spatial_metadata spatial_query/" /etc/ckan/default/production.ini
$ diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last
deactivate
9.ファイルストアを構成します
d。 ファイルストアディレクトリを作成します
$ sudo mkdir -p /var/lib/ckan/default
$ sudo chown -R www-data: /var/lib/ckan/default
$ sudo chmod -u+rwx /var/lib/ckan/default
e。 FileStoreとファイルのアップロードを有効にする
$ sudo backme.sh /etc/ckan/default/production.ini
$ sudo sed -i "/ckan.storage_path/ s/^#//" /etc/ckan/default/production.ini
$ diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last
$ sudo chown -R www-data: /var/lib/ckan
10.拡張機能をインストールします
a。 virt環境を初期化します
$ . /usr/lib/ckan/default/bin/activate
a。 ckanext-spatialUIをインストールします(https://extensions.ckan.org/extension/spatialui/)
$ cd /usr/lib/ckan/default/src
$ git clone https://github.com/XVTSolutions/ckanext-spatialUI
$ cd ckanext-spatialUI
$ python setup.py develop
$ sudo backme.sh /etc/ckan/default/production.ini
$ sudo sed -r -i "/ckan.plugins =/ s/$/ spatialUI/" /etc/ckan/default/production.ini
$ diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last
b。 ckanext-pdfviewをインストールします(https://extensions.ckan.org/extension/pdfview/)
$ cd /usr/lib/ckan/default/src
$ git clone https://github.com/ckan/ckanext-pdfview.git
$ cd ckanext-pdfview
$ python setup.py develop
$ sudo backme.sh /etc/ckan/default/production.ini
$ sudo sed -r -i "/ckan.plugins =/ s/$/ resource_proxy pdf_view/" /etc/ckan/default/production.ini
$ diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last
c。 ckanext-officedocsをインストールします(https://extensions.ckan.org/extension/officedocs/)
$ cd /usr/lib/ckan/default/src
$ git clone https://github.com/jqnatividad/ckanext-officedocs.git
$ cd ckanext-officedocs
$ python setup.py install
$ sudo backme.sh /etc/ckan/default/production.ini
$ sudo sed -r -i "/ckan.plugins =/ s/$/ officedocs_view/" /etc/ckan/default/production.ini
$ diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last
d。 ckanext-dictionaryをインストールします(https://extensions.ckan.org/extension/dictionary/)
$ cd /usr/lib/ckan/default/src
$ git clone https://github.com/cmuphillycapstone/ckanext-dictionary.git
$ cd ckanext-dictionary
$ python setup.py develop
$ sudo backme.sh /etc/ckan/default/production.ini
$ sudo sed -r -i "/ckan.plugins =/ s/$/ dictionary/" /etc/ckan/default/production.ini
$ diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last
g。 ckanext-geoviewをインストールします(https://github.com/ckan/ckanext-geoview)
$ cd /usr/lib/ckan/default/src
$ git clone https://github.com/ckan/ckanext-geoview.git
$ cd ckanext-geoview
$ python setup.py develop
$ sudo backme.sh /etc/ckan/default/production.ini
$ sudo sed -r -i "/ckan.plugins =/ s/$/ geo_view geojson_view wmts_view/" /etc/ckan/default/production.ini
$ sudo sed -r -i "/ckan.views.default_views =/ s/$/ geo_view geojson_view wmts_view/" /etc/ckan/default/production.ini
$ diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last
h。 ckanext-geopusherをインストールします(https://github.com/datacats/ckanext-geopusher)
$ cd /usr/lib/ckan/default/src
$ git clone https://github.com/datacats/ckanext-geopusher.git
$ cd ckanext-geopusher
$ backme.sh requirements.txt
$ sed -r -i "/celery/ s/$/==3.1.25/" requirements.txt
$ pip install -r requirements.txt
$ python setup.py develop
$ sudo backme.sh /etc/ckan/default/production.ini
$ sudo sed -r -i "/ckan.plugins =/ s/$/ geopusher/" /etc/ckan/default/production.ini
$ sudo sed -i "100ickanext.geoview.ol_viewer.formats = wms kml geojson wfs" /etc/ckan/default/production.ini
$ diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last
$ sudo service apache2 reload
deactivate
11.データストアのセットアップ(これを新しい端末で実行します)
$ . /usr/lib/ckan/default/bin/activate
a。 データストアプラグインを有効にする
$ sudo backme.sh /etc/ckan/default/production.ini
$ sudo sed -r -i "/ckan.plugins =/ s/$/ datastore/" /etc/ckan/default/production.ini
$ diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last
b。 データベースを設定し、datastore_defaultというdatabase_userを作成します。 (別のパスワードを使用してください)
$ sudo -u postgres psql -l
$ sudo -u postgres createuser -S -D -R -P -l datastore_default
$ password: 7DN4ta2igWVlFj
$ sudo -u postgres createdb -O ckan_default datastore_default -E utf-8
c。 CKAN設定をセットアップする
$ sudo backme.sh /etc/ckan/default/production.ini
$ sudo sed -r -i -e "/ckan.datastore.write_url/ s/^#//" -e "/ckan.datastore.write_url/ s/ckan_default:pass/ckan_default:f!+hRnztXgDtKSLW9kY/" /etc/ckan/default/production.ini
$ sudo sed -r -i -e "/ckan.datastore.read_url/ s/^#//" -e "/ckan.datastore.read_url/ s/datastore_default:pass/datastore_default:7DN4ta2igWVlFj/" /etc/ckan/default/production.ini
$ diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last
d。 権限を設定し、ソースコードのインストールにこのコマンドを使用します
$ sudo ckan datastore set-permissions | sudo -u postgres psql --set ON_ERROR_STOP=1
e。 datapusherをセットアップする
$ sudo backme.sh /etc/ckan/default/production.ini
$ sudo sed -r -i "/ckan.plugins =/ s/$/ datapusher/" /etc/ckan/default/production.ini
$ sudo sed -r -i "/datapusher/ s/^#ckan/ckan/" /etc/ckan/default/production.ini
$ diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last
12.Webサービスを再起動します
$ sudo -i
$ service tomcat8 restart; service apache2 restart; service nginx restart
https://ckanproduction.yourdomain.comでCKANリポジトリにアクセスし、 admin 以前に作成されたユーザー。
参照してください ckanドキュメント 新しいサイトを管理および設定する方法の詳細については。