Installation¶
Install from Conda¶
Warning
TODO: Prepare Conda package.
Install from GitHub¶
Check out code from the c4cds-wps GitHub repo and start the installation:
$ git clone https://github.com/cp4cds/c4cds-wps.git
$ cd c4cds
Create Conda environment named c4cds:
$ conda env create -f environment.yml
$ source activate c4cds
Install c4cds-wps app:
$ pip install -e .
OR
make install
For development you can use this command:
$ pip install -e .[dev]
OR
$ make develop
Start c4cds-wps PyWPS service¶
After successful installation you can start the service using the c4cds
command-line.
$ c4cds --help # show help
$ c4cds start # start service with default configuration
OR
$ c4cds start --daemon # start service as daemon
loading configuration
forked process id: 42
The deployed WPS service is by default available on:
http://localhost:5000/wps?service=WPS&version=1.0.0&request=GetCapabilities.
Note
Remember the process ID (PID) so you can stop the service with kill PID
.
You can find which process uses a given port using the following command (here for port 5000):
$ netstat -nlp | grep :5000
Check the log files for errors:
$ tail -f pywps.log
… or do it the lazy way¶
You can also use the Makefile
to start and stop the service:
$ make start
$ make status
$ tail -f pywps.log
$ make stop
Run c4cds-wps as Docker container¶
You can also run c4cds-wps as a Docker container.
Warning
TODO: Describe Docker container support.
Use Ansible to deploy c4cds-wps on your System¶
Use the Ansible playbook for PyWPS to deploy c4cds-wps on your system. Here we show an example for remote deployment.
Get the playbook:
$ git clone https://github.com/bird-house/ansible-wps-playbook.git
$ cd ansible-wps-playbook
# install roles
$ ansible-galaxy -p roles -r requirements.yml install
Edit config:
$ cp etc/sample-emu.yml custom.yml
$ vim custom.yml
Make sure to configure the extra parameters for the data archive:
---
wps_user: wps
wps_group: wps
wps_services:
- name: c4cds
hostname: wpsdemo
port: 80
extra_config: |
[data]
c3s_cmip5_archive_root = /data/c3s-cmip5/output1
cordex_archive_root = /data/cordex/output
Add an inventory file for remote deployment:
$ vim wpsdemo.cfg
$ cat wpsdemo.cfg
wpsdemo ansible_ssh_user=ansible
Run ansible for remote deployment:
$ ansible-playbook --ask-sudo-pass -i wpsdemo.cfg playbook.yml